Key takeaways
- Use JSON-LD: Google also supports microdata and RDFa, but recommends JSON-LD because it is the easiest to add and maintain.
- Organization, LocalBusiness, Service, Product, Article, Person and BreadcrumbList cover what most US businesses need.
- Google limited FAQ rich results to authoritative government and health sites in August 2023 and retired HowTo rich results, but the markup still describes content to machines.
- Google doesn't show review stars for reviews a business collects about itself, and all markup must match what visitors can see on the page.
- Google says no special schema is needed for its AI features, yet consistent markup and sameAs links help any system work out exactly who you are.
Schema markup is one of the few SEO tasks where you tell search engines exactly what your page means instead of hoping they work it out. This guide covers what structured data is, which types matter for US businesses, what changed with FAQ and HowTo results, how markup relates to AI search, and how to test it before it goes live.
What is schema markup?
Schema markup is structured data, written in the schema.org vocabulary, that labels the facts on a page so machines can read them without guessing. It tells search engines that a piece of text is your business name, a price, an author or an opening time. Google uses it to understand pages and to generate rich results.
The vocabulary is maintained at schema.org, a project Google, Microsoft and Yahoo launched in 2011, with Yandex joining soon after. It defines types, such as Dentist or Product, and properties, such as telephone or priceRange.
Take an Austin dental practice whose page says "Open Monday to Thursday, 8 to 5." A person reads that instantly. A machine has to infer it. Markup turns it into an explicit openingHoursSpecification that Google, Bing and other systems can parse the same way every time. Google's introduction to structured data covers the general mechanics.
JSON-LD or microdata: which format should you use?
Use JSON-LD. Google supports JSON-LD, microdata and RDFa, but recommends JSON-LD because it sits in a single script block separate from your visible HTML, which makes it easier to add, update and audit. Microdata weaves attributes into the page's HTML elements and tends to break when designers change templates.
| Format | How it works | When to use it |
|---|---|---|
| JSON-LD | A separate script block of JSON, usually in the page head | Almost always; Google's recommended format |
| Microdata | itemscope and itemprop attributes on visible HTML elements | Legacy themes or platforms that already output it correctly |
| RDFa | Attributes on HTML elements, from the linked-data world | Rarely needed on business websites |
JSON-LD can also be injected with JavaScript, for example through a tag manager, and Google can read it after rendering. Server-rendered JSON-LD is still the safer choice, because not every crawler executes JavaScript.
Which schema types matter for a US business?
For most businesses: Organization on the homepage, LocalBusiness or the right subtype for each location, Service for service pages, Product for things you sell, Article and Person for content and authors, and BreadcrumbList for site structure. Only some of these produce rich results in Google, but all of them describe your business more precisely.
| Type | Where it goes | Visible result in Google? |
|---|---|---|
| Organization | Homepage or about page | No rich result; can inform logo and business details |
| LocalBusiness and subtypes | Each location page | Can inform business details; no stars for self-hosted reviews |
| Service | Service pages | None; describes what you offer |
| Product with Offer | Product pages | Yes: product snippets and merchant listings |
| Review and AggregateRating | Nested inside a Product or similar type | Yes, with strict eligibility rules |
| FAQPage | Genuine FAQ content | Only for authoritative government and health sites since 2023 |
| HowTo | Step-by-step instructions | No; the rich result was retired in 2023 |
| BreadcrumbList | Every page below the homepage | Yes, as a breadcrumb trail in desktop results |
| Article | Blog posts and guides | Yes: article features, with author details |
| Person | Author and team bio pages | No rich result; supports author identity |
Organization and LocalBusiness
Use the most specific LocalBusiness subtype that fits: HVACBusiness for a Dallas heating and cooling contractor, Dentist for an Austin practice, LegalService for a Chicago law firm. Schema.org now marks the older Attorney type as deprecated in favor of LegalService. Here is a trimmed example for a dental practice, with placeholder details:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Dentist",
"@id": "https://www.example.com/austin/#dentist",
"name": "Example Family Dental",
"url": "https://www.example.com/austin/",
"telephone": "+1-512-555-0100",
"address": {
"@type": "PostalAddress",
"streetAddress": "100 Example St, Suite 200",
"addressLocality": "Austin",
"addressRegion": "TX",
"postalCode": "78701",
"addressCountry": "US"
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday", "Tuesday", "Wednesday", "Thursday"],
"opens": "08:00",
"closes": "17:00"
}],
"parentOrganization": { "@id": "https://www.example.com/#organization" },
"sameAs": [
"https://www.facebook.com/examplefamilydental",
"https://www.yelp.com/biz/example-family-dental-austin"
]
}
</script>
Every value in the markup should match the visible page and your Google Business Profile. Google's local business documentation lists the properties it reads.
Service and Product
Google doesn't show a rich result for Service, but it is still the clearest way to state what a service is, who provides it and where. The Chicago firm can mark up its truck accident page with serviceType, areaServed and a provider pointing to the firm. If you sell physical or digital products, Product with an Offer for price and availability is one of the most valuable types Google supports.
Review and AggregateRating rules
Google's review snippet guidelines make LocalBusiness and Organization pages ineligible for star ratings when the business controls the reviews about itself, a rule Google introduced in 2019. Reviews you mark up must be visible on the page, and you shouldn't aggregate ratings collected on other sites. Testimonials on your own site are fine to display; just don't expect stars from them.
Article, Person and BreadcrumbList
For guides and blog posts, Article markup with an author that links to a real Person bio page connects content to a named expert. That matters most in health, legal and financial topics. BreadcrumbList describes your site hierarchy and is quick to add at the template level.
What happened to FAQ and HowTo rich results?
In August 2023, Google limited FAQ rich results to well-known, authoritative government and health websites and began removing HowTo rich results, which it later dropped entirely. FAQPage markup is still valid schema.org, and keeping it on genuine FAQ content can help machines parse questions and answers, but most businesses should not expect visual FAQ results.
Google explained the change in its August 2023 announcement. For an HVAC company or a dental practice, that means FAQ markup no longer produces expandable questions under your listing. It doesn't mean you should delete it. The markup is harmless when it matches visible content, and it labels question-and-answer pairs clearly for any system reading the page.
How does schema help AI answer engines?
Schema helps AI systems the same way it helps search engines: it states facts explicitly instead of leaving them to be inferred. Google says no special schema is required for its AI features but recommends structured data as part of good SEO. For other answer engines, consistent markup reduces ambiguity about who you are, what you offer and where.
Google's guide to optimizing for generative AI features says there is no special schema.org markup you need to add for AI Overviews or AI Mode. Treat any vendor selling "AI schema" with suspicion.
AI answer engines generally retrieve pages, extract facts and summarize them. If a Dallas HVAC company's homepage, location pages and listings disagree about whether it services Fort Worth, an assistant may repeat either version. Clear, consistent facts, in both visible text and markup, give retrieval systems less to misread.
No AI provider has published how much weight it gives JSON-LD, and some crawlers may only read the visible text. So the visible page has to state the same facts the markup does. Where markup earns its keep is consistency: when your Organization data, location pages, Google Business Profile and third-party profiles all agree, AI systems are less likely to mix you up with a similarly named firm or state the wrong service area. Our guide to ranking in Google AI Overviews covers the content side, and our AEO agency team handles it end to end.
What is sameAs and why does entity linking matter?
The sameAs property lists other URLs that represent the same entity, such as your LinkedIn page, Wikidata entry, Crunchbase profile, BBB listing or social accounts. It connects your website to profiles search engines and AI systems already know, helping them confirm that every mention refers to the same business or person.
Entity linking works inside your own site too. Give your Organization a stable @id, then reference it from every location page, article and author. A Chicago law firm's attorney bio can use Person with jobTitle, worksFor pointing to the firm's @id, and sameAs links to the attorney's state bar or professional directory profile.
- Link only profiles that are genuinely about you and that you maintain.
- Use the same business name across every linked profile.
- Remove links to dead or abandoned accounts.
- Don't add competitors' or unrelated pages to inflate the list.
Which pages should get schema first?
Start with the pages that define who you are and what you sell: the homepage with Organization markup, then location pages with LocalBusiness, then product or service pages, then articles with author markup. Add BreadcrumbList across templates along the way. This order puts the facts that most often get confused in front of machines first.
The right sequence depends on the business model. Here is how we would approach our three example businesses.
- Dallas HVAC company: Organization on the homepage,
HVACBusinesson each branch or service-area page,Serviceon AC repair, furnace repair and installation pages, andOfferdetails on maintenance-plan pages where prices are published. - Austin dental practice:
Dentiston the location page with hours and accepted insurance noted in visible text,Personmarkup for each dentist's bio with credentials, andServiceon treatment pages like implants and clear aligners. - Chicago law firm:
LegalServicefor each office,Personfor every attorney with bar admissions in the visible bio,Servicefor practice-area pages, andArticlewith named authors on legal guides.
Whatever the order, build markup into templates rather than pasting it into individual pages. A template-level fix covers every current and future page of that type, and it stays correct when content editors change the page copy. Keep a short record of which templates output which types, so the next developer or plugin update doesn't silently create duplicates.
How do you test schema markup?
Run every template through Google's Rich Results Test to see which rich results a page is eligible for and any errors, then through the Schema Markup Validator to check general schema.org validity. After launch, watch the enhancement reports in Search Console, which show errors and warnings across all pages using each supported type.
- Generate the markup. Start from a template or a generator rather than hand-typing JSON.
- Check the syntax. A missing comma or quote breaks the whole block, so paste it into a JSON formatter first.
- Run the Rich Results Test. Test the live URL so you see the rendered page Google sees, not just your source code.
- Run the Schema Markup Validator. It checks types Google doesn't produce rich results for, such as Service.
- Compare against the visible page. Every marked-up fact should appear on the page itself.
- Deploy at the template level. Fix markup once in the template rather than page by page.
- Monitor Search Console. Review enhancement reports after launch and again after any redesign or CMS change.
If a block fails validation, our JSON formatter pinpoints syntax errors before you retest.
What are the most common schema mistakes?
The most common mistakes are marking up content visitors can't see, adding review stars to your own business, using the wrong or overly generic type, duplicate entities from plugins and themes, and stale details like old hours or prices. Each one either gets the markup ignored or, in serious cases, triggers a manual action.
- Markup matches visible content, per Google's structured data policies.
- No self-serving AggregateRating on Organization or LocalBusiness pages.
- The most specific type is used, such as
Dentistrather than plainLocalBusiness. - Only one Organization entity, referenced by
@idelsewhere. - Hours, prices and phone numbers update when the business changes them.
- Plugin and theme markup checked for duplicates after every update.
- Markup present in the rendered HTML, not lost to a JavaScript error.
Serious or deliberate problems, such as fake reviews in markup, can lead to a structured data manual action in Search Console. That typically removes rich result eligibility for the affected pages until you fix the issue and request a review. Most mistakes are quieter: Google simply ignores markup it can't trust, and you never get a warning.
Schema is quick to add and easy to get subtly wrong at scale. For location markup, see our local SEO guide and local SEO service. For structured data built into a broader technical program, see our SEO services and the technical SEO checklist.