Credential
Credential is a CreativeWork subtype for certificates, licenses, badges, degrees, and any document that verifies identity, qualifications, or competency. It has 4 properties of its own: credentialCategory (what kind of credential), recognizedBy (who accepts it), validFor (how long it lasts), and validIn (where it is valid). A Person or Organization can reference credentials via hasCredential.
The type hierarchy is Thing → CreativeWork → Credential. It has one subtype, EducationalOccupationalCredential, which is already used in the Course and JobPosting contexts. Credential is the broader parent that covers non-educational credentials too: security clearances, professional licenses, driver's licenses, platform badges.
Full example of schema.org/Credential json-ld markup
The markup is verified as valid with Rich Results Test from Google.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@id": "https://xoocode.com/credentials/certified-schema-implementer#credential",
"@type": "Credential",
"name": "Certified Schema Implementer (CSI)",
"description": "Professional credential for developers who demonstrate proficiency in schema.org structured data implementation. Earned by completing the Xoo Code workshop and passing a practical assessment.",
"url": "https://xoocode.com/credentials/certified-schema-implementer",
"image": "https://xoocode.com/credentials/csi-badge.png",
"credentialCategory": "Professional Certification",
"recognizedBy": {
"@id": "https://xoocode.com#organization",
"@type": "Organization",
"name": "Xoo Code Inc."
},
"creator": {
"@id": "https://xoocode.com#organization",
"@type": "Organization",
"name": "Xoo Code Inc."
},
"validFor": "P2Y",
"validIn": {
"@type": "AdministrativeArea",
"name": "Worldwide"
},
"competencyRequired": [
"JSON-LD structured data syntax",
"Schema.org vocabulary for common types",
"Google rich result requirements and testing",
"Structured data validation and debugging"
],
"datePublished": "2026-01-15"
}
</script>credentialCategory
credentialCategory takes a DefinedTerm, text, or URL classifying the credential: "degree", "certificate", "badge", "license", "certification", "diploma". Use terms that match the credential's formal designation. Google reads this to categorize credentials in education and career search results.
recognizedBy
recognizedBy takes an Organization that acknowledges the credential's validity. For a professional certification, this is the accrediting body. For a university degree, it is the university (or the accreditation agency). For a platform badge, it is the platform. This is different from the creator (who issued the credential) and the holder (hasCredential on Person).
validFor and validIn
validFor is a Duration in ISO 8601 format: P2Y for a credential valid for 2 years, P5Y for 5 years. validIn is an AdministrativeArea where the credential is recognized: a country, a state, a professional jurisdiction. A medical license valid in Pennsylvania but not New York would have validIn set to Pennsylvania.
Minimal valid version
The smallest markup that still produces a valid Credential entity. Use it as the floor. Reach for the advanced example above when you want search engines and AI agents to understand more about your content.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Credential",
"name": "Certified Schema Implementer (CSI)",
"credentialCategory": "Professional Certification",
"recognizedBy": { "@type": "Organization", "name": "Xoo Code Inc." },
"validFor": "P2Y",
"description": "Professional credential for schema.org structured data implementation."
}
</script>Google rich results this unlocks
Markup matching this example makes your page eligible for the following Google Search rich results. The primary target drives the required / recommended property classification in the advanced code block above.
- Google docsEducation knowledge panel (indirect)
Common Credential mistakes
Mistakes that pass validation but silently fail to earn rich results or mislead consumers walking the graph. Avoid these and your markup will be ahead of most sites in the wild.
- 01
Using CreativeWork for a credential
Wrong"@type": "CreativeWork" for a professional certificationRight"@type": "Credential" (or "EducationalOccupationalCredential" for degrees and diplomas)Credential gives you credentialCategory, recognizedBy, validFor, and validIn. Generic CreativeWork has none of these. The subtype lets Google classify the document as a verifiable credential rather than generic content.
- 02
Missing validFor on a time-limited credential
WrongCredential for a certification that expires after 2 years with no validForRight"validFor": "P2Y"validFor tells holders and employers when the credential expires. Without it, a certification that requires renewal every 2 years looks permanent. Use ISO 8601 duration: P1Y for 1 year, P2Y for 2 years, P6M for 6 months.
- 03
Confusing recognizedBy with creator
Wrong"recognizedBy" set to the person who holds the credentialRightrecognizedBy is the accrediting body; creator is who issued it; hasCredential on Person is who holds itrecognizedBy is the organization that accepts the credential as valid. creator is who issued it. The holder links to the credential via hasCredential on their Person entity. These are three different roles.
Schema properties in this example
About the example data
A fictional "Certified Schema Implementer" credential issued by Xoo Code Inc., earned by completing the schema markup workshop and passing the assessment. Referenced on team member profiles via hasCredential.
Comments
Loading comments...