XooCode(){

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.

Highlight legend:Required by GoogleRecommendedOptional
schema.org/Credential
<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.

schema.org/Credential (minimal)
<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.

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.

  1. 01

    Using CreativeWork for a credential

    Wrong
    "@type": "CreativeWork" for a professional certification
    Right
    "@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.

  2. 02

    Missing validFor on a time-limited credential

    Wrong
    Credential for a certification that expires after 2 years with no validFor
    Right
    "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.

  3. 03

    Confusing recognizedBy with creator

    Wrong
    "recognizedBy" set to the person who holds the credential
    Right
    recognizedBy is the accrediting body; creator is who issued it; hasCredential on Person is who holds it

    recognizedBy 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.

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...

Leave a comment