Structured data for a university directory
// Editorial team
Structured data tells search engines what a page is about in a form they can parse. On a directory, it also forces you to be clear about what each page type is.
The public example is UniversitiesDB, a directory of universities by country and city.
Match the type to the page
A country or city page is a list of universities, so it is marked up as a CollectionPage containing an ItemList, with each university as a ListItem in the order shown. The Canada page is an example. A BreadcrumbList describes the path from the home page to the current page. The home page carries WebSite markup with a SearchAction, which describes the site's search box.
University pages
An individual university page describes an organisation. Schema.org has CollegeOrUniversity, a subtype of EducationalOrganization, which can carry the name, address, URL and sameAs links to official profiles. We include only facts that are visible on the page. Markup that claims things the page does not show breaks search engine guidelines.
Articles
Guides get Article markup with a headline, dates and the publisher. We set dateModified when the content changes, not every time the site rebuilds.
Generate it, do not hand-write it
On thousands of pages, hand-written JSON-LD drifts out of sync with the content. We generate it from the same data that renders the page, in the same build step.
Testing
We validate a sample of each page type with the Schema Markup Validator and Google's Rich Results Test, and run a JSON-LD parse check on every page in the build. A broken comma in a template can otherwise invalidate the markup on every page at once.
What structured data will not do
It does not make a thin page useful. It describes a page. It is worth doing once the content is right.