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.
What Yoast handles automatically
- Organization or Person schema on your homepage, based on the configuration you set in Yoast → Settings → Site Representation. Set this up correctly — choose Organization or Person, add your name and logo URL, add social profiles in the Knowledge Graph section. This is the entity declaration everything else builds on.
- Yoast gives you Article schema on every post and page, including headline, author (as a Person entity if you have set up author profiles), publisher, and dates. You can and should verify this is outputting correctly using Google’s Rich Results Test on any Post or Page.
- Breadcrumb schema sitewide, if breadcrumbs are enabled in Yoast → Settings → Advanced → Breadcrumbs. Do enable them. Be sure your theme is displaying the Yoast breadcrumb function, not a custom one that could conflict.
What Yoast does not handle automatically
- FAQ schema. You need to use the Yoast FAQ block in Gutenberg to mark up any FAQ content. Add the block, enter your questions and answers there, and Yoast will output FAQPage schema. The questions and answers must be entered in the Yoast block — Yoast doesn’t automatically convert existing text by itself.
- HowTo schema. Same deal, same approach — use Yoast’s How-To block for instructional, step-by-step content.
- Custom schema types. Yoast doesn’t handle Product, Event, Recipe, or most other specialized schema types. For these, you need either a dedicated plugin or manual JSON-LD implementation.
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.
I write about content strategy, editorial leadership, and the technical infrastructure that makes search performance possible.
For inquiries: jacob@cliftoncreative.agency · cal.com/cliftoncreative

