Schema markup is code that describes your page to search engines in a standard vocabulary. It says, “this is an article, written by this author, published on this date,” or “this is a local business at this address.” The format Google recommends is JSON-LD, a block of data placed in the page rather than woven through the visible HTML.
This guide covers what to add, templates you can adapt, and how to test it. Google changes which rich results it shows, so confirm current eligibility in Google’s Search Central documentation.
What structured data can and cannot do
- It can help search engines understand your content and make pages eligible for certain enhanced results, such as review stars or product details.
- It cannot guarantee rich results, and it is not a direct ranking factor on its own.
- It must match what visitors can see on the page. Marking up content that is not visible is against Google’s guidelines and can lead to a manual action.
JSON-LD basics
A JSON-LD block sits in a script tag:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Example Company",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"sameAs": [
"https://www.linkedin.com/company/example"
]
}
</script>
Three keys do the heavy lifting: @context (always schema.org), @type (what the thing is), and the properties for that type. Replace the placeholder values with your own real details.
Which schema types are worth adding
- Organization (site-wide, usually on the homepage): name, logo, URL, and profile links.
- WebSite: the site name and URL.
- Article or BlogPosting: headline, author, publish and modified dates, and image.
- BreadcrumbList: shows the path to the page in results.
- LocalBusiness (and subtypes): for businesses with a physical location or service area. Include address, phone, and hours that match your Google Business Profile.
- Product and Offer: for e-commerce pages, with price, availability, and review data where you really have them.
- Person: for author pages.
A note on FAQ and HowTo
Google has changed these. Per Google’s announcements, FAQ rich results were limited in 2023 to well-known government and health sites, and HowTo rich results were scaled back. You can still mark up FAQs because other systems may read them, but do not expect expandable FAQ results in Google for most sites. Check the current documentation for any type before building a strategy around it.
An article template
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Your Exact Post Title",
"image": "https://example.com/images/post.jpg",
"datePublished": "2026-01-15T09:00:00+00:00",
"dateModified": "2026-02-01T09:00:00+00:00",
"author": {
"@type": "Person",
"name": "Author Name",
"url": "https://example.com/about/"
},
"publisher": {
"@type": "Organization",
"name": "Example Company",
"logo": { "@type": "ImageObject", "url": "https://example.com/logo.png" }
}
}
</script>
Dates should be in ISO 8601 format, and the headline should match the visible title.
Generating schema without errors
You have three practical options:
- Let your CMS or SEO plugin generate it. Most WordPress SEO plugins output Organization, WebSite, Article, and breadcrumb data automatically. Check what is already there before adding more, because duplicate or conflicting markup causes warnings.
- Use a generator. Our free schema markup generator (JSON-LD) fills a template from a form. Review the result before pasting it in.
- Template it with code. For larger sites, generate JSON-LD from your content fields so each page has accurate data. Claude Code can help write and test this kind of template, which we cover in our post on AI SEO automation and metadata at scale. A person should check the output before it goes live.
Whatever you use, keep one source of truth. If your phone number changes, it should change in one place.
How to test
- Rich Results Test (Google): checks whether a page is eligible for Google’s rich result types.
- Schema Markup Validator (schema.org): validates syntax against the vocabulary, regardless of Google eligibility.
- Search Console Enhancements reports: after launch, monitor errors and warnings at scale.
- View the rendered page: confirm the script is present in the final HTML and not blocked.
Fix errors first. Warnings about optional properties can usually wait.
Common mistakes
- Marking up content that does not appear on the page.
- Invalid JSON (a missing comma or quote breaks the whole block).
- Using
httpURLs when your site is onhttps. - Review markup written by the business about itself. Self-serving review markup can violate Google’s guidelines.
- Conflicting data between your plugin and manually added blocks.
- Fake or placeholder values left in production.
Where schema fits in a bigger technical SEO plan
Structured data works best on a solid foundation: crawlable pages, clean site structure, fast loading, and strong content. See our guides to schema for service businesses, schema for e-commerce, mobile SEO strategy and ecommerce product page SEO for related steps.
A LocalBusiness template
For a business with a location, a minimal block looks like this. Use your own real details, and make sure they match your Google Business Profile exactly:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Example Plumbing",
"url": "https://example.com/",
"telephone": "+1-555-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Sampletown",
"addressRegion": "FL",
"postalCode": "00000",
"addressCountry": "US"
},
"openingHours": "Mo-Fr 08:00-17:00"
}
</script>
The values above are placeholders. If you serve customers at their location instead of at a storefront, look up how to describe a service area in the schema.org documentation, and avoid publishing a home address you want to keep private.
Your next step
Start with an audit, not new code. View the source of your homepage and one blog post, search for ld+json, and list what is already there. Then run both through the Rich Results Test. Fix errors, remove duplicates, and add only the types your content genuinely supports. A small, accurate set of structured data beats a large, messy one.
Free tools and related reading
Free tools on this site:
- Schema markup generator (JSON-LD): fill in a form, copy the JSON-LD
- Meta tag and Open Graph generator: title, description, and social tags for the same page
- SERP snippet preview: see how the page will look in results
Related guides:
- Schema markup types for service businesses
- Schema markup for e-commerce in 2026
- AI SEO automation and metadata at scale
Need structured data implemented and monitored across a whole site? That is part of our SEO and organic growth service. Contact us for an audit.
Frequently asked questions
Does schema markup improve rankings?
Not directly. It helps search engines understand your page and can make it eligible for rich results, which may improve click-through rate.
Should I use JSON-LD, Microdata, or RDFa?
Google supports all three but recommends JSON-LD because it is easier to maintain.
How long until rich results appear?
There is no set time. Google must recrawl the page, and eligibility does not guarantee display.
Do I need a developer to add schema?
Not always. SEO plugins handle the basics. Custom types and templates are easier with some development help.