Breakline

Technical SEO

How to Implement JSON-LD Structured Data for SEO

How to write, add and test JSON-LD structured data, from LocalBusiness and Article schema to the common mistakes that break your markup.

Key takeaways

  • Google recommends JSON-LD over Microdata or RDFa, and it sits in one tidy script block that does not interfere with your HTML markup.
  • Choose the schema types that fit your content, such as LocalBusiness, Article or Product, and fill in only the properties that are relevant.
  • Make sure the business details in your markup match your Google Business Profile listing and other directory sites exactly.
  • Test new markup with Google's Rich Results Test, cross-check the Search Console structured data report and recheck after site updates.
  • Avoid duplicate markup from multiple plugins, made-up properties and wrong date formats, and always use ISO 8601 (YYYY-MM-DD) for dates.
JSON-LD Structured Data for SEO
On this page10 sections

JSON-LD structured data isn’t just another technical buzzword that’ll disappear next month. It’s actually become the gold standard for helping search engines understand what your website is really about. Google explicitly recommends it over other formats like Microdata or RDFa, & honestly? They’ve got good reasons for that preference.

The beauty of JSON-LD lies in its simplicity. You’re essentially giving search engines a neat little package of information about your content, wrapped up in a format they can easily digest. Think of it as writing a brief summary for someone who’s incredibly smart but needs everything spelled out clearly.

But here’s where it gets interesting. Most people I’ve worked with assume structured data is some mystical SEO magic trick that’ll instantly rocket their rankings. It’s not quite that straightforward.

Why JSON-LD Beats Other Structured Data Formats

I’ve been implementing structured data for years now, & I can tell you that JSON-LD consistently proves itself superior to alternatives. The main reason? It doesn’t interfere with your HTML markup at all. You simply drop a script block into your page & you’re done.

Microdata, for comparison, requires you to sprinkle attributes throughout your existing HTML elements. That gets messy fast. RDFa follows a similar approach but with even more complexity thrown in. JSON-LD keeps everything contained in one tidy script tag.

Google’s preference for JSON-LD isn’t arbitrary either. The format allows for richer, more detailed descriptions of your content. You can include multiple entity types, complex relationships between data points, and nested properties that would be nightmarish to implement with other formats.

Perhaps most importantly, JSON-LD is far less prone to implementation errors. When you’re working with Microdata, one misplaced attribute can break the entire structured data for that element. JSON-LD syntax is more forgiving & easier to validate.

Understanding Schema Types & Properties

Schema.org defines hundreds of different entity types, but you’ll likely only need a handful for most websites. LocalBusiness, Article, Product, Organization, Person, Recipe, Event – these cover probably 80% of use cases.

Each schema type comes with its own set of properties. Some are required, others optional. The tricky part isn’t figuring out which properties exist (Schema.org documentation handles that) but deciding which ones actually matter for your specific situation.

Here’s something that surprises people though. You don’t need to fill in every possible property. I often see websites crammed with irrelevant structured data properties just because they exist. Search engines appreciate relevance over completeness.

LocalBusiness schema, for instance, includes properties for everything from payment methods to parking availability. But if you’re a small consultancy working from home, including parking details just looks ridiculous. Use common sense.

Creating Your First JSON-LD Script

Right, let’s get practical. I’ll walk you through creating a basic LocalBusiness schema since it’s probably the most universally useful starting point.

Your JSON-LD script always starts with a script tag that specifies the type as “application/ld+json”. Inside that, you’ll define your structured data object. Here’s the basic structure for a local business:

Step 1: Create the script container

“`html

<script type=”application/ld+json”>

{

“@context”: “https://schema.org”,

“@type”: “LocalBusiness”

}

</script>

“`

Step 2: Add essential business information

Now you’ll add the core details. Name, address, phone number – the basics that people actually need. Here’s where attention to detail matters. Make sure your business name matches exactly what appears on your Google Business Profile listing & other directory sites.

“`html

{

“@context”: “https://schema.org”,

“@type”: “LocalBusiness”,

“name”: “Smith’s Plumbing Services”,

“address”: {

“@type”: “PostalAddress”,

“streetAddress”: “123 High Street”,

“addressLocality”: “Manchester”,

“postalCode”: “M1 1AA”,

“addressCountry”: “GB”

},

“telephone”: “+44-161-123-4567”

}

“`

Step 3: Include additional relevant properties

This is where you can add opening hours, website URL, description, & other useful details. Don’t go overboard – stick to information that genuinely helps potential customers.

Article Schema Implementation Guide

Article schema is brilliant for blogs, news sites, & any content-focused pages. It helps search engines understand your content structure & can lead to enhanced search results with publish dates, author information, & article snippets.

The basic Article schema requires fewer properties than LocalBusiness, but there are some nuances worth noting. You’ll need a headline, author, datePublished, & ideally an image. Here’s a straightforward example:

“`html

{

“@context”: “https://schema.org”,

“@type”: “Article”,

“headline”: “Complete Guide to Garden Maintenance”,

“author”: {

“@type”: “Person”,

“name”: “Jane Wilson”

},

“datePublished”: “2024-03-15”,

“dateModified”: “2024-03-20”,

“image”: “https://example.com/garden-guide-image.jpg”,

“publisher”: {

“@type”: “Organization”,

“name”: “Garden Expert Ltd”

}

}

“`

Something I’ve learned from experience – always include both datePublished & dateModified. Search engines use this information to determine content freshness, which can impact rankings for time-sensitive topics.

The image property deserves special mention. It should point to a high-quality image that represents your article content. Google often uses this image in rich search results, so choose wisely.

Adding Scripts to Your Website

The placement of your JSON-LD script matters more than you might think. I typically recommend adding it within the <head> section of your HTML document, but it can technically go anywhere in the <head> or <body>.

For WordPress sites, you’ve got several options. You can add the script directly to your theme’s header.php file, though this approach gets messy if you need different schema types on different pages. Plugin solutions like Yoast SEO or RankMath offer more flexibility.

If you’re comfortable with a bit of coding, creating a custom function that generates appropriate schema based on page type gives you maximum control. I’ve built systems that automatically generate Article schema for blog posts, LocalBusiness schema for location pages, & Product schema for e-commerce items.

Here’s the thing though – whatever method you choose, consistency is crucial. Don’t mix & match approaches across your site unless you really know what you’re doing.

Testing & Validation

Google’s Rich Results Test tool is your best friend here. It shows exactly how Google interprets your structured data & highlights any errors or warnings. I probably check this tool dozens of times per week when implementing new schema markup.

The tool isn’t perfect though. Sometimes it’ll flag warnings for properties that are actually fine, or miss issues that cause problems in actual search results. Always cross-reference with Google Search Console’s structured data report for a complete picture.

Common validation errors usually stem from missing required properties, incorrect data formats, or typos in property names. JSON syntax is unforgiving – one missing comma can break the entire schema block.

I’ve found that building a testing routine helps catch issues early. Test immediately after implementation, then recheck periodically to ensure everything remains functional after site updates or theme changes.

Common Implementation Mistakes

The biggest mistake I see is overcomplicating things. People often try to include every possible schema property, creating massive JSON-LD blocks that are difficult to maintain & potentially confusing for search engines.

Another frequent error is inconsistent information across different data sources. If your JSON-LD says your business opens at 9 AM but your Google Business Profile listing says 8:30 AM, that creates confusion. Keep everything aligned.

Duplicate schema markup is surprisingly common too. This usually happens when people use multiple plugins or methods that each generate their own structured data. Google handles duplicates reasonably well, but it’s sloppy & can cause unexpected issues.

Date formatting catches people out regularly. Always use ISO 8601 format (YYYY-MM-DD) for dates. I can’t count how many schemas I’ve seen broken by incorrect date formats.

Oh, & please don’t make up properties that don’t exist in the Schema.org vocabulary. I’ve seen people create custom properties thinking it’ll help, but it just confuses search engines.

Measuring Results & Impact

Structured data benefits aren’t always immediately obvious. You might not see dramatic ranking improvements, but enhanced search result appearances can significantly boost click-through rates.

Google Search Console provides detailed reports on your structured data performance. Look for increases in rich result appearances & click-through rates on pages with implemented schema markup. The data can take weeks to show meaningful trends though, so patience is essential.

I track several metrics when evaluating structured data success. Organic click-through rates for schema-enhanced pages compared to similar pages without markup. Appearance in featured snippets or knowledge panels. Changes in average search result position for targeted keywords.

Sometimes the impact is more subtle. Better search result presentation might not increase total clicks but could attract more qualified visitors who convert at higher rates. Monitor your analytics holistically rather than focusing solely on traffic volume.

The Bottom Line

JSON-LD structured data won’t magically transform your SEO overnight, but it’s become table stakes for serious websites. The implementation process is straightforward once you understand the basics, & the potential benefits make it worthwhile for most businesses.

Start simple. Pick one schema type that fits your content, implement it properly, test thoroughly, & monitor results. You can always expand to additional schema types later as you become more comfortable with the process.

The most important thing? Just start somewhere. Perfect is the enemy of good when it comes to structured data implementation. A basic, correctly implemented schema is infinitely better than an elaborate one that’s broken or never gets deployed.

Frequently asked questions

Why is JSON-LD better than Microdata or RDFa?

JSON-LD keeps all your structured data in one tidy script tag, so it does not interfere with your HTML markup. Microdata requires attributes sprinkled throughout your HTML elements, and RDFa adds even more complexity. JSON-LD is also less prone to implementation errors and easier to validate.

Where should a JSON-LD script go on a page?

Adding JSON-LD within the head section of your HTML document is recommended, though it can technically go anywhere in the head or body. On WordPress, you can add it to your theme's header.php file or use plugins such as Yoast SEO or RankMath for more flexibility. Whichever method you choose, use it consistently across your site.

Which properties does Article schema need?

Article schema needs a headline, author and datePublished, and ideally an image. Include both datePublished and dateModified, because search engines use them to judge content freshness. The image should be a high-quality picture that represents the article, as Google often uses it in rich search results.

Do you need to fill in every schema property?

No. Search engines appreciate relevance over completeness, so include only the properties that matter for your situation. LocalBusiness schema covers everything from payment methods to parking availability, but a small consultancy working from home has no reason to list parking details. Overcomplicated blocks are hard to maintain and can confuse search engines.

How do you test JSON-LD structured data?

Use Google's Rich Results Test to see how Google interprets your structured data and to spot errors or warnings. The tool is not perfect, so cross-reference it with the structured data report in Google Search Console. Test straight after implementation and recheck periodically, especially after site updates or theme changes.

What are the most common JSON-LD mistakes?

Common errors include missing required properties, typos in property names and a single missing comma that breaks the whole block. Duplicate markup from multiple plugins, details that conflict with your Google Business Profile and incorrect date formats also cause problems. Never make up properties that do not exist in the Schema.org vocabulary.

How do you measure the impact of structured data?

Look in Google Search Console for increases in rich result appearances and click-through rates on pages with schema markup. Compare organic click-through rates for schema-enhanced pages with similar pages without markup, and watch for featured snippets, knowledge panels and position changes. The data can take weeks to show meaningful trends.

Further reading

  1. Google Business Profile, Google
  2. Google Search Console, Google