Geodocs.dev

Course Schema for AI Citations

ShareLinkedIn

Open this article in your favorite AI assistant for deeper analysis, summaries, or follow-up questions.

Course schema is a schema.org type that marks up educational offerings using a Course root with one or more CourseInstance objects describing mode, schedule, workload, instructor, and price; AI engines parse it to cite courses in answers to 'learn X', 'best course for Y', and certification queries.

TL;DR

Use Course to declare the program identity and CourseInstance for each scheduled offering (cohort, self-paced run, region). Pair with Organization for the provider and Person for instructors. Add offers for price and hasPart for modules. AI engines that surface educational content rely on this structure to compare programs and ground citations.

Definition

Course is a schema.org type defined at schema.org/Course. It represents an educational program of any length, format, or delivery mode. CourseInstance, defined at schema.org/CourseInstance, represents a specific offering of that course (a particular cohort, run, or session).

Course and CourseInstance separate identity from delivery. The same Course can have many CourseInstance children. Google's Course rich result requires both.

Course

PropertyRequiredNotes
@typeYesCourse
nameYesProgram name
descriptionYes1-2 paragraph summary
providerYesOrganization with name and url
hasCourseInstanceRecommendedArray of CourseInstance
hasPartRecommendedModules as Course or LearningResource
educationalCredentialAwardedRecommendedCertificate or degree name
inLanguageRecommendedBCP-47
imageRecommendedCover image URL
aggregateRatingRecommendedIf verified reviews exist

CourseInstance

PropertyRequiredNotes
@typeYesCourseInstance
courseModeYesOnline, Onsite, or Blended
instructorRecommendedPerson
courseWorkloadRecommendedISO-8601 duration, e.g. PT20H
courseScheduleRecommendedSchedule object
startDateRecommendedISO-8601
endDateRecommendedISO-8601
offersRecommendedOffer with price and priceCurrency

Working JSON-LD Example

{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "AI Search Optimization Fundamentals",
  "description": "A practical course on optimizing content for AI search engines including ChatGPT, Perplexity, and Google AI Overviews.",
  "provider": {
    "@type": "Organization",
    "name": "Example Academy",
    "url": "https://example.com"
  },
  "educationalCredentialAwarded": "Certificate of Completion",
  "inLanguage": "en-US",
  "hasCourseInstance": [
    {
      "@type": "CourseInstance",
      "courseMode": "Online",
      "courseWorkload": "PT20H",
      "startDate": "2026-06-01",
      "endDate": "2026-07-15",
      "instructor": {
        "@type": "Person",
        "name": "Dr. Jane Doe",
        "sameAs": "https://www.linkedin.com/in/janedoe"
      },
      "offers": {
        "@type": "Offer",
        "price": "299.00",
        "priceCurrency": "USD",
        "availability": "https://schema.org/InStock"
      }
    }
  ],
  "hasPart": [
    {
      "@type": "Course",
      "name": "Module 1: AI Crawler Fundamentals",
      "description": "How GPTBot, PerplexityBot, and ClaudeBot fetch and process content."
    },
    {
      "@type": "Course",
      "name": "Module 2: Structured Data for AI",
      "description": "Schema.org types and JSON-LD patterns for AI citation."
    }
  ]
}

How AI Engines Cite Course Content

AI engines surface courses for queries like 'best course for X', 'how to learn Y', and certification-related searches. Course schema gives them the structure needed to compare programs:

  • provider resolves to a known Organization, which feeds credibility ranking.
  • educationalCredentialAwarded lets the engine match certification queries.
  • instructor with sameAs to LinkedIn or ORCID adds author authority.
  • offers lets the engine cite price ranges in commercial education queries.
  • courseWorkload and startDate answer scheduling questions.

Without this structure AI engines fall back to free-text extraction, which is less reliable and tends to under-cite courses with thin landing pages.

Subtype Differences

Course is the base type. There are two related types worth knowing:

  • MobileApplication, WebApplication, SoftwareApplication: not Course types, but commonly confused when courses ship as apps. Use Course for the educational identity and SoftwareApplication only when the app itself is the product.
  • LearningResource: a single asset like a video or worksheet. Use it for individual lessons, not whole programs.

Integration with Person and Organization Schema

Link instructors to a Person profile with sameAs URLs to authoritative profiles (LinkedIn, ORCID, Google Scholar). Link the provider Organization to its homepage and any sameAs profiles. AI engines use this graph to resolve entities and to score authority.

Validation

  1. Google Rich Results Test for parseability.
  2. Schema.org Validator for vocabulary correctness.
  3. CI checks for required Course rich result eligibility per Google's documentation.

Common Pitfalls

  • Missing CourseInstance. A bare Course without a CourseInstance is incomplete and not eligible for Google rich results.
  • Generic instructors. instructor without sameAs is treated as anonymous and reduces credibility scoring.
  • Stale schedule. AI engines may stop citing a course when endDate is in the past and no new instance is published.
  • Mismatched price. Markup price differing from visible price is a structured data policy violation.
  • HasPart misuse. Using hasPart for unrelated content collapses the program structure. Keep modules genuinely scoped to the course.

FAQ

Q: Do I need both Course and CourseInstance?

Yes for Google rich result eligibility and for AI engines to surface schedule details. Course alone is acceptable for AI citation but produces less actionable answers.

Q: How should I mark up self-paced courses?

Set courseMode to Online and use courseWorkload to indicate effort. Omit startDate/endDate or use a recurring Schedule if enrollment is continuous.

Q: Can multiple instructors be listed?

Yes. instructor accepts an array of Person objects. Provide sameAs for each.

Q: Does Course schema interact with Review or AggregateRating?

Yes. AggregateRating attached to Course is shown in rich results and consulted by AI engines for credibility ranking. Use only verified reviews.

Related Articles

specification

Person Schema for AI Citations

Specification for Person schema markup: sameAs to Wikidata and ORCID, jobTitle, affiliation, knowsAbout, and AI entity resolution behavior for E-E-A-T.

specification

Review Schema for AI Citations

Review schema spec for AI shopping citations: required Review and AggregateRating fields, anti-spam policy, and validation for ChatGPT, Perplexity, and Google.

guide

Structured Data for AI Search

How to implement structured data (JSON-LD / Schema.org) to improve AI search visibility. Covers TechArticle, FAQPage, HowTo, and entity definitions.

Topics
Stay Updated

GEO & AI Search Insights

New articles, framework updates, and industry analysis. No spam, unsubscribe anytime.