Web design, CMS and development, since 2014VR Games
Development

Structured Data Without a Plugin: The Three Schemas Most Sites Need

JSON-LD is Google’s recommended format for structured data, and it’s the only format you need for the three key schemas that most websites should implement by hand: Article, Organization, and BreadcrumbList. These data types are all defined at the canonical Schema.org pages, with examples and property explanations designed for JSON-LD. As long as you validate your hand-written JSON-LD constructs against these sources, you can safely skip the plugins and still have markup that can deliver SEO value.

Why JSON-LD is the Recommended Baseline

Google’s general structured data policy explicitly labels JSON-LD as the "recommended" format among the three supported options (the others are Microdata and RDFa). This is because JSON-LD has two key advantages:

First, Schema.org, the central vocabulary that powers Google’s structured data, embeds machine-readable term definitions directly as JSON-LD on the canonical schema.org term pages. These definitions exist for every type and property in Schema.org, and instead of relying on a separate—or third-party—documentation, Schema.org provides the JSON-LD context itself.

Second, Google’s structured data tools, including the Rich Results Test, validate specifically against Schema.org types and properties, which are presented in JSON-LD on their reference pages. This means that hand-writing your own valid JSON-LD construct from the Schema.org definitions, and tweaking it to meet Google’s eligibility rules, is a better approach than using a WordPress plugin that tries to preemptively guess at the exact JSON-LD.

Article Schema: The Core Content Object

An Article is a Schema.org type with its own reference page that includes JSON-LD usage examples. Google’s structured data documentation on the page states clearly that only the types Article, NewsArticle, or BlogPosting are eligible as the direct basis for an Article rich result, so while other page types like WebPage can be used, all must link to a content object based on one of these three.

The core properties that Article objects need in order to bring their content to prominence in search results include headline, author, publisher, datePublished, and dateModified. Word count, page start and page end, and even video objects can be added to deepen the knowledge graph.

All of these properties are defined in detail on the Schema.org Article reference page, but short of putting headlines and page numbers into their own JSON-LD objects by hand, there are resources available to help you build an Article JSON-LD block.

Organization Schema: Identifying the Site’s Publisher

The Organization schema type is for companies, businesses, and institutions, and it exists to establish the publisher as a recognized entity on the web. On the Schema.org Organization reference page, the canonical JSON-LD example demonstrates the properties typically encapsulated in an Organization object:

  • The Organization type with its own ID, based on the homepage URL (e.g. "@id": "http://www.example.com/#organization", with the "#organization" fragment identifying it as this specific schema object with a broader identity that can be referenced from elsewhere on the site.
  • The Organization name: "name": "Example Co."
  • Address,
  • Telephone,
  • Founders, and
  • Links to their official social profiles.

The ID pattern of referencing back to the canonical homepage URL with fragments (e.g. example.com/#organization) is a common one, since it provides a canonical reference for an organization tag that other schemas, like Article, reference.

BreadcrumbList: Making Navigation Machine-Readable

A BreadcrumbList is a critical schema object for sites with clear navigation, since it maps the article’s position in the site hierarchy and helps search engines surface such pages in search results. As with other schema types, Google specifies the eligibility rules via the Schema.org and its own SEO documentation, and here the key pointers are:

  • A valid BreadcrumbList object must include at least two ListItems, each having the required properties position (an integer starting at 1), name (the text title displayed to users), and item (a URL string that points to the page or @id on the respective Thing).
  • If all ListItem objects are provided, item must be omitted for the last item, which represents the current page.
  • The position values must be sequential integers, starting at 1, and must be unique, with no gaps between them.

Those rules are fundamental, but because Breadcrumbs are controlled by two worlds—their properties on paper and their significance to a user in navigation—there are nuanced expectations around the user path in breadcrumbs and whether item should be provided for the current page.

Validation and Silent Failures

Without validation, JSON-LD structured data can appear on a HTML page and look correct, even if it’s not—it may even pass superficial validations—but it won’t deliver the SEO boost it should if it violates Google’s eligibility rules. For example, a BreadcrumbList with only one item, or with non-sequential positions, are silent failures–Google’s site crawlers ignore it.

The key then is to validate your JSON-LD by testing it against Schema.org’s official definitions and Google’s own formatting rules in the Rich Results Test and the Structured Data Testing Tools. Here, you’re able to see if there’s something that’s not quite right, like a nested BreadcrumbList or a ListItem pointing to 404, so you can tweak it until it passes.