What Is Structured Data (Schema)?
Explains, with example code, how product, business, FAQ and article schema affect rich results.

Structured data is marking up the information on a page (such as a product price, business address, author or publish date) in a standard format that search engines understand unambiguously. The Schema.org vocabulary and usually the JSON-LD format are used. Correct markup makes the page eligible to appear with rich results such as stars, price or stock information.
What Is Structured Data Used For?
When a person looks at your product page, they instantly understand the price, brand and stock status. A search engine sees numbers and words on the same page and has to work out which number is the price and which is the product code. Schema markup removes that guesswork and presents the information labeled.
The most visible result is eligibility for rich results: the product's price and stock status in the search result, cooking time for a recipe, the date for an event, or a breadcrumb trail showing where the page sits. These extra details make the result more eye-catching.
An important fact: structured data is not a ranking guarantee, and Google always decides whether a rich result is shown. Markup makes your page a candidate for these displays; content quality and the overall health of the site remain decisive.
JSON-LD, Microdata and RDFa
There are three ways to add structured data to a page. Google recommends the JSON-LD format because it is the easiest to maintain. JSON-LD is added as a separate script block without touching the page's visible HTML.
| Format | How is it added? | Consideration |
|---|---|---|
| JSON-LD | In a separate script tag | Recommended, easy to maintain |
| Microdata | As attributes on HTML tags | Works, but intertwined with the template |
| RDFa | As an HTML attribute | Less common |
Price and Stock With Product Schema
On e-commerce sites the most valuable markup is the Product schema. Product name, image, description, brand, price, currency and stock status are conveyed through it. If genuine customer reviews are shown on the site, rating information can be added too.
The rule is simple: every piece of information in the schema must match what is visible on the page. Marking up a rating that is not shown on the page or an out-of-date price violates the guidelines and can lead to a manual action.
- Enter the real price shown on the page in the price field; the 0.00 in the example is only a placeholder.
- For products with variants, the price and stock information of each variant must match correctly.
- Generating this markup automatically at the template level is a feature to ask about when choosing an e-commerce platform.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Product",
"name": "Handmade Leather Wallet",
"image": "https://ornek.com/img/deri-cuzdan.webp",
"description": "Hand-stitched wallet made from vegetable-tanned leather.",
"brand": {"@type": "Brand", "name": "Sample Brand"},
"sku": "DC-001",
"offers": {
"@type": "Offer",
"url": "https://ornek.com/urun/deri-cuzdan/",
"priceCurrency": "TRY",
"price": "0.00",
"availability": "https://schema.org/InStock"
}
}
</script>Business and Organization Schema
On corporate sites the Organization schema, or the LocalBusiness schema for businesses with a physical address, defines the business name, logo, address, phone, opening hours and social media profiles. It is important that this information matches your Google Business Profile and the site's contact page exactly.
LocalBusiness has subtypes such as Restaurant, Hotel and Dentist; choosing the type that fits your business best makes the meaning clear. For corporate presentation sites, setting this structure up from the start should be a standard step of corporate website projects.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Sample Business",
"url": "https://ornek.com/",
"logo": "https://ornek.com/img/logo.png",
"telephone": "+90-000-000-00-00",
"address": {
"@type": "PostalAddress",
"streetAddress": "1 Sample St.",
"addressLocality": "District",
"addressRegion": "Province",
"addressCountry": "TR"
},
"openingHours": "Mo-Sa 09:00-19:00"
}
</script>Article and Breadcrumb Schema
On blog and news sites the Article (or BlogPosting) schema specifies the headline, author, publish and update dates and the main image. This information helps search engines understand correctly when the content was written and by whom.
BreadcrumbList shows the page's place within the site: Home › Blog › Category › Post. In search results this path can be shown instead of a long URL, which makes the result more readable.
- The author name should be a real person or organization, and if possible linked to an author page.
- The update date should be changed only when the content has genuinely been updated.
- The breadcrumb trail should follow the same structure as the breadcrumbs visible on the page.
Does FAQ Schema Still Work?
FAQ schema (FAQPage) was very widely used for a time because it showed questions as expandable lists in search results. Google later restricted this rich result to a limited group, such as authoritative government and health sites; for most commercial sites this display no longer appears.
Even so, FAQ markup is a valid schema.org type and helps machines understand the question-and-answer structure on a page. The real value lies not in the markup but in the content itself, which gives clear answers to real customer questions. So write the FAQ section for users, not in the hope of a rich result.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How many days does shipping take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Orders are usually handed to the carrier within 1-3 business days."
}
}]
}
</script>Which Schema for Which Industry?
Which schema to use depends on what the site sells and what the visitor is looking for. Rather than adding every possible type to every page, it is more valuable to fill in completely a few types that genuinely match the content.
For hotels, the Hotel type can carry details such as address, contact, amenities and price range. This information must be consistent with the data in the booking system; using the same data on the site and in a hotel software system that takes direct bookings makes that consistency easier. For restaurants and cafes, the Restaurant type can include cuisine type, opening hours and a menu link; keeping the QR code menu page open on the web helps the menu stay current and crawlable.
For service businesses, LocalBusiness and its fitting subtype; for e-commerce, Product and BreadcrumbList; for content sites, Article form the basic structure. Building these types into templates from the start is the clearest difference between SEO-friendly web design and markup added later: as new pages are added, the schema is generated automatically.
Testing and Search Console Tracking
Always test markup before publishing. Google's Rich Results Test shows which rich results a page is eligible for and which fields are missing or wrong. For general schema validation you can also use the schema.org validator.
After publishing, the Enhancements reports in Search Console list valid and invalid items for types such as product snippets and breadcrumbs. We explain in detail how to read the warnings you see there in our Search Console errors article.
- Test a sample page in the Rich Results Test, either by URL or as code.
- Fix critical errors; handle warnings in order of importance.
- Apply the template to all pages and monitor the Search Console reports.
- Make sure variable fields such as price, stock and date update automatically.
Common Mistakes
Structured data errors often come from a single template flaw and affect hundreds of pages at once. That is why the fix is usually made in one place.
- Marking up information that is not visible on the page (hidden ratings, fake reviews).
- Adding the same business reviews to every page as a Product rating.
- Leaving an old price or stock value in the cache.
- Leaving multiple conflicting schemas on the same page.
- JSON syntax error: a missing comma or quote makes the whole block unreadable.
Frequently Asked Questions
01Does structured data improve my rankings?
It should not be seen as a direct ranking factor. Its effect is indirect: the page is understood better and becomes eligible for rich results, which contributes to click-through rate.
02Should I add the same schema to every page?
No. Every page should carry the schema that suits its own content: Product on a product page, Article on a blog post, business information on the contact page. The Organization schema is usually defined once, on the home page.
03Does Google read schema added with JavaScript?
Google can generally read JSON-LD added with JavaScript when it renders the page. Still, it is more reliable and faster to have the markup in the HTML that comes from the server; always confirm with the testing tool that it is detected.
04Can I add schema myself?
On a one-page presentation site you can adapt the sample code and add it. On sites with many products or posts, though, the markup needs to be generated automatically from the template; schema added by hand goes out of date over time.
Structured data is the standard way to explain your page clearly and accurately to search engines, and a prerequisite for being a candidate for rich results. For a site where schemas are set up correctly at the template level, you can use our SEO-friendly web design, and for auditing and tracking your existing site, our SEO and analytics services.


