a person holding a paper

Implementing Schema in WordPress (Or Elsewhere)

Cliftoncreative.agency

You get Schema.

You understand why it matters. You want to implement it.

Thank you for reading this post, don’t forget to subscribe!

The question is how. The answer depends on what platform you are on and what you’re trying to accomplish.

This is a practical guide. No theory, just implementation.


If You Are:
on WordPress
With Yoast SEO

Yoast handles a meaningful subset of schema automatically and correctly when configured properly. Here is what it does and what you still need to do yourself.


If You Are:
on WordPress
With RankMath

RankMath’s schema implementation is more flexible than Yoast’s out of the box. The schema module in RankMath allows you to add and edit schema markup for each post individually, supports a wider range of schema types, and includes a visual schema builder that does not require JSON knowledge.

The setup is similar to Yoast: configure your Organization entity under RankMath → Titles & Meta → Global Meta, enable breadcrumbs, and use RankMath’s content editor integration to add schema to individual posts.

RankMath’s advantage for schema work is the per-post schema editor, which lets you add multiple schema types to a single post and edit the schema fields directly without ever touching JSON. For sites with complex schema requirements — Product pages, Event listings, Review schemas — this is significant.


If You Are:
On WordPress But Need
Manual JSON-LD
Implementation

I know I might as well be holding a flashlight under my chin for this part, but: For schema types not handled by your plugin, or for any schema work that requires a precision your plugin does not provide, manual JSON-LD is the answer.

In WordPress, the cleanest way to add manual JSON-LD is via a plugin like Insert Headers and Footers, which lets you paste JSON-LD into the header or footer of specific pages or sitewide.

Many themes and page builders also have header/footer code fields per page.

The JSON-LD block goes in the <head> of the page:

<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Your question here",
"acceptedAnswer": {
"@type": "Answer",
"text": "Your answer here."
}
}
]
}
</script>

Validate every manual implementation in Google’s Rich Results Test before considering it done.


If You Are Not
on WordPress

Webflow: Webflow has no native schema implementation beyond basic metadata. Manual JSON-LD in the page head settings is the standard approach. For sitewide schema (Organization, Breadcrumb), add it to your global page settings. For page-specific schema (Article, FAQ), add it to the individual page’s head code field.

Squarespace: Limited native schema support. Squarespace outputs some basic schema automatically, but it’s often incomplete. Manual JSON-LD via page header code injection is the most reliable approach for anything beyond the basics.

Shopify: Shopify outputs Product schema automatically for product pages, but the implementation is often incomplete — missing fields like review aggregation, availability specifics, or brand entity. The Yoast SEO for Shopify app handles much of this. For custom schema on non-product pages, use the theme’s header code fields.

Custom or headless builds: Schema is implemented directly in the page templates, typically as JSON-LD in the head template. The advantage of a custom build is complete control over schema output, but the responsibility falls entirely on the development team to be sure implementation is correct and maintained.


The Validation Step
You Cannot,
Must Not Skip

Whatever your platform and whatever your implementation method: validate every schema type you implement using Google’s Rich Results Test.

It’s about as simple and annoying as submitting to GSC, which you should doing as a matter of course as well. Paste your URL, or the code directly. Fix any errors before the page is published, or before you move on.

Schema errors that go unvalidated go uncorrected. An incorrect FAQPage implementation produces no rich results and no error message — it simply does nothing.

You will not know it is broken unless you check. So do the Check. Every time, every type.

This has been how to schema. Now get to schemin’. For the full strategic case: the content team’s complete guide to schema markup.



Discover more from Clifton Creative

Subscribe to get the latest posts sent to your email.