Why Schema.org for Higher Education Websites
Higher education websites benefit from the use of schema.org because it structures information in a way that is most accessible to search engines.
Schema.org is a collaboration that was originally founded by the largest global search engine companies, Google, Microsoft, Yahoo, and Yandex.
From the Schema.org website:
Schema.org is a collaborative, community activity with a mission to create, maintain, and promote schemas for structured data on the Internet. In addition to people from the founding companies (Google, Microsoft, Yahoo, and Yandex), there is substantial participation by the larger Web community, through public mailing lists such as public-vocabs@w3.org and through GitHub. (source)
Schema for higher education websites is especially important given the varied programs and stakeholders in most higher education institutions.
Structured data is essential for SEO. The SEO community uses Schema.org to add rich features to search results and improve content understanding.
Google and the other search engines are moving toward an AI, LLM, Retrieval Augmented Generation model, and to stay at the top of the search engine results page, it's more important than ever to provide the best possible data.
Without a clear organization of your website data, search engines need to do extra work to understand your site.
Schools and colleges should use Schema.org to improve their website content.
Core Elements of Higher Education Institutions Schema
The core elements of higher education schema inform users of the basic information about your college or university. These are in the CollegeOrUniversity type.
In addition to the name, common elements include a logo, address, website URL, and social media links.
If your college, department, or business unit has other references online, you can list these in sameAs schema, ensuring you are semantically connected.
Here is a structurally OK example from the Tulane School of Architecture — my alma mater.
Tulane School of Architecture Schema Validator ![](https://lh7-us.googleusercontent.com/docsz/AD_4nXcjDXevKeeaVcnM7cy0O-NmDhwAOw8IqlLa1PqFGV5r6DJHvR2QYgSUZb9VvUxNDCkY7BPonp-b26mfq77bHT_1uU0UqJWlzcOGKUa_w1f3R02uzyS7vHIssuE8xYi7BfKWCvBWaIOlfB-dKwu2hDIvs6U_?key=CwFokP14e4-5MlaML-pAaw)
<script type="application/ld+json">{
"@context": "https://schema.org",
"@graph": [
{
"@type": "EducationalOrganization",
"additionalType": "School",
"@id": "https://schema.org/EducationalOrganization",
"name": "Tulane School of Architecture",
"description": "Discover Tulane School of Architecture\u0027s interdisciplinary design education, renowned faculty, cutting-edge research, and vibrant community. Apply now.",
"url": "https://architecture.tulane.edu/",
"sameAs": "https://en.wikipedia.org/wiki/Tulane_School_of_Architecture",
"telephone": "(504) 865-5389",
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-504-865-5389",
"email": "pr@tulane.edu",
"url": "https://architecture.tulane.edu/"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "725 Howard Avenue",
"addressLocality": "New Orleans",
"addressRegion": "LA",
"postalCode": "70130",
"addressCountry": "USA"
}
},
{
"@type": "WebSite",
"@id": "https://architecture.tulane.edu/",
"name": "Tulane School of Architecture",
"url": "https://architecture.tulane.edu/",
"publisher": {
"@type": "CollegeOrUniversity",
"@id": "https://architecture.tulane.edu/",
"url": "https://architecture.tulane.edu/"
}
}
]
}</script>
Why is this only "OK?"
They could do more with their schema to strengthen the entity relationships.
Some examples of relationships they could better define include:
- Tulane University
- New Orleans
- Architecture
- Social Profiles
- Directory Mentions
- More, more, more
The "PostalAddress" listed is not actually on campus, so it's not going to be helpful for wayfinding.
Compared to the Tulane Freeman School, however, the School of Architecture is doing great.
Tulane Freeman School Schema Validator — No Schema
Freeman shouldn't feel bad, though.
They're in good company. Harvard and MIT Engineering also have no schema.
Harvard Schema Validator — No Schema
MIT Engineering Schema Validator — No Schema
Nested and Expanded Higher Education Schema for Tulane University School of Architecture
As long as your schema validates, you're probably good. To make it look as clean as possible, nest your schema so that it only validates as one item, rather than many, for any given web page.
I'm kind of an aesthete (in the best sense of the word, I think), so I like my schema clean and pretty.
Below is what it might look like if you fully nested the schema code and included more references to the online footprint of the School of Architecture by way of the sameAs property.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "EducationalOrganization",
"additionalType": "https://schema.org/School",
"@id": "https://architecture.tulane.edu/",
"name": "Tulane School of Architecture",
"description": "Discover Tulane School of Architecture's interdisciplinary design education, renowned faculty, cutting-edge research, and vibrant community. Apply now.",
"url": "https://architecture.tulane.edu/",
"sameAs": [
"https://en.wikipedia.org/wiki/Tulane_School_of_Architecture",
"https://www.facebook.com/TulaneArch/",
"https://www.instagram.com/tulanearch/",
"https://www.linkedin.com/school/tulane-university-school-of-architecture/",
"https://twitter.com/tulanearch",
"https://www.studyarchitecture.com/school/tulane-university/",
"https://www.niche.com/graduate-schools/tulane-school-of-architecture/",
"https://archinect.com/tulanearch"
],
"telephone": "(504) 865-5389",
"contactPoint": [
{
"@type": "ContactPoint",
"telephone": "+1-504-865-5389",
"contactType": "customer service",
"email": "pr@tulane.edu",
"url": "https://architecture.tulane.edu/"
}
],
"address": {
"@type": "PostalAddress",
"streetAddress": "725 Howard Avenue",
"addressLocality": "New Orleans",
"addressRegion": "LA",
"postalCode": "70130",
"addressCountry": "US"
}
},
{
"@type": "WebSite",
"@id": "https://architecture.tulane.edu/",
"name": "Tulane School of Architecture",
"url": "https://architecture.tulane.edu/",
"publisher": {
"@type": "EducationalOrganization",
"@id": "https://schema.org/EducationalOrganization"
}
}
]
}
</script>
Is it technical? Yes, it is.
And it's worth it when you consider that Google only has so much crawl to give, and the more you can align your entities with known entities, the more likely you are to appear.
If you're not technical, ChatGPT and Gemini can help you out.
Important Schema Types for Higher Ed Websites
Schema Types for Every Website
- WebSite:
Thing > CreativeWork > WebSite - Organization:
- Thing > Organization
- LocalBusiness:
- Thing > Organization > LocalBusiness
- Thing > Place > LocalBusiness
- CreativeWork:
- Thing > CreativeWork
- Person:
- Thing > Person
The WebSite is the highest level organizational element and is most appropriate for the home page. Another type is WebPage. "Every web page is implicitly assumed to be declared to be of type WebPage."
This means you can include properties that would make sense for the WebPage type, such as breadcrumb, mainContentOfPage, relatedLink, and significantLink.
One might also use the Corporation type for commercial organizations, but it may be redundant to Organization and LocalBusiness.
CreativeWork may be any number of things, including images, articles, reviews, and more. CreativeWork includes the author property, which can be further defined to create associations between the organization and known person entities.
Person schema includes details about the person being referenced and can also help to connect that person to elements of your organization, e.g., linking faculty members to their departments using the department property (with @id reference).
Include details like name, job title, area of expertise, and a link to their faculty profile page (if applicable).
Note: singularity.edu is not a thing; therefore, many URLs in my examples will not be resolved.
Example:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebSite",
"@id": "https://singularity.edu",
"url": "https://singularity.edu",
"name": "Singularity University Official Site",
"publisher": {
"@type": "EducationalOrganization",
"@id": "https://singularity.edu#organization"
}
},
{
"@type": "EducationalOrganization",
"@id": "https://singularity.edu#organization",
"name": "Singularity U",
"url": "https://singularity.edu",
"department": {
"@type": "EducationalOrganization",
"name": "Department of Computer Science",
"address": {
"@type": "PostalAddress",
"streetAddress": "1010110 Singularity Dr.",
"addressLocality": "Cambridge",
"addressRegion": "MA",
"postalCode": "02138",
"addressCountry": "US"
}
},
"logo": {
"@type": "ImageObject",
"url": "https://singularity.edu/logo.png",
"caption": "Singularity U Logo"
},
"contactPoint": {
"@type": "ContactPoint",
"telephone": "+1-617-555-0101",
"contactType": "customer service"
}
},
{
"@type": "CreativeWork",
"creator": {
"@type": "Person",
"@id": "https://singularity.edu/jvn",
"name": "John von Neumann",
"sameAs": [
"https://en.wikipedia.org/wiki/John_von_Neumann",
"https://www.britannica.com/biography/John-von-Neumann",
"https://plato.stanford.edu/entries/von-neumann/"
]
},
"url": "https://singularity.edu/logo.png",
"name": "Singularity U Logo",
"description": "Official logo of Singularity University, designed by John von Neumann"
},
{
"@type": "Person",
"name": "John von Neumann",
"url": "https://singularity.edu/jvn",
"sameAs": [
"https://en.wikipedia.org/wiki/John_von_Neumann",
"https://www.britannica.com/biography/John-von-Neumann",
"https://plato.stanford.edu/entries/von-neumann/"
],
"affiliation": {
"@type": "Organization",
"name": "Department of Computer Science",
"url": "https://singularity.edu/dept/cs"
},
"alumniOf": {
"@type": "EducationalOrganization",
"@id": "https://singularity.edu#organization",
"name": "Singularity U"
},
"knowsAbout": ["Mathematics", "Computer Science", "Quantum Mechanics"]
}
]
}
</script>
Note the use of "@id." Each "thing," i.e., entity, can have a unique ID. The idea is that by making good use of @id associated with people, places, and things, you can help to inform the knowledge graph.
Search engines may or may not use the ID to make the connection, but there is no downside in providing the data.
Education Institution-Specific Schema
- CollegeOrUniversity
- Thing > Place > CivicStructure > EducationalOrganization > CollegeOrUniversity
- Thing > Organization > EducationalOrganization > CollegeOrUniversity
- EducationalOrganization
- Thing > Place > CivicStructure > EducationalOrganization
- Thing > Organization > EducationalOrganization
- EducationalOccupationalProgram
- Thing > Intangible > EducationalOccupationalProgram
- This is a newer term that is still being refined, but it may be useful for program-level details.
- Course
- Thing > CreativeWork > Course
- Thing > CreativeWork > LearningResource > Course
There are a number of ways to implement education institution schema.
If the website is for a college or university, then the CollegeOrUniversity type is a good option.
If not, one could use the EducationalOrganization or EducationalOccupationalProgram (which is still in development and may be a little risky).
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "CollegeOrUniversity",
"@id": "https://singularity.edu",
"name": "Singularity University",
"url": "https://singularity.edu",
"logo": {
"@type": "ImageObject",
"url": "https://singularity.edu/logo.png",
"caption": "Singularity University Logo"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "1010110 Singularity Dr.",
"addressLocality": "Cambridge",
"addressRegion": "MA",
"postalCode": "02138",
"addressCountry": "US"
}
},
{
"@type": "EducationalOrganization",
"@id": "https://singularity.edu/cs",
"name": "Department of Computer Science",
"parentOrganization": {
"@id": "https://singularity.edu"
}
},
{
"@type": "EducationalOccupationalProgram",
"@id": "https://singularity.edu/cs/bscs",
"name": "B.S. in Computer Science",
"educationalProgramMode": "On-campus",
"url": "https://singularity.edu/cs/bscs",
"provider": {
"@id": "https://singularity.edu/cs"
}
},
{
"@type": "Course",
"@id": "https://singularity.edu/cs/bscs/intro-to-cs",
"name": "Introduction to Computer Science",
"description": "This course provides an overview of the fundamental concepts of computer science including programming, algorithms, and data structures.",
"provider": {
"@id": "https://singularity.edu/cs"
},
"offers": {
"@type": "Offer",
"price": "2000",
"priceCurrency": "USD",
"url": "https://singularity.edu/cs/bscs/intro-to-cs/register",
"availability": "http://schema.org/InStock",
"category": "Higher Education Course"
},
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "online",
"startDate": "2024-09-01",
"endDate": "2024-12-15",
"courseWorkload": "Weekly: 6 hours of lecture"
}
}
]
}
</script>
Note that this example includes:
- EducationalOccupationalProgram — to indicate this is part of a program of study leading to a "B.S. in Computer Science"
- Course — indicating the specifics of the course itself.
These same schema types could be used without the CollegeOrUniversity type if the course provider is not a college or university. For example, a trade or vocational school.
Advanced Higher Ed Schema for Discovery
- Article
- Thing > CreativeWork > Article
- ScholarlyArticle
- Thing > CreativeWork > Article > ScholarlyArticle
The Article Schema is often used for blog posts and web page content.
Example snippet — this may not validate on its own. I'm including it for demonstration purposes only.
{
"@type": "Article",
"@id": "https://myurl.com/article.html#article",
"isPartOf": {
"@id": "https://myurl.com/article.html"
},
"author": {
"@type": "Person",
"givenName": "John",
"familyName": "Public",
"additionalName": "Quincy",
"birthDate": "1972-03-11",
"birthPlace": {
"@type": "Place",
"address": "New Orleans, Louisiana, United States of America"
}
},
"headline": "This is my article, there are many like it but this one is mine.",
"datePublished": "2023-07-24T16:06:46+00:00",
"dateModified": "2024-04-24T16:36:15+00:00",
"mainEntityOfPage": {
"@id": "https://myurl.com/article.html"
},
"wordCount": 500,
"publisher": {
"@id": "https://myurl.com/article.html"
}
}
Even More Higher Education Schema Opportunities
Does your school host events? Open houses, career fairs, guest speakers, or workshops?
Event schema may be a good option:
- Event
- Thing > Event
Event schema can be a useful tool for communicating details about upcoming events.
- Basic event properties:
- name: A clear and concise title describing the event.
- doorTime: The time admission will start.
- location: Physical location details (address, venue name) or indicate if it's virtual.
- about: A description of the subject matter of the event.
Other schema properties and types for higher ed include:
- financialAidEligible
- VirtualLocation
- Review
- JobPosting
How to Implement Higher Education Schema
Implementation will be as varied as there are higher ed websites.
Some considerations include:
- What tools do you have access to?
- What CMS does your school or organization use?
- How restrictive is your IT infrastructure?
- How technical are you?
In order to implement Schema.org schemas, you will need — at minimum — access to the <head> element of the HTML on each web page. This access can be direct or through tools such as WordPress Plugins or tag managers.
Implementing Schema.org on your website does require some knowledge and skills, but not much. JSON-LD is the preferred method to implement, though it is possible to include schema in the HTML without markup using older forms, like Microdata.
In fact, most WordPress SEO plugins implement schema management in a basic way, out of the box.
RankMath SEO does a great job of importing your schema code and turning it into web forms you can later edit (some features are only available in the paid version.)
If you have an SEO plugin you like, you can disable its schema and use Header Footer Code Manager, or if you have a tag manager for advertising pixels, you may be able to insert schema with an HTML script tag.
Some Tools for Schema Review and Management
Identifying what kind of schema you or a competitor has:
- BuiltWith: Identifies all the technologies in use on a given website.
- Sitebulb: A website crawler that includes schema markup.
Creating and managing schema:
- Schema App: An enterprise-level solution. And a blog worth following for schema-related knowledge.
- InLinks: Much more than just schema. Entity tools, AI writer, and more.
- Schemawriter.ai: A robust tool for discovering all your related entities and for schema production.
- ChatGPT or Google Gemini: Both produce passable schema, encoded as JSON-LD based on your inputs. I highly recommend eyeballing the results to ensure they're what you were looking for and validating with the Schema.org validator.
Validating your schema:
- Schema Markup Validator - Schema.org: The definitive source to check for valid representation of the JSON code.
- Rich Results Test - Google Search Console: Good for identifying if your schema will produce rich snippets, e.g., review stars, in the search engine results.
Get Out There and Schema Up Your Higher Ed Website!
Hopefully, this has given you a good foundation for understanding what your higher education institution can do with Schema.org to tell a better story to search engines.
Google has been moving from lexical (keyword) to semantic (entity) search for the better part of the last decade. SEO practitioners and SEO tools are only starting to catch up. As "search" moves away from Google, these new platforms — ChatGPT, TikTok, and more — will struggle to deliver accurate data.
One of the ways we can increase the confidence of these systems that our websites are the right answer is by associating ourselves with known entities. It is said that we learn by comparing new information to what we already know, and semantic search is like that.
Words, and particularly combinations of words, are both infinite and easily misunderstood.
Entities, however, are fixed and knowable. Schema allows us to connect our entities and the words we use to describe them to the greater knowledge graph by which we can all better understand the world.
In essence, you're speaking the language of search engines.
If you would like to get all peace, love, and global consciousness about it, you might think that universal discourse could be improved if we defaulted to known entities in our conversations. Or, you can take a more practical tack and make use of the knowledge graph to better define your place in it and why you matter.
And rank better.
Bonus: Higher Education Schema Template
Just for you, I asked ChatGPT to help bring this all together in an easy copy/paste template to get you started. Enjoy!
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "CollegeOrUniversity",
"@id": "https://www.universityname.edu",
"name": "University Name",
"url": "https://www.universityname.edu",
"logo": {
"@type": "ImageObject",
"url": "https://www.universityname.edu/logo.png"
},
"address": {
"@type": "PostalAddress",
"streetAddress": "123 University Ave",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "ZIP",
"addressCountry": "Country"
},
"contactPoint": {
"@type": "ContactPoint",
"contactType": "customer support",
"telephone": "+1-800-123-4567",
"email": "info@universityname.edu"
}
},
{
"@type": "EducationalOrganization",
"@id": "https://www.universityname.edu/cs",
"name": "Department of Computer Science",
"parentOrganization": {
"@id": "https://www.universityname.edu"
},
"url": "https://www.universityname.edu/cs"
},
{
"@type": "EducationalOccupationalProgram",
"@id": "https://www.universityname.edu/cs/bscs",
"name": "B.S. in Computer Science",
"educationalProgramMode": "On-campus",
"url": "https://www.universityname.edu/cs/bscs",
"provider": {
"@id": "https://www.universityname.edu/cs"
}
},
{
"@type": "Course",
"@id": "https://www.universityname.edu/cs/intro-to-computing",
"name": "Introduction to Computing",
"description": "An introductory course covering the basics of computing, programming languages, and algorithmic processes.",
"provider": {
"@id": "https://www.universityname.edu/cs"
},
"courseCode": "CS101",
"hasCourseInstance": {
"@type": "CourseInstance",
"courseMode": "Offline",
"startDate": "2024-09-01",
"endDate": "2025-06-15"
}
},
{
"@type": "Person",
"@id": "https://www.universityname.edu/faculty/jane-doe",
"name": "Jane Doe",
"jobTitle": "Professor of Computer Science",
"affiliation": {
"@id": "https://www.universityname.edu/cs"
},
"url": "https://www.universityname.edu/faculty/jane-doe"
},
{
"@type": "Event",
"@id": "https://www.universityname.edu/events/cs-open-house",
"name": "Computer Science Department Open House",
"startDate": "2024-09-01T10:00:00+00:00",
"endDate": "2024-09-01T14:00:00+00:00",
"location": {
"@type": "Place",
"name": "CS Department Building",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 University Ave",
"addressLocality": "City",
"addressRegion": "State",
"postalCode": "ZIP",
"addressCountry": "Country"
}
},
"url": "https://www.universityname.edu/events/cs-open-house",
"description": "Join us for an open house at the Department of Computer Science to learn more about our programs and meet faculty and students.",
"organizer": {
"@type": "EducationalOrganization",
"@id": "https://www.universityname.edu/cs"
},
"eventStatus": "https://schema.org/EventScheduled",
"eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
"offers": {
"@type": "Offer",
"description": "Free Admission",
"url": https://www.universityname.edu/events/register",
"availability": "https://schema.org/InStock",
"validFrom": "2024-08-01T00:00:00+00:00"
}
}
]
}
Image Credits:
- Photo: Unsplash
- Screenshots + AI by the author.
Will Scott is Cofounder and CEO of Search Influence, an ROI focused - woman owned and led - digital marketing firm based in New Orleans, LA.
Will has been working online since the 90s and is credited with coining the phrase Barnacle SEO. Will speaks and writes on SEO and AI Driven Content.
Will's nonprofit: Teaching Responsible Earth Education
Search Influence's nonprofit: Audubon Nature Institute