Schema markup examples: 7 JSON-LD templates for your business
Short answer
These schema markup examples are ready-to-edit JSON-LD blocks for the seven types most businesses need: Organization, LocalBusiness, WebSite, BreadcrumbList, Article, Person and Product. Schema markup uses the schema.org vocabulary to tell Google what a page is about. It can make a page eligible for rich results, but Google never guarantees them.
What schema markup is and what it does in Google
Schema markup, or structured data, describes a page in a fixed format that a machine can read without guessing. Instead of hoping a search engine spots your address in the footer, you state it outright: this is the name, this is the street, this is the postcode, this is the phone number. The type and property names come from schema.org, a vocabulary maintained jointly by the search engines. Google describes structured data as explicit clues about the meaning of a page.
What do you get out of it? First, the page can become eligible for rich results: product price and availability, breadcrumbs above the title, or your logo in a knowledge panel. Second, Google can more easily connect the page with the business, author or product it mentions. Google’s documentation cites businesses that measured the effect. Rotten Tomatoes marked up 100,000 pages and saw a 25% higher click-through rate on pages with structured data than on pages without it.
Two things to know from the start. Valid code doesn’t guarantee a rich result: Google decides what to show based on the query, the device and the user’s location. And the markup must describe what readers can see. Marking up hidden content or fake reviews can lead to a manual action. That action removes the page’s eligibility for rich results, but according to Google it doesn’t affect how the page ranks in regular web results.
JSON-LD, Microdata or RDFa?
Google supports all three formats and treats them as equally fine, as long as the markup is valid. It recommends JSON-LD, though, because it is the easiest to implement and maintain. JSON-LD is a separate <script type="application/ld+json"> block in the page code, kept apart from the visible text. Microdata and RDFa are attributes added to HTML tags, so a redesign can easily break them. All the schema markup examples on this page use JSON-LD.
Google can also read JSON-LD injected with JavaScript, for example through Google Tag Manager or a CMS widget. For products, however, it warns that dynamically generated markup can make Shopping crawls less frequent and less reliable. Keep price and availability in the HTML your server sends.
Which structured data to add: 7 schema.org types for a business
You don’t need to mark up everything. A business website, an online store or a blog usually needs seven types from the schema.org vocabulary. Each has its place: business details on the home page, breadcrumbs on subpages, Article on blog posts. The table shows where each type goes, what it can do in Google, and which properties are required before the markup is eligible for any search feature. The JSON-LD examples in the next sections follow the same order.
| schema.org type | Where to add it | What it can do in Google | Properties Google requires |
|---|---|---|---|
| Organization | Home page or About page | Logo and business details in the knowledge panel; telling your business apart from others with similar names | None. Recommended include name, url, logo, address, telephone, sameAs |
| LocalBusiness (a subtype such as Dentist or Plumber) | Home page of a single-location business, or each location’s page | Opening hours, address and phone in the business knowledge panel | name, address |
| WebSite | Home page only | Your preferred site name above the search result | name, url |
| BreadcrumbList | Every page except the home page | Breadcrumb trail above the title (desktop only) | itemListElement: at least two ListItems with position, name and item |
| Article | Blog post, guide, news item | Title, image and date in article features; author linked to the content | None. Recommended headline, image, datePublished, dateModified, author |
| ProfilePage with Person | Author or expert page | The author as a specific person; on community sites also the Discussions and Forums feature | mainEntity with name |
| Product with Offer | Product page in an online store | Price, availability and ratings on the product result | Product snippet: name plus one of offers, review, aggregateRating. Merchant listing: name, image, offers |
Required properties as listed in Google Search Central documentation (checked on 11 November 2026). A missing required property means the page isn’t eligible for that rich result. Google prefers fewer but complete and accurate properties over many incomplete ones.
What’s missing from the table? FAQPage and HowTo. Both types still exist in the schema.org vocabulary, but Google no longer shows rich results based on them (details in the FAQ schema section below). The Service type, common on service pages, doesn’t produce a rich result of its own. Google can still make general use of schema.org data and the sameAs property, so there’s no need to remove it as long as it describes what’s on the page.
Here’s how we do it on ai-seo-company.pl: every page carries a business block (LocalBusiness) and WebSite, service pages add Service and BreadcrumbList, and our About us page carries a Person block for the founder. A few types, each with details that readers can see on the page.
Organization schema example (with WebSite) for your home page
Organization schema tells Google who the business is: its name, where it’s based, how to contact it and which profiles on the web belong to it. Google doesn’t require any property here. It recommends adding every property that applies, especially ones that help users: name, address or phone as proof of a real-world presence, and url and logo as proof of an online one.
Add the block to your home page or to a single page about the business, such as About us. You don’t need it on every page. If customers visit your premises, or you serve a defined area, use a LocalBusiness subtype from the next section instead. It is still an Organization, just a more specific one.
JSON-LD example: Organization
{ "@context": "https://schema.org", "@type": "Organization", "@id": "https://www.example.com/#organization", "name": "Your Company", "legalName": "Your Company LLC", "url": "https://www.example.com/", "logo": "https://www.example.com/logo.png", "description": "One sentence about what your company does.", "email": "hello@example.com", "telephone": "+1 217 555 0100", "address": { "@type": "PostalAddress", "streetAddress": "100 Example Avenue", "addressLocality": "Springfield", "addressRegion": "IL", "postalCode": "62701", "addressCountry": "US" }, "taxID": "00-0000000", "sameAs": [ "https://www.linkedin.com/company/your-company", "https://www.facebook.com/yourcompany" ] }
What the fields mean
- @id – a stable identifier for the business in your markup, such as your URL plus
#organization. Other blocks can point to the same business with{"@id": "…"}instead of repeating the whole description. - name and legalName – the name you use on the website and in your business profile, plus the registered legal name if it’s different. Google asks for name to match the site name you use in WebSite.
- logo – the URL of your logo file, at least 112 × 112 pixels, crawlable by Googlebot (not blocked in robots.txt).
- sameAs – your business profiles on other sites: LinkedIn, Facebook, YouTube, an industry directory. Only profiles that genuinely belong to the business.
- taxID and vatID – your tax ID, matching the country in your address. In the EU you can add your VAT number in vatID. Google calls the VAT number an important trust signal, because users can look it up in public registries.
JSON-LD example: WebSite (site name)
WebSite tells Google which site name to show above your search results. It needs two properties, name and url, and goes on the home page only. Put a shorter name or acronym in alternateName. Google also looks at the title and headings of your home page, so use the same name everywhere.
{ "@context": "https://schema.org", "@type": "WebSite", "name": "Your Company", "alternateName": "YC", "url": "https://www.example.com/" }
The sitelinks search box is gone from Google, and its documentation was removed in November 2024. A potentialAction with SearchAction in the WebSite block no longer does anything in Google.
Local business schema example (LocalBusiness)
Local business schema is structured data for a business with premises or a service area: a dental practice, a garage, a restaurant, a law firm, a plumber. Google requires two properties: name and address. It recommends telephone, url, opening hours, geo coordinates and price range, among others. LocalBusiness is a subtype of Organization, so you can also use the fields from the previous section, such as logo, sameAs and tax ID.
Use the most specific type that fits. schema.org has dozens of subtypes, including Dentist, Plumber, Electrician, AutoRepair, HairSalon, AccountingService and Restaurant. A business that offers several kinds of service can list several types in an array, for example "@type": ["Electrician", "Plumber"]. Google doesn’t support additionalType here. If no subtype fits, plain LocalBusiness is fine.
JSON-LD example: LocalBusiness (a plumber)
{ "@context": "https://schema.org", "@type": "Plumber", "@id": "https://www.example.com/#business", "name": "Your Company", "url": "https://www.example.com/", "image": "https://www.example.com/photos/storefront.jpg", "logo": "https://www.example.com/logo.png", "telephone": "+1 217 555 0100", "email": "hello@example.com", "address": { "@type": "PostalAddress", "streetAddress": "100 Example Avenue", "addressLocality": "Springfield", "addressRegion": "IL", "postalCode": "62701", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 39.781721, "longitude": -89.650148 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "08:00", "closes": "18:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "09:00", "closes": "14:00" } ], "priceRange": "$$", "sameAs": [ "https://www.facebook.com/yourcompany" ] }
Rules that often get missed
- NAP matches your Business Profile. The name, address and phone number in your markup should be identical to those on the page and in your Google Business Profile. That’s how we run local SEO: one NAP record feeds the website, the profile, directories and structured data.
- Phone number with country code, for example +1 217 555 0100. Google asks for the country code and area code.
- Coordinates with at least 5 decimal places in geo.latitude and geo.longitude. You can copy them from Google Maps by right-clicking your location on the map.
- Times in 24-hour format (opens, closes) and days of the week as Monday… Sunday. Describe a seasonal closure with validFrom and validThrough dates.
- priceRange under 100 characters, such as “$$” or “$50-150”. Google won’t show a longer one.
- No star ratings about yourself. aggregateRating and review in LocalBusiness are only for sites that capture reviews about other businesses. If a business controls the reviews about itself, its pages with LocalBusiness or Organization markup aren’t eligible for review stars. Collect customer reviews on your Google Business Profile instead.
- One location, one block. Google asks you to define each location as its own LocalBusiness, ideally on its own page with address and opening hours.
Structured data won’t replace your Business Profile. For local results Google weighs relevance, distance and prominence, and prominence takes into account things like links and reviews. See how we work on that on our Google Business Profile optimization and local SEO in Warsaw pages.
Article and Person schema: marking up the author
Article covers blog posts, guides and news items. Google doesn’t require any property, but it recommends headline, image, publication and modification dates, and author. The dates and author in the markup should match what’s on the page, and the image should relate to the article.
Most mistakes are in the author field. Google recommends listing each author as a separate object, using Person for people and Organization for companies, and putting only the person’s name in name: no job title, no honorifics, no “posted by”. Put the job title in jobTitle. Add url or sameAs pointing to the author’s page.
JSON-LD example: Article with an author
{ "@context": "https://schema.org", "@type": "Article", "headline": "Article title, same as the H1", "image": [ "https://www.example.com/blog/cover-16x9.jpg", "https://www.example.com/blog/cover-1x1.jpg" ], "datePublished": "2026-11-11T08:00:00-06:00", "dateModified": "2026-11-11T08:00:00-06:00", "author": [ { "@type": "Person", "name": "Jane Doe", "jobTitle": "SEO Specialist", "url": "https://www.example.com/authors/jane-doe" } ], "publisher": { "@type": "Organization", "name": "Your Company", "url": "https://www.example.com/" } }
JSON-LD example: author page (ProfilePage and Person)
The author page is where author.url leads. ProfilePage tells Google the page is about one person, and the nested Person describes who that is. mainEntity and name are required. Google names articles among the types that can link to profile pages like this.
{ "@context": "https://schema.org", "@type": "ProfilePage", "dateModified": "2026-11-11T08:00:00-06:00", "mainEntity": { "@type": "Person", "name": "Jane Doe", "jobTitle": "SEO Specialist", "description": "One or two sentences about the author’s experience and focus.", "image": "https://www.example.com/authors/jane-doe.jpg", "worksFor": { "@type": "Organization", "name": "Your Company", "url": "https://www.example.com/" }, "knowsAbout": [ "technical SEO", "structured data" ], "sameAs": [ "https://www.linkedin.com/in/your-profile" ] } }
Why bother? Google’s guidance on helpful content asks whether it’s self-evident who wrote a page and whether bylines lead to more information about the author. According to Google, clear authorship aligns with E-E-A-T: experience, expertise, authoritativeness and trustworthiness. E-E-A-T itself isn’t a specific ranking factor, though, and markup won’t add experience the author doesn’t have. A real page with a bio, photo and areas of expertise has to exist first. Google treats fabricated author profiles as deception.
Here’s our own setup: the About us page has a Person block for the founder with jobTitle, worksFor and knowsAbout, matching what the page says.
FAQ schema, HowTo and AI: what structured data no longer does
Plenty of guides still recommend FAQ schema and HowTo as an easy way to get a bigger search result. That advice is out of date. Google has been simplifying its results pages for years and keeps retiring rich result types. Check the status in the table before you add code.
| Google feature | Status | Since | What to do with the code |
|---|---|---|---|
| FAQ rich result (FAQPage) | No longer shown; documentation removed in June 2026 | 7 May 2026 (from August 2023 limited to well-known government and health sites) | Don’t add it for a search result; no rush to remove existing markup |
| HowTo rich result | Retired on mobile and desktop | 13 September 2023 | Same as above |
| Sitelinks search box (SearchAction in WebSite) | Retired; documentation removed | 29 November 2024 (documentation removed) | Not needed for Google; keep WebSite for the site name |
| Breadcrumbs (BreadcrumbList) | Desktop results only | 22 January 2025 | Keep and maintain |
| AI Overviews and AI Mode | No special structured data required | Google’s AI features documentation | Make sure the markup matches the visible text |
Sources: Google Search Central documentation changelog, Google’s blog post of 8 August 2023 (updated 14 September 2023) and the AI features documentation. Dates checked on 11 November 2026.
What about existing FAQ schema? When Google limited FAQ results in 2023, it said that structured data that isn’t used doesn’t cause problems for Search, but has no visible effect either. So there’s no need to rush and remove FAQPage. Just don’t add it hoping for expandable questions under your result. Keep the questions and answers on the page if they help readers.
AI works the same way. Google states plainly that you don’t need any special schema.org structured data or new files to appear in AI Overviews or AI Mode. Its guide to optimizing for generative AI lists overfocusing on structured data among the things you can ignore, while advising you to keep using it because it makes pages eligible for rich results. Among the best practices for AI features, Google lists making sure your structured data matches the visible text on the page.
Treat llms.txt the same way: Google Search doesn’t use it, but other services might. You can build one with our llms.txt generator. For how we build a business’s visibility in ChatGPT and AI Overviews, see AI search optimization.
How to add and test the schema markup examples
JSON-LD goes in the head or body of the page. On WordPress, Shopify or Wix an SEO plugin or the theme settings usually handle it: you fill in a form and the plugin writes the code. Check, though, that your theme and plugin don’t output two different blocks about the same business, for example with a different name or an old phone number.
Check every change in three steps:
- Rich Results Test – shows the types that can produce rich results in Google. Fix every critical error. Warnings don’t affect eligibility, but they are worth fixing.
- Schema Markup Validator (validator.schema.org) – checks syntax and all types, including those the Rich Results Test doesn’t show, such as Service.
- URL Inspection in Search Console after publishing – shows how Googlebot sees the page. The page must not be blocked by robots.txt, a noindex tag or a login.
Then monitor the rich result status reports in Search Console, especially after the first deployment and after any template change. Valid items should go up and invalid items shouldn’t. Google points out that markup can break after deployment, for example because of a templating or serving issue.
The most common schema markup mistakes
- JSON syntax errors: a comma after the last item, a missing quote, curly quotes “ ” pasted from a word processor. One error invalidates the whole block.
- Placeholder values left in: example.com, 62701, +1 217 555 0100.
- Marking up content that isn’t on the page: opening hours, prices or reviews that exist only in the code.
- Reviews about your own business in aggregateRating on your own site.
- Several authors in one name field, or the company name in author.name.
- A logo smaller than 112 × 112 px, or blocked in robots.txt.
- Two blocks about the same business with different details (theme plus plugin).
- A generic type where a specific one exists: Organization instead of LocalBusiness for a clinic, LocalBusiness instead of Dentist.
Our free SEO audit catches some of these: it checks whether your home page has Organization or LocalBusiness markup and whether your JSON-LD blocks can be parsed. For a broader list of checks, see our technical SEO audit checklist and item D5 of the SEO checklist. If you’d rather have it reviewed and implemented for you, structured data is part of our SEO audit.
Schema markup templates to fill in (template preview)
Below is the full content of the PDF template. Use it straight away, or download the PDF with fill-in fields, a page-type map and a test log.
Part 1. Business details: one source for the code, the website and your profile
| Field | schema.org property | Your entry |
|---|---|---|
| Business name (as on your Google Business Profile) | name | … |
| Registered legal name, if different | legalName | … |
| Business type: the most specific LocalBusiness subtype, or Organization | @type | … |
| Street address | address.streetAddress | … |
| City, region and postcode | address.addressLocality, address.addressRegion, address.postalCode | … |
| Country (ISO code) | address.addressCountry | … |
| Phone with country code | telephone | +… |
| … | ||
| Home page URL | url | https://… |
| Logo, at least 112 × 112 px | logo | https://… |
| Coordinates, at least 5 decimal places | geo.latitude, geo.longitude | …, … |
| Opening hours | openingHoursSpecification | Mon–Fri … Sat … Sun … |
| Price range, under 100 characters | priceRange | … |
| Tax ID and VAT number | taxID, vatID | … |
| Business profiles on other sites | sameAs | 1. … 2. … 3. … |
Part 2. Page-type map
| Page type | URL on your site | JSON-LD types | Added | Tested, no errors |
|---|---|---|---|---|
| Home page | / | Organization or LocalBusiness, WebSite | ☐ | ☐ |
| About, contact | … | Organization or LocalBusiness, if not on the home page | ☐ | ☐ |
| Location page | … | LocalBusiness for each location, BreadcrumbList | ☐ | ☐ |
| Service page | … | BreadcrumbList | ☐ | ☐ |
| Blog post | … | Article, BreadcrumbList | ☐ | ☐ |
| Author page | … | ProfilePage with Person | ☐ | ☐ |
| Product page | … | Product with Offer, BreadcrumbList | ☐ | ☐ |
Part 3. JSON-LD templates to edit
Paste each template into a <script type="application/ld+json"> tag and replace the example values with your details from part 1. Delete fields that don’t apply, together with their commas.
3.1 Organization – home page or About page. Required: none.
{ "@context": "https://schema.org", "@type": "Organization", "@id": "https://www.example.com/#organization", "name": "Your Company", "legalName": "Your Company LLC", "url": "https://www.example.com/", "logo": "https://www.example.com/logo.png", "description": "One sentence about what your company does.", "email": "hello@example.com", "telephone": "+1 217 555 0100", "address": { "@type": "PostalAddress", "streetAddress": "100 Example Avenue", "addressLocality": "Springfield", "addressRegion": "IL", "postalCode": "62701", "addressCountry": "US" }, "taxID": "00-0000000", "sameAs": [ "https://www.linkedin.com/company/your-company", "https://www.facebook.com/yourcompany" ] }
3.2 WebSite – home page only. Required: name, url.
{ "@context": "https://schema.org", "@type": "WebSite", "name": "Your Company", "alternateName": "YC", "url": "https://www.example.com/" }
3.3 LocalBusiness (here: Plumber) – home page or location page. Required: name, address.
{ "@context": "https://schema.org", "@type": "Plumber", "@id": "https://www.example.com/#business", "name": "Your Company", "url": "https://www.example.com/", "image": "https://www.example.com/photos/storefront.jpg", "logo": "https://www.example.com/logo.png", "telephone": "+1 217 555 0100", "email": "hello@example.com", "address": { "@type": "PostalAddress", "streetAddress": "100 Example Avenue", "addressLocality": "Springfield", "addressRegion": "IL", "postalCode": "62701", "addressCountry": "US" }, "geo": { "@type": "GeoCoordinates", "latitude": 39.781721, "longitude": -89.650148 }, "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" ], "opens": "08:00", "closes": "18:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "Saturday", "opens": "09:00", "closes": "14:00" } ], "priceRange": "$$", "sameAs": [ "https://www.facebook.com/yourcompany" ] }
3.4 BreadcrumbList – every subpage. Required: at least two ListItems.
{ "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com/" }, { "@type": "ListItem", "position": 2, "name": "Services", "item": "https://www.example.com/services" }, { "@type": "ListItem", "position": 3, "name": "Emergency plumbing" } ] }
3.5 Article – blog post. Required: none; author as a separate Person.
{ "@context": "https://schema.org", "@type": "Article", "headline": "Article title, same as the H1", "image": [ "https://www.example.com/blog/cover-16x9.jpg", "https://www.example.com/blog/cover-1x1.jpg" ], "datePublished": "2026-11-11T08:00:00-06:00", "dateModified": "2026-11-11T08:00:00-06:00", "author": [ { "@type": "Person", "name": "Jane Doe", "jobTitle": "SEO Specialist", "url": "https://www.example.com/authors/jane-doe" } ], "publisher": { "@type": "Organization", "name": "Your Company", "url": "https://www.example.com/" } }
3.6 ProfilePage with Person – author page. Required: mainEntity, name.
{ "@context": "https://schema.org", "@type": "ProfilePage", "dateModified": "2026-11-11T08:00:00-06:00", "mainEntity": { "@type": "Person", "name": "Jane Doe", "jobTitle": "SEO Specialist", "description": "One or two sentences about the author’s experience and focus.", "image": "https://www.example.com/authors/jane-doe.jpg", "worksFor": { "@type": "Organization", "name": "Your Company", "url": "https://www.example.com/" }, "knowsAbout": [ "technical SEO", "structured data" ], "sameAs": [ "https://www.linkedin.com/in/your-profile" ] } }
3.7 Product with Offer – product page. Required: name and offers (merchant listings also image).
{ "@context": "https://schema.org", "@type": "Product", "name": "Product name", "image": [ "https://www.example.com/products/product-name-1x1.jpg" ], "description": "A short product description, as on the product page.", "sku": "SKU-0001", "brand": { "@type": "Brand", "name": "Brand" }, "offers": { "@type": "Offer", "url": "https://www.example.com/products/product-name", "price": 39.99, "priceCurrency": "USD", "availability": "https://schema.org/InStock" } }
Part 4. Pre-publication checklist
- ☐ Rich Results Test shows no critical errors
- ☐ Schema Markup Validator shows no syntax errors
- ☐ Every value in the code is visible on the page: name, address, hours, price, author
- ☐ Name, address and phone identical in the code, on the page and on your Google Business Profile
- ☐ Required properties filled in, no placeholder values left (example.com, 62701)
- ☐ The most specific matching type, such as Dentist rather than LocalBusiness
- ☐ No star ratings about yourself in LocalBusiness or Organization
- ☐ Logo and images crawlable by Googlebot, not blocked in robots.txt
- ☐ One block per business: theme and plugin don’t duplicate it
- ☐ Page has no noindex, isn’t blocked in robots.txt and isn’t behind a login
- ☐ After publishing: URL Inspection in Search Console
- ☐ Next review date: after any change to business details, prices or page templates
Part 5. Test log
| Date | Page URL | Tool | Errors and warnings | Fix, owner |
|---|---|---|---|---|
| … | … | Rich Results Test / Schema Markup Validator / URL Inspection | … | … |
| … | … | … | … | … |
| … | … | … | … | … |
Part 6. What not to add for an effect in Google (as of 11 November 2026)
- ☐ FAQPage: the FAQ rich result hasn’t been shown since 7 May 2026
- ☐ HowTo: retired on 13 September 2023
- ☐ SearchAction in WebSite: the sitelinks search box is retired, documentation removed on 29 November 2024
- ☐ Reviews about yourself in aggregateRating on your own site: no stars for self-serving reviews
- ☐ Special “AI” markup: Google doesn’t require it for AI Overviews or AI Mode
Get the schema markup templates (PDF)
We will email you a PDF with a business data sheet, a page-type map, 7 JSON-LD templates to edit, a pre-publication checklist and a test log.
Related guides and tools
- Free SEO audit: checks your home page business markup and broken JSON-LD blocks
- SEO checklist: 50 checks, including structured data (item D5)
- Google Business Profile optimization: your profile, Google Maps and consistent NAP details
- SEO audit: a technical review of your site, including structured data implementation
- AI search optimization: getting your business mentioned in ChatGPT, Gemini and Google AI Overviews
- Local SEO checklist: the same NAP data in your Google Business Profile and on your site
- E-E-A-T checklist: authors, reputation and trust behind your Person and Organization markup
Frequently asked questions
Schema markup is structured data that describes a page in a standard format, usually JSON-LD, using type and property names from the schema.org vocabulary. It tells search engines outright that a page contains, say, a business with an address, an article with an author or a product with a price. Google uses it to understand the page and to decide whether it is eligible for rich results such as breadcrumbs or product prices.
Google’s documentation doesn’t promise higher rankings. Structured data helps Google understand a page and makes it eligible for rich results, but Google never guarantees they will show. The effect is more visible in how the result looks and how many clicks it gets: Google cites Rotten Tomatoes, whose pages with structured data had a 25% higher click-through rate. Rankings come from content, technical work and links; structured data supports them.
JSON-LD. Google also supports Microdata and RDFa and treats all three formats as equally fine when the markup is valid. It recommends JSON-LD because it is the easiest to implement and maintain: the block sits apart from the content, so a redesign won’t break it. Google can also read JSON-LD injected with JavaScript, for example through Google Tag Manager, although product data is best kept in server-rendered HTML.
Not in Google results. The FAQ rich result has not been shown since 7 May 2026, and Google removed its documentation in June 2026. From 2023 it had already been limited to well-known government and health websites. Existing FAQPage markup doesn’t cause problems, so there’s no need to rush and remove it, but don’t add it for a search result. Keep the questions and answers on the page if they help readers.
No. Google says you don’t need any special schema.org structured data or extra files to appear in AI Overviews or AI Mode. The page has to be indexed and eligible to be shown with a snippet. Google still advises using structured data because it makes pages eligible for rich results, and making sure it matches the text that is visible on the page.
Usually three or four: LocalBusiness or Organization plus WebSite on the home page, BreadcrumbList on subpages, and Article on blog posts if you publish them. An online store adds Product on product pages. Fewer types with complete, accurate details beat marking up everything. Google itself says that complete and accurate properties matter more than how many you provide.
Sources
- Google Search Central: Introduction to structured data markup in Google Search (accessed November 11, 2026)
- Google Search Central: General structured data guidelines (accessed November 11, 2026)
- Google Search Central: Structured data markup that Google Search supports (accessed November 11, 2026)
- Google Search Central: Organization structured data (accessed November 11, 2026)
- Google Search Central: Local business (LocalBusiness) structured data (accessed November 11, 2026)
- Google Search Central: Site names in Google Search (WebSite structured data) (accessed November 11, 2026)
- Google Search Central: Breadcrumb (BreadcrumbList) structured data (accessed November 11, 2026)
- Google Search Central: Article structured data (author markup best practices) (accessed November 11, 2026)
- Google Search Central: Profile page (ProfilePage) structured data (accessed November 11, 2026)
- Google Search Central: Product snippet (Product, Review, Offer) structured data (accessed November 11, 2026)
- Google Search Central: Merchant listing (Product, Offer) structured data (accessed November 11, 2026)
- Google Search Central: Review snippet structured data (self-serving reviews) (accessed November 11, 2026)
- Google Search Central: Generate structured data with JavaScript (accessed November 11, 2026)
- Google Search Central: AI features and your website (accessed November 11, 2026)
- Google Search Central: Optimizing for generative AI features on Search (mythbusting) (accessed November 11, 2026)
- Google Search Central: Creating helpful, reliable, people-first content (authorship, E-E-A-T) (accessed November 11, 2026)
- Google Search Central: Latest documentation updates (FAQ 2026, breadcrumbs 2025, sitelinks search box 2024) (accessed November 11, 2026)
- Google Search Central Blog: Changes to HowTo and FAQ rich results (2023) (accessed November 11, 2026)
- Google Business Profile Help: Tips to improve your local ranking on Google (accessed November 11, 2026)
- schema.org: LocalBusiness and its subtypes (accessed November 11, 2026)