---
title: "Schema.org EducationalOrganization: The Technical Guide for Schools"
description: "Implement Schema.org EducationalOrganization on your institution's site. Complete JSON-LD code, essential properties, and measured impact: +12 points of AI visibility."
url: "https://www.skolbot.ai/en-CA/blog/schema-org-educational-organization-school"
language: "en"
dateModified: "2026-03-19"
---

# Schema.org EducationalOrganization: The Technical Guide for Schools

Updated on March 19, 2026

Implement Schema.org EducationalOrganization on your institution's site. Complete JSON-LD code, essential properties, and measured impact: +12 points of AI visibility.

## Why Schema.org EducationalOrganization markup changes the game for institutions

AI engines do not guess that a website belongs to an educational institution. They read code. And in that code, they look for a precise signal: the Schema.org `EducationalOrganization` markup. Without it, your institution is a block of text among billions. With it, it is an identifiable entity that ChatGPT, Perplexity, and Gemini can name, compare, and recommend.

**Institutions that have implemented complete Schema.org markup gain on average +12 points of GEO visibility** compared to those without (Source: Skolbot GEO monitoring, 500 queries x 6 countries x 3 AI engines, Feb 2026). Across a panel of 120 French institutions, only 18% have markup covering at minimum `EducationalOrganization` and `Course`. The remaining 82% are leaving a major competitive advantage on the table.

This is not a technical detail reserved for developers. It is the most cost-effective GEO lever in terms of effort-to-result ratio: a one-time implementation with a lasting effect on every AI engine. To see how this lever fits into the broader AI visibility strategy, consult our [GEO guide for schools](https://www.skolbot.ai/en-CA/blog/geo-schools-ai-visibility).

GEO visibility varies by country: 23% on ChatGPT in France, 14% in Germany, 29% in the Canada (Source: Skolbot GEO monitoring, Feb 2026). The common thread: institutions with structured data consistently outperform those without.

## EducationalOrganization: complete anatomy of the schema

The [`EducationalOrganization`](https://schema.org/EducationalOrganization) type is a subtype of `Organization` in the Schema.org hierarchy. It inherits all properties of a standard organisation but adds fields specific to education: `alumni`, `hasCredential`, `hasCourse`, and other properties that AI engines exploit directly.

### Required properties: the bare minimum

Without these properties, your markup is unusable by AI engines. These are the fields ChatGPT and Perplexity check first when identifying an institution:

- **`name`** — The official full name of your institution. Not an acronym alone: "University of Toronto", not "UofT". The name must match exactly what appears on your accreditations and on [OUAC](https://www.ouac.on.ca/) or [Universities Canada](https://www.univcan.ca/)
- **`url`** — The canonical URL of your homepage. One URL, the authoritative one
- **`address`** (`PostalAddress`) — Full address with `streetAddress`, `addressLocality`, `postalCode`, `addressCountry`. AI engines cross-reference this with Google Maps and institutional databases
- **`contactPoint`** (`ContactPoint`) — At minimum one contact point with `telephone` and `email`. The contact type (`admissions`, `general`) helps AI engines direct prospects to the right person

### Recommended properties: what sets you apart

These properties transform functional markup into competitive markup. Each adds a layer of information that AI engines use to formulate recommendations:

- **`accreditation`** — List of accreditations: AACSB, EQUIS, AMBA, provincial quality assurance, provincial quality councils. Each accreditation is an entity the AI engine can cross-reference with official sites ([AACSB](https://www.aacsb.edu/), [EFMD/EQUIS](https://www.efmd.org/equis/), [provincial quality councils](https://www.univcan.ca/)). Three converging sources = strong trust signal
- **`hasOfferCatalog`** (`OfferCatalog`) — The programme catalogue structured by category. Allows AI engines to know your institution offers an MBA, a Bachelor's, an MSc, without crawling the entire site
- **`hasCourse`** (`Course`) — Direct link to each programme with detailed properties (see next section)
- **`hasCredential`** (`EducationalOccupationalCredential`) — The qualifications awarded with their level (Bachelor's, Master's, Doctorate) and recognition (AACSB accredited, provincial quality councils reviewed)
- **`alumni`** (`Person` or `OrganizationRole`) — The number or list of notable alumni. AI engines use this data to assess reach and reputation

### Extended properties: the competitive advantage

Fewer than 5% of institutions include these properties. They constitute a powerful differentiator:

- **`areaServed`** — The geographical areas served. For an international institution: `["Canada", "Europe", "North America"]`. Helps AI engines recommend your institution on geo-targeted queries
- **`foundingDate`** — The year of founding. An institution founded in 1827 (University of Toronto) sends a signal of longevity and stability
- **`numberOfStudents`** — The number of enrolled students. AI engines use this in comparisons ("the largest business schools in Europe")
- **`award`** — Distinctions and rankings: "5th European business school (Financial Times 2026)". Each ranking mentioned here is verifiable by the AI engine
- **`memberOf`** (`Organization`) — Membership of Universities Canada, U15 Group of Canadian Research Universities, Universities Canada, international networks. Each affiliation is an additional trust vote
- **`logo`** (`ImageObject` or URL) — The official logo. AI engines increasingly display it in enriched responses

## Complete JSON-LD code: a ready-to-use example

Here is a complete `EducationalOrganization` markup for a fictitious French business school. Each property corresponds to a signal exploited by AI engines:

```json
{
  "@context": "https://schema.org",
  "@type": "EducationalOrganization",
  "@id": "https://www.esclyon-business.fr/#organization",
  "name": "ESC Lyon Business School",
  "alternateName": ["ESCLBS", "ESC Lyon"],
  "url": "https://www.esclyon-business.fr",
  "logo": {
    "@type": "ImageObject",
    "url": "https://www.esclyon-business.fr/images/logo-esclyon.png",
    "width": 600,
    "height": 200
  },
  "image": "https://www.esclyon-business.fr/images/campus-esclyon.jpg",
  "description": "Grande école de commerce founded in 1898, AACSB and EQUIS accredited, member of the Conférence des Grandes Écoles. 9,500 students, 45 nationalities, 200 partner universities.",
  "foundingDate": "1898",
  "numberOfStudents": 9500,
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "23 avenue Guy de Collongue",
    "addressLocality": "Écully",
    "postalCode": "69130",
    "addressRegion": "Auvergne-Rhône-Alpes",
    "addressCountry": "FR"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 45.7837,
    "longitude": 4.7726
  },
  "contactPoint": [
    {
      "@type": "ContactPoint",
      "contactType": "admissions",
      "telephone": "+33-4-72-18-XX-XX",
      "email": "admissions@esclyon-business.fr",
      "availableLanguage": ["fr", "en"]
    },
    {
      "@type": "ContactPoint",
      "contactType": "customer service",
      "telephone": "+33-4-72-18-XX-XX",
      "email": "info@esclyon-business.fr"
    }
  ],
  "accreditation": ["AACSB", "EQUIS"],
  "hasCredential": [
    {
      "@type": "EducationalOccupationalCredential",
      "credentialCategory": "degree",
      "name": "Grade de Master CEFDG",
      "recognizedBy": {
        "@type": "Organization",
        "name": "Commission d'évaluation des formations et diplômes de gestion",
        "url": "https://www.cefdg.fr/"
      }
    },
    {
      "@type": "EducationalOccupationalCredential",
      "credentialCategory": "degree",
      "name": "Diplôme visé Bac+5 par le MESRi"
    }
  ],
  "memberOf": [
    {
      "@type": "Organization",
      "name": "Conférence des Grandes Écoles",
      "url": "https://www.cge.asso.fr/"
    },
    {
      "@type": "Organization",
      "name": "Universities Canada",
      "url": "https://www.univcan.ca/"
    }
  ],
  "award": [
    "12th European business school — Financial Times 2026",
    "Top 100 Global MBA — QS World University Rankings 2026"
  ],
  "areaServed": ["France", "Europe", "Francophone Africa"],
  "sameAs": [
    "https://www.linkedin.com/school/esclyon-business/",
    "https://fr.wikipedia.org/wiki/ESC_Lyon_Business_School",
    "https://www.wikidata.org/wiki/QXXXXXXX"
  ],
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.3",
    "bestRating": "5",
    "ratingCount": "1247",
    "reviewCount": "892"
  }
}
```

**Key points of this example:**

- The `@id` creates a unique anchor that allows this entity to be referenced from other JSON-LD blocks (`Course`, `FAQPage` pages)
- The `alternateName` entries cover acronyms that prospects type into AI engines
- The `sameAs` entries point to verifiable profiles (LinkedIn, Wikipedia, Wikidata) that AI engines use to cross-reference information
- The `hasCredential` details qualifications with the recognising body — a signal AI engines cross-reference with official databases
- The `aggregateRating` should only be included if the ratings are genuine and verifiable (Google Business reviews, Happy At School). An artificially inflated score will be detected and penalised

## Nesting the Course schema: each programme becomes an entity

`EducationalOrganization` markup without `Course` is like a catalogue without product pages. AI engines formulate recommendations at the programme level, not the institution level: "best MBA with work-study in Paris", "AACSB accredited digital marketing Bachelor's". Each programme page must have its own [`Course`](https://schema.org/Course) markup.

Here is a complete example for a Master Grande École programme:

```json
{
  "@context": "https://schema.org",
  "@type": "Course",
  "name": "Programme Grande École — Master in Management",
  "courseCode": "PGE-MIM",
  "description": "3-year programme post-prépa or direct admission, Grade de Master CEFDG, dual degree available with 12 partner universities. 94% employment rate at 6 months (CGE survey 2025).",
  "url": "https://www.esclyon-business.fr/programmes/master-grande-ecole",
  "provider": {
    "@type": "EducationalOrganization",
    "@id": "https://www.esclyon-business.fr/#organization"
  },
  "educationalLevel": "Master",
  "educationalCredentialAwarded": {
    "@type": "EducationalOccupationalCredential",
    "credentialCategory": "degree",
    "name": "Grade de Master",
    "recognizedBy": {
      "@type": "Organization",
      "name": "CEFDG"
    }
  },
  "inLanguage": ["fr", "en"],
  "timeRequired": "P3Y",
  "numberOfCredits": 120,
  "occupationalCategory": ["Management", "Finance", "Marketing", "Strategy"],
  "hasCourseInstance": [
    {
      "@type": "CourseInstance",
      "courseMode": "onsite",
      "courseWorkload": "PT40H",
      "startDate": "2026-09-01",
      "endDate": "2029-06-30",
      "location": {
        "@type": "Place",
        "name": "Campus Écully",
        "address": {
          "@type": "PostalAddress",
          "addressLocality": "Écully",
          "addressCountry": "FR"
        }
      }
    },
    {
      "@type": "CourseInstance",
      "courseMode": "blended",
      "courseWorkload": "PT35H",
      "startDate": "2026-09-01",
      "instructor": {
        "@type": "Person",
        "name": "Work-study programme director"
      }
    }
  ],
  "offers": {
    "@type": "Offer",
    "price": "14500",
    "priceCurrency": "EUR",
    "description": "Annual tuition fees — full-time programme. Work-study: fees covered by the employer.",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-01-15",
    "validThrough": "2026-07-31"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.5",
    "bestRating": "5",
    "ratingCount": "384"
  }
}
```

**Including the price is a major differentiator.** Of 120 institutions analysed, only 7% include tuition fees in their structured data (Source: Skolbot technical audit, Jan 2026). Yet it is the first piece of information sought by [89% of prospects](https://www.skolbot.ai/en-CA/blog/prospect-questions-before-enrolling). An AI engine that has the price in the markup can formulate a complete response without requiring the prospect to click through.

The `provider` uses the `@id` defined in the `EducationalOrganization` block. This explicit link allows AI engines to associate each programme with its institution unambiguously. For more on the full range of schemas useful to an institution (FAQPage, AggregateRating, etc.), see our [structured data guide for schools](https://www.skolbot.ai/en-CA/blog/structured-data-schools-ai-visibility).

### Course-specific properties to leverage

A few often-overlooked properties that strengthen AI recommendations:

- **`teaches`** — Skills taught: "international negotiation", "data analytics", "strategic leadership". Targets skill-based queries ("data analytics programme in Lyon")
- **`coursePrerequisites`** — Admission requirements. Helps AI engines filter recommendations by prospect profile
- **`financialAidEligible`** — Scholarship and bursary eligibility. Strong signal for queries including "scholarship" or "funding"
- **`occupationalCredentialAwarded`** — The professional qualification obtained, with its registration number. Verifiable on the relevant national register ([France Compétences](https://www.francecompetences.fr/) in France, [provincial certification bodies](https://www.univcan.ca) in England)

## Testing and validating your markup

Syntactically correct but semantically inconsistent JSON-LD markup is worse than no markup at all: it sends AI engines contradictory information that erodes trust.

### Step 1: syntactic validation

The [Schema Markup Validator](https://validator.schema.org/) checks that your JSON-LD is syntactically correct and that the types and properties exist in the Schema.org hierarchy. Test every page containing markup.

### Step 2: Google Rich Results Test

The [Rich Results Test](https://search.google.com/test/rich-results) from Google verifies not only syntax but also compatibility with Google rich results. It flags missing fields that prevent rich snippet display.

### Step 3: consistency check

The most critical validation is not technical — it is editorial. Verify that:

- The price in the markup matches the price displayed on the page (no structured cloaking)
- The student count is current (not from 3 years ago)
- The listed accreditations are still active (an expired accreditation in the markup destroys trust)
- The intake dates correspond to the current year

### Step 4: ongoing monitoring

Schedule a quarterly audit in Google Search Console (under "Enhancements"). Markup errors often appear after a partial site redesign or CMS update.

## Measuring the impact: before and after implementation

The results of Schema.org markup are concretely measurable. Across a panel of 15 institutions that deployed complete markup between October 2025 and January 2026, the following results were documented:

| Metric | Before | After | Change |
|---|---|---|---|
| Average GEO visibility | 14% | 26% | +12 points |
| Organic CTR on Google | 3.2% | 4.3% | +34% |
| Citations in AI FAQ responses | 1x (baseline) | 2.4x | +140% |
| Google rich snippets | 0 | 3 to 7 per institution | — |
| Average AI indexation time | — | 2-4 weeks | — |

Moving from 14% to 26% GEO visibility means your institution goes from being mentioned in one AI response in seven to one in four. On a volume of 10,000 monthly queries related to higher education in Europe, that is the difference between 1,400 and 2,600 potential mentions.

These figures converge with observations from [Merkle/Dentsu](https://www.merkle.com/) reporting 20-40% higher CTR for pages with structured data in standard Google results. To understand how this visibility gain fits into the broader SEO + GEO strategy, see our analysis [SEO vs GEO for higher education](https://www.skolbot.ai/en-CA/blog/seo-vs-geo-higher-education-search-strategy).

## The 5 most common implementation mistakes

### Mistake 1: markup only on the homepage

85% of institutions with markup have it only on the homepage (Source: Skolbot audit, 120 institutions). AI engines recommend programmes, not entire institutions. The query "best MBA with work-study in Paris" looks for a `Course`, not an `EducationalOrganization`. Each programme page must have its own JSON-LD block.

### Mistake 2: expired or incorrect accreditations

Declaring "EQUIS" in your markup when your accreditation expired last year is worse than declaring nothing. AI engines cross-reference this with the [EFMD site](https://www.efmd.org/equis/). A detected inconsistency = global loss of trust across the entire markup.

### Mistake 3: no link between Organisation and Course

Without an `@id` in your `EducationalOrganization` and without a `provider` with the same `@id` in your `Course` blocks, AI engines cannot link your programmes to your institution. It is like having a product catalogue without a brand — AI engines cannot attribute the programmes.

### Mistake 4: stale data (the trap of 2024 fees in 2026)

**31% of institutions that have implemented Schema.org have not updated their markup in over 12 months** (Source: Skolbot audit, Jan 2026). Markup showing "tuition fees: EUR 12,800" while the page shows EUR 14,500 constitutes structured cloaking that Google can penalise. Fees, intake dates, and student numbers must be synchronised with visible content.

### Mistake 5: overly minimalist schema

An `EducationalOrganization` with only `name` and `url` is virtually useless. The AI engine cannot do anything with it. The minimum exploitable markup includes: `name`, `url`, `address`, `accreditation`, `contactPoint`, and at least one `hasCourse`. Below this threshold, the markup produces no measurable effect on GEO visibility.

## FAQ

### Should you use EducationalOrganization or CollegeOrUniversity?

Both are subtypes of `Organization` in Schema.org. [`CollegeOrUniversity`](https://schema.org/CollegeOrUniversity) is a subtype of `EducationalOrganization` specifically for universities and colleges. For a European grande école or higher education institution, `EducationalOrganization` is the safest choice as it covers all institution types. If your institution exclusively awards university-level qualifications (Bachelor's, Master's, Doctorate), `CollegeOrUniversity` is also valid and more precise. AI engines recognise both with no measurable difference in treatment.

### Can you combine EducationalOrganization and LocalBusiness?

Yes, via JSON-LD multi-typing: `"@type": ["EducationalOrganization", "LocalBusiness"]`. This combination allows Google to display your institution in local results (Google Maps, local pack) while recognising it as an educational establishment. It is particularly relevant for institutions with regional recruitment. Be sure to include the required properties of both types: `address`, `openingHours`, `telephone` for LocalBusiness; `accreditation`, `hasCourse` for EducationalOrganization.

### How do you handle multiple campuses in the markup?

Create a primary `EducationalOrganization` (the headquarters) with a unique `@id`, then a secondary `EducationalOrganization` for each campus with its own address and `@id`. Link them via the `department` or `subOrganization` property. Each `Course` references the campus where it is delivered via the `location` property in `hasCourseInstance`. This structure allows AI engines to recommend the right campus for the right geo-targeted query ("MBA in Shanghai" vs "MBA in Paris").

### How long before you see the impact of markup on AI visibility?

Google rich results appear within 1 to 3 weeks after indexation. Impact on visibility in AI responses (ChatGPT, Perplexity, Gemini) takes 2 to 6 weeks, as engines re-index your pages via their RAG mechanisms. The effect is cumulative and lasting: each quarter of up-to-date markup strengthens the trust signal. Structured data is the only GEO lever whose effect begins to manifest in under a month.

---

Schema.org `EducationalOrganization` markup is not a technical project to relegate to the backlog. It is your institution's passport into AI responses. The 18% of institutions that have already implemented it capture a +12 point visibility advantage. The remaining 82% are invisible to a growing share of their future students.

*Also read: [GEO for Schools: How to Appear in AI Responses](https://www.skolbot.ai/en-CA/blog/geo-schools-ai-visibility)*
