Structured data is extra markup that tells search engines what a page is about in a form machines can read without guessing. A page might say "Dr Rao, Dermatologist, open until 6 pm" in plain text. Structured data says it again as labelled facts: a person, a job title, opening hours.
It does not directly raise rankings. What it does is make a page eligible for rich results: stars, prices, FAQ-style answers, breadcrumbs and similar extras in the listing. Eligibility is not a guarantee, and Google decides case by case.
Use JSON-LD
There are three syntaxes (JSON-LD, Microdata and RDFa), and Google recommends JSON-LD. It lives in a single script block, separate from your visible HTML, which makes it far easier to add and maintain:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Title tags: how long they should be",
"datePublished": "2026-10-20",
"author": { "@type": "Organization", "name": "SEO Loop" }
}
</script>
The vocabulary comes from schema.org. @type says what the thing is, and every other key is a property of that type.
Types worth adding first
You do not need every type. Start with the few that match what the site actually is:
- Organization or LocalBusiness: name, logo, address, phone and opening hours. Put it on the home page.
- Article or BlogPosting: headline, dates, author. For every post.
- BreadcrumbList: shows the page's position in the site in the results.
- Product with Offer and Review: price, availability and ratings, for shops.
- FAQPage: only for pages that really are question and answer lists. Google now shows FAQ rich results for a small set of sites, so treat it as helpful structure, not a display trick.
The rules that keep you safe
- Mark up only what is visible on the page. Data that does not match the content can lead to a manual action.
- Do not invent reviews or ratings. Self-written reviews of your own business violate Google's guidelines.
- Fill in required properties. Missing fields make a page ineligible for the feature.
- Keep it accurate over time. Prices, hours and dates go stale.
Test it
Google's Rich Results Test and the Schema Markup Validator both parse a URL and list errors. You can also get a quick summary of what your page declares from the terminal:
curl seoloop.in/schema/example.com
It lists the JSON-LD types found on the page and flags missing properties, which is a fast way to spot a block that is present but incomplete.
Checklist
- JSON-LD, not Microdata, for new work
- One type per real entity on the page
- Required and recommended properties filled
- Every value matches visible content
- Re-tested after template changes