Most local businesses have never added schema. Most of their competitors have not either. That gap is closing fast as AI engines lean more heavily on structured data to decide which businesses to cite confidently and which ones to skip. This post covers what schema is, which types matter for local businesses, and copy-paste code you can hand to your developer or add yourself today.
What schema markup actually is
Schema markup is structured data added to your website's HTML that tells search engines and AI engines specific facts about your business in a standardized format. Instead of an engine having to read your homepage copy and infer that you are a restaurant in Portland that serves Italian food and closes at 10pm, schema states those facts explicitly in a format every major engine reads the same way.
The format most widely used today is JSON-LD, a block of code placed in the head or body of your page. At its most basic, it looks like this:
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Your Business Name",
"address": {
"@type": "PostalAddress",
"streetAddress": "123 Main Street",
"addressLocality": "Your City",
"addressRegion": "CA",
"postalCode": "90210"
}
}Search engines and AI engines read this block and extract verified facts without having to parse sentences. The more complete and accurate your schema, the more confidently an engine can describe your business when a relevant query comes in.
Why schema matters specifically for AI citation
Traditional SEO benefited from schema but did not require it. A well-written page with good backlinks could rank without a single line of structured data.
AI citation is different. When Google AI Mode, Perplexity, or ChatGPT decides whether to recommend your business, it is assembling a picture from multiple sources and looking for consistency and confidence. Schema is one of the most direct signals it can read. A business with accurate schema gives an AI engine verified, machine-readable facts it can cite without hedging. A business without schema makes the engine infer those same facts from prose, which introduces uncertainty and makes hedging more likely.
AI engines weight schema heavily for local businesses. They are built to prefer structured, verifiable signals over unstructured copy, and schema is the clearest structural signal a website can provide.
The four schema types that matter most for local businesses
1. LocalBusiness schema
This is the foundation. Every local business should have LocalBusiness schema on its homepage at minimum. It covers the core facts an AI engine needs to describe your business accurately.
Here is a complete example you can copy and adapt:
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Harbor Taco Co.",
"image": "https://yourdomain.com/images/exterior.jpg",
"url": "https://yourdomain.com",
"telephone": "+1-555-867-5309",
"priceRange": "$$",
"servesCuisine": "Mexican",
"address": {
"@type": "PostalAddress",
"streetAddress": "412 Harbor Blvd",
"addressLocality": "Santa Monica",
"addressRegion": "CA",
"postalCode": "90401",
"addressCountry": "US"
},
"geo": {
"@type": "GeoCoordinates",
"latitude": 34.0195,
"longitude": -118.4912
},
"openingHoursSpecification": [
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday"],
"opens": "11:00",
"closes": "22:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Friday","Saturday"],
"opens": "11:00",
"closes": "23:00"
},
{
"@type": "OpeningHoursSpecification",
"dayOfWeek": "Sunday",
"opens": "12:00",
"closes": "21:00"
}
],
"menu": "https://yourdomain.com/menu",
"acceptsReservations": "True",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"reviewCount": "312"
}
}The @type field is set to "Restaurant" rather than the generic "LocalBusiness." Schema.org has hundreds of specific business types. Using the most specific type that accurately describes your business gives AI engines a more precise signal. Common ones for local businesses: Restaurant, CafeOrCoffeeShop, Bakery, BarOrPub, HairSalon, BeautySalon, NailSalon, ClothingStore, BookStore, Plumber, Electrician, GeneralContractor, FitnessCenter.
The openingHoursSpecification block is where most businesses take shortcuts and lose citation confidence. List every day group separately. If your Friday and Saturday hours differ from Tuesday through Thursday, they need separate entries. An AI engine that finds a mismatch between your schema hours and your GBP hours gets uncertain about which is accurate and cites neither confidently.
2. Service schema
LocalBusiness schema tells engines what you are. Service schema tells them what you specifically offer. For businesses with multiple distinct services, this is the difference between appearing in general searches and appearing in queries for your specific offerings.
Add a Service block for each major service you provide. Here is an example for a salon:
{
"@context": "https://schema.org",
"@type": "Service",
"serviceType": "Balayage Color",
"provider": {
"@type": "HairSalon",
"name": "Studio Mara",
"url": "https://studiomara.com"
},
"areaServed": {
"@type": "City",
"name": "Los Angeles"
},
"description": "Hand-painted balayage color technique for a natural, sun-kissed finish. Includes consultation, color application, toning, and blowout.",
"offers": {
"@type": "Offer",
"priceRange": "$150-$300"
}
}Repeat this block for each service. For a home services business: plumbing repairs, water heater installation, drain cleaning, emergency service. For a fitness studio: yoga classes, personal training, nutrition coaching, corporate wellness. The schema can live on your services overview page or your homepage if that is where you describe your offerings.
3. FAQPage schema
FAQPage schema is one of the most consistently surfaced schema types by AI engines, particularly Perplexity and Google AI Mode. When a customer asks a conversational question that matches an FAQ on your site, the answer gets pulled and cited directly.
Here is an example for a restaurant:
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Does Harbor Taco Co. take reservations?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we accept reservations for parties of 6 or more through our website or by calling us directly. Walk-ins are welcome for smaller parties and we maintain a waitlist during peak hours."
}
},
{
"@type": "Question",
"name": "Is there parking at Harbor Taco Co.?",
"acceptedAnswer": {
"@type": "Answer",
"text": "We have a small lot behind the building with 12 spaces. Street parking on Harbor Blvd is metered until 8pm. A public garage on 4th Street is two blocks away with all-day rates."
}
},
{
"@type": "Question",
"name": "Does Harbor Taco Co. offer catering?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes, we cater events of 20 to 200 guests. We offer full-service catering with staff or drop-off packages. Email us at catering@harbortaco.com for a quote."
}
},
{
"@type": "Question",
"name": "Are there vegetarian and vegan options?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. About a third of our menu is vegetarian or vegan by default, and most dishes can be modified. We use separate prep areas for dishes with animal proteins on request."
}
}
]
}Write the questions the way customers actually ask them, not the way you would phrase them internally. "Do you have gluten-free options" beats "What are your dietary accommodations." Pull questions from what customers ask your front desk, your inbox, and your GBP Q&A section. Those are the exact queries that will match.
4. Review schema
If you display reviews on your website, marking them up with schema gives AI engines a structured signal of your reputation that they can cite without having to scrape Yelp or Google.
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"name": "Harbor Taco Co.",
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": "4.6",
"bestRating": "5",
"worstRating": "1",
"reviewCount": "312"
},
"review": [
{
"@type": "Review",
"author": {
"@type": "Person",
"name": "Maria G."
},
"reviewRating": {
"@type": "Rating",
"ratingValue": "5"
},
"reviewBody": "Best street tacos in Santa Monica. The al pastor is perfect and the horchata is made fresh daily. We come every Friday."
}
]
}Keep the review data current. An aggregateRating that says 312 reviews when your Google profile shows 480 creates a discrepancy AI engines may flag. Update this field every time you do a quarterly GBP audit.
How to add schema to your website
The code blocks above go inside a <script type="application/ld+json"> tag. Place it in the <head> section of the relevant page or just before the closing </body> tag. Either position works; head placement is slightly preferred.
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Restaurant",
"name": "Harbor Taco Co.",
...
}
</script>If you are on WordPress, plugins like Yoast SEO, Rank Math, and Schema Pro handle this without touching code. If you are on Squarespace, Wix, or Webflow, check your platform's schema or SEO settings, as many now offer structured data fields natively. If you have a developer, hand them the copy-paste blocks above and ask them to implement and verify.
After adding schema, test it immediately using Google's Rich Results Test at search.google.com/test/rich-results. Fix any errors before moving on. An error in your schema is worse than no schema because it can create conflicting signals.
Common mistakes to avoid
Using the wrong business type
"LocalBusiness" is the fallback, not the preference. Use the most specific type that accurately describes you. A coffee shop that uses "FoodEstablishment" instead of "CafeOrCoffeeShop" is leaving precision on the table.
Inconsistent data between schema and GBP
If your schema says you open at 10am and your GBP says 9am, AI engines see a conflict and reduce confidence in both. Schema data should match GBP data exactly.
Setting it once and forgetting it
Hours change, services change, staff changes. Schema that no longer reflects reality creates the same problems as an outdated GBP. Add a schema review to your quarterly marketing checklist.
Adding schema to every page with the same block
If you have service-specific pages, each should have schema specific to that page. A plumbing company's water heater repair page should have Service schema for water heater repair, not a generic LocalBusiness block copied from the homepage.
Marking up content that is not visible on the page
Schema must reflect content that actually exists on the page. Do not add an FAQ schema block for questions that are not answered somewhere on that page. Google penalizes schema that does not match visible page content.
Where to start if you have nothing yet
If your site has zero schema today, the order of operations is:
- 01
Add LocalBusiness schema to your homepage first. Use the specific business type, fill in all the fields above, match your hours exactly to your GBP. Verify with Rich Results Test.
- 02
Add FAQPage schema to your homepage or your most-visited page. Pull your five most common customer questions and answer them specifically. Verify.
- 03
Add Service schema for your top three services. These can live on your services overview page or individual service pages if you have them. Verify each one.
- 04
Add review schema if you display reviews on your site. Update the aggregate count quarterly.
That sequence covers the highest-impact schema for AI citation in the least amount of implementation time. Once those are in place, layer in additional Service blocks and expand your FAQ content over time.
Frequently asked questions
Does schema markup directly improve my Google search ranking?
Schema markup is not a direct ranking factor in the traditional sense, but it is a strong indirect one. It helps Google and other search engines understand exactly what your business is and what it offers, which makes them more likely to surface it for relevant queries. For AI-powered features like Google AI Mode, schema is even more valuable because these systems prefer structured, verifiable data over inferred information from prose copy.
How do I know if my schema markup is working?
Test it immediately after adding it. Go to search.google.com/test/rich-results, paste your page URL, and check the results. Google's Rich Results Test shows which schema types were detected, what data was read, and whether there are any errors or warnings. If the test shows errors, fix them before the page is indexed. An error in schema is worse than no schema because it can create conflicting signals that reduce rather than improve AI citation confidence.
Do I need a developer to add schema markup to my website?
Not necessarily. If you are on WordPress, plugins like Yoast SEO, Rank Math, or Schema Pro let you fill in structured data fields through a dashboard interface without touching code. Squarespace, Wix, and Webflow have native schema or SEO settings that handle some of it automatically. If you have a custom site or want more control, hand the JSON-LD code blocks to your developer with instructions to place them in a script tag in the page head. The technical lift is minimal once the code exists.
How long does it take for schema markup to improve AI citation results?
Google AI Mode and Perplexity typically reflect schema changes within one to three weeks once they have re-crawled your pages. ChatGPT draws more heavily on training data and can take longer, sometimes six to twelve weeks, to incorporate new structured data. The practical pattern: add your schema, verify it with Rich Results Test, and check your AI citation results four to six weeks later. Consistent schema combined with accurate Google Business Profile data accelerates the process.
What happens if my schema data contradicts information visible on my page?
Google penalizes it. Schema is required to reflect content that actually exists on the page. If your FAQPage schema lists questions and answers that do not appear somewhere on the page, or if your LocalBusiness hours in schema differ from the hours listed in your page copy, you risk a manual action that can suppress your rich results. Keep schema and page content in sync. Any time you update your hours, services, or other business information on the page, update the schema to match.
Fix it automatically
Seen checks your schema implementation as part of every weekly audit
Missing schema, conflicting hours, outdated review counts. Seen flags them before they cost you citations.
Start your free audit