text

You’ve Been Avoiding JSON-LD and It Needs to Stop

Cliftoncreative.agency

The reason most content sites have incomplete schema isn’t that nobody knows schema exists. It’s that when someone finally sits down to look at the format Google recommends — JSON-LD — they see something that resembles a developer’s to-do list and decide they’ll come back to it later.

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

Later never comes.

I want to fix that. Not by pretending JSON-LD is simpler than it is, but by explaining what it actually does, why it looks the way it does, and how to read it so that the fear of it stops being a reason to skip the thing entirely.


What JSON-LD is, before we go any further

JSON-LD stands for JavaScript Object Notation for Linked Data. The “linked data” part is what matters: it’s a format for expressing relationships between things. This entity is a Person. This Person is the author of this Article. This Article was published by this Organization. The format connects things that belong together so a machine can understand them without inferring anything from surrounding text.

The “JavaScript Object Notation” part just describes how the information is formatted — using curly braces, quotes, colons, and commas. You’ve been reading JSON-LD every time you’ve seen a Google Knowledge Panel populate with accurate information. You’ve been producing it every time a plugin adds structured data to your site without telling you. The only new thing here is reading it with intention.


Why JSON-LD specifically

Google supports three formats for structured data: JSON-LD, Microdata, and RDFa. All three work. Google recommends JSON-LD. The recommendation is correct, and here’s the architectural reason why.

Microdata and RDFa require you to weave structured data directly into your HTML — wrapping individual elements with attributes, tagging specific visible words and phrases. If your page layout changes, your schema breaks. If a content manager updates copy, they can accidentally break structured data they didn’t know was there. Every change to the page touches the schema.

JSON-LD lives in a separate <script> block, typically in the <head> of your page. It doesn’t touch your visible HTML. It sits beside your content, describes it, and does its job without getting tangled up in how the page looks or what’s in it visually. You can update your content without touching the schema. You can update the schema without touching the content.


What JSON-LD looks like

Here is Article schema written in JSON-LD. Read this top to bottom:

{
"@context": "https://schema.org",
"@type": "Article",
"headline": "You've Been Avoiding JSON-LD. Here's Why That Needs to Stop.",
"author": {
"@type": "Person",
"name": "Jacob Clifton",
"url": "https://cliftoncreative.agency"
},
"datePublished": "2026-04-01",
"dateModified": "2026-04-01",
"publisher": {
"@type": "Organization",
"name": "Clifton Creative",
"url": "https://cliftoncreative.agency"
}
}

From top to bottom:

Everything else is a property of that type. The headline, who wrote it, when it was published, who published it.


Three things that trip people up

Schema.org lists dozens of properties for most types. You don’t need most of them. For Article schema, Google publishes which properties are required for rich results and which are recommended. Start with required. Add recommended. Ignore the rest until you have a specific use case for them. Completism is not the goal. Coverage is.

The JSON-LD must match your visible content. If you include a 4.8-star rating in your structured data and there’s no visible rating on the page, Google will ignore it at best and flag it at worst. The machine-readable layer describes the human-readable layer — it doesn’t supplement it with information that isn’t there for people to see. This is the rule that trips up most implementation errors.

JSON-LD goes in a <script type="application/ld+json"> block, typically in the <head>. In WordPress, your SEO plugin handles this automatically when properly configured. If you’re adding it manually — through a theme function, a custom code plugin, or a header injection tool — confirm it’s actually landing in the markup by using your browser’s View Source function or a browser inspector. A schema block that doesn’t render is the same as no schema block.


Validating what you write

Before any post with new or updated schema goes live, run it through Google’s Rich Results Test. Paste in a URL or paste in the raw JSON-LD. It will tell you whether Google can parse the markup, whether you qualify for any rich result types, and what errors are present.

This is not optional. It takes thirty seconds. If you are writing about schema for a living and publishing posts that haven’t passed the Rich Results Test, you have a credibility problem. The whole point of the practice-what-you-preach standard is that the schema on this post should be validated before it goes live.


Where WordPress fits in

If you’re running Yoast SEO, Article schema is added to posts automatically once the Organization settings are filled in. What Yoast generates for Article is a floor, not a ceiling — it covers the required properties but may not include recommended ones like image, articleSection, or mainEntityOfPage, depending on your configuration.

Rank Math gives you more granular control and lets you customize schema type per post. Schema Pro is built specifically for structured data management and is worth considering if schema is a deliberate part of your content strategy rather than a background task.

Regardless of which plugin you use: open the settings and fill in everything completely. The Organization name, logo, URL, social profiles. The author name and URL. Default to nothing blank. A plugin that outputs incomplete schema because nobody configured the organization fields is producing markup that validates but doesn’t contribute to your entity graph in any meaningful way.


What to do next

Configure your SEO plugin’s organization and author settings completely. Validate your homepage and at least one post using the Rich Results Test. Fix any errors before publishing anything new.

Then, once Article schema is solid and validated: move into the types that actually earn visible rich results — FAQPage for posts with Q&A content, HowTo for genuinely instructional content, BreadcrumbList for site-wide navigation. Those are where the SERP differentiation comes from. JSON-LD is the format that implements all of them.

Now you know how to read it. JSON-LD is the format; getting to scheming is the move.



Discover more from Clifton Creative

Subscribe to get the latest posts sent to your email.