Schema markup is structured data you add to a page to tell search engines what its content means, rather than leaving them to infer it. A page might mention a name, a number and a date; schema states explicitly that these are a product, its price, and when the offer expires.
It does not directly improve rankings. What it does is make a page eligible for rich results — star ratings, FAQ dropdowns, breadcrumb trails, event details — which change how much space you occupy in the results and how many people click.
JSON-LD is the format to use
There are three syntaxes: JSON-LD, Microdata and RDFa. Google recommends JSON-LD and it is the only one worth considering for new work. It sits in a single <script> block, usually in the <head>, entirely separate from your visible HTML — so you can change page markup without breaking your structured data, and vice versa.
Microdata interleaves attributes through your HTML, which means every template change risks breaking it. If you have inherited Microdata, it still works, but migrate when convenient.
Types worth implementing
There are hundreds of schema.org types. A small handful produce visible results in Google, and the rest are mostly semantic housekeeping.
| Type | Use on | Visible result |
|---|---|---|
| BreadcrumbList | Every page below the homepage | Breadcrumb trail replaces the raw URL in results |
| Product + Offer | Product pages | Price, availability and rating in results |
| Review / AggregateRating | Pages with genuine reviews | Star ratings — subject to strict policy rules |
| FAQPage | Pages with real Q&A content | Expandable questions; visibility narrowed in recent years |
| Article / NewsArticle | Blog posts and news | Eligibility for Top Stories and article treatments |
| HowTo | Step-by-step instructions | Step previews on some surfaces |
| LocalBusiness | Location pages | Hours, address and phone in local results |
| Organization | Homepage | Knowledge panel signals, logo, social profiles |
| VideoObject | Pages with video | Video thumbnails and key-moment links |
If you implement only two, make them BreadcrumbList and Organization. Breadcrumbs apply to nearly every page and improve how your result reads; Organization helps Google associate your site with the right entity.
Writing it correctly
Three rules cover most of what goes wrong.
1. Mark up only what is visible on the page
Structured data must describe content the user can actually see. Marking up a price that is not on the page, or reviews that do not appear, is a policy violation and a common cause of manual actions. If the content is behind a tab or accordion but present in the HTML, that is fine.
2. Fill required properties, then recommended ones
Each type has required properties without which you are ineligible for the rich result, and recommended ones that improve your chances. Google's Rich Results Test distinguishes errors (blocking) from warnings (not blocking).
3. Connect entities with @id
Rather than repeating your Organization block on every page, define it once and reference it by @id elsewhere. This gives search engines a single coherent entity graph instead of dozens of slightly different copies.
Validating
- ●Rich Results Test — tells you whether Google will grant a rich result for the page. This is the one that matters.
- ●Schema Markup Validator — checks syntax against schema.org generally, including types Google does not support.
- ●Search Console → Enhancements — reports errors across your whole site once pages are indexed. The only view that catches template-wide breakage at scale.
Test the rendered page
If your schema is injected by JavaScript, always test the live URL rather than pasting a code snippet. Google renders pages before parsing structured data, but rendering can fail or time out — and then your markup simply is not there.
Mistakes that cause problems
- ●Marking up content that is not on the page — the most frequent cause of structured data manual actions.
- ●Self-serving AggregateRating: a business rating itself on its own site is not eligible. Ratings must come from genuine, independently collected reviews.
- ●FAQPage markup on pages that are not really FAQs. Eligibility narrowed substantially and abuse invites manual review.
- ●Leaving example values in place — "Your Company Name", placeholder prices, sample dates.
- ●Conflicting duplicate blocks: two Product blocks with different prices on one page leaves Google to guess.
- ●Marking up every page as Organization instead of using @id references from a single definition.
Generating schema in Flux N Pro
The Schema Generator produces valid JSON-LD for the common types — Article, Product, FAQ, LocalBusiness, BreadcrumbList, Organization and others — with the required properties enforced. It runs free without an account. Paste the output into your <head>, then confirm it with Google's Rich Results Test before shipping.
Frequently asked questions
Does schema markup improve rankings?
Not directly. Google has repeatedly said structured data is not a ranking factor. It makes pages eligible for rich results, which typically improves click-through rate — and that is where the value is.
Where should JSON-LD go on the page?
Inside a <script type="application/ld+json"> block. The <head> is conventional, but Google accepts it anywhere in the document, including injected by JavaScript, provided it is present in the rendered HTML.
Can I have multiple schema types on one page?
Yes, and you often should — an article page might carry Article, BreadcrumbList and Organization. Use an @graph array or separate script blocks. Just avoid conflicting duplicates of the same type.
Why is my valid markup not showing rich results?
Validity makes you eligible, not entitled. Google decides per query whether to show a rich result, and factors in page quality and site trust. New markup can also take weeks to appear as pages are recrawled.
Is FAQ schema still worth adding?
Google narrowed FAQ rich result visibility considerably, so expect far fewer expandable results than in the past. It remains useful as a semantic signal on pages with genuine Q&A content, but do not add fake FAQs chasing the rich result.
Try the Schema Generator
Run the checks described in this guide against your own site — free, no account needed.
Open Schema Generator →Get new guides by email
Occasional, practical SEO writing. No sequences, no upsells.