Course Schema for AI Citations
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.
Required and Recommended Properties
Course
| Property | Required | Notes |
|---|---|---|
| @type | Yes | Course |
| name | Yes | Program name |
| description | Yes | 1-2 paragraph summary |
| provider | Yes | Organization with name and url |
| hasCourseInstance | Recommended | Array of CourseInstance |
| hasPart | Recommended | Modules as Course or LearningResource |
| educationalCredentialAwarded | Recommended | Certificate or degree name |
| inLanguage | Recommended | BCP-47 |
| image | Recommended | Cover image URL |
| aggregateRating | Recommended | If verified reviews exist |
CourseInstance
| Property | Required | Notes |
|---|---|---|
| @type | Yes | CourseInstance |
| courseMode | Yes | Online, Onsite, or Blended |
| instructor | Recommended | Person |
| courseWorkload | Recommended | ISO-8601 duration, e.g. PT20H |
| courseSchedule | Recommended | Schedule object |
| startDate | Recommended | ISO-8601 |
| endDate | Recommended | ISO-8601 |
| offers | Recommended | Offer 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
- Google Rich Results Test for parseability.
- Schema.org Validator for vocabulary correctness.
- 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
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.
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.
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.