What Schema Actually Does For Local Rankings
Schema markup is structured data — code in your page that explicitly tells search engines what the page is about. Without schema, Google has to infer from your content. With schema, you tell Google directly: this is a local business, here's the address, here are the hours, here are the services, here's the area served.
For local pack ranking, three schema types matter most: LocalBusiness (and its subtypes), Service, and FAQPage. We'll cover each. JSON-LD is the format Google prefers — embed it in a script tag in your <head>, not inline with HTML elements.
If you want the full audit covering schema coverage across every page of your site, our website SEO audit generates and validates schema for you. For the manual approach, read on.
LocalBusiness Schema: The Foundation
LocalBusiness is the schema type for any physical local business. There are dozens of subtypes — Restaurant, MedicalBusiness, FinancialService, LegalService — and you should always use the most specific subtype available.
Minimum fields: @type, name, address (a PostalAddress object), telephone, url, openingHoursSpecification, and areaServed.
For service-area businesses (no public location): use @type: 'ProfessionalService' with areaServed set to your service areas and either no address or a corporate office address with address hidden.
Example for a mortgage broker:
{
"@context": "https://schema.org",
"@type": "FinancialService",
"name": "Smith Mortgage Brokers",
"telephone": "+61 3 9123 4567",
"url": "https://example.com.au",
"areaServed": ["Carlton", "Fitzroy", "Brunswick"],
"address": {
"@type": "PostalAddress",
"streetAddress": "Level 2, 100 Lygon St",
"addressLocality": "Carlton",
"addressRegion": "VIC",
"postalCode": "3053",
"addressCountry": "AU"
},
"openingHoursSpecification": [{
"@type": "OpeningHoursSpecification",
"dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
"opens": "09:00",
"closes": "17:30"
}]
}Put this in a <script type="application/ld+json"> tag in your <head>. Validate at Google's Rich Results Test.
Service Schema: One Per Service
Each major service you offer should have its own page and its own Service schema block. This tells Google: this page is about a specific service offered in a specific area by a specific provider.
Minimum fields: @type: 'Service', name, provider (referencing your LocalBusiness), areaServed, serviceType, and description.
{
"@context": "https://schema.org",
"@type": "Service",
"name": "First Home Buyer Mortgage Brokerage",
"provider": { "@type": "FinancialService", "name": "Smith Mortgage Brokers" },
"serviceType": "Mortgage broking for first-home buyers",
"areaServed": ["Carlton", "Fitzroy", "Brunswick"],
"description": "Specialist mortgage broking for first-home buyers in inner-north Melbourne. FHBG-accredited, same-day pre-approvals on most scenarios.",
"offers": {
"@type": "Offer",
"priceSpecification": { "@type": "PriceSpecification", "price": "0", "priceCurrency": "AUD" }
}
}Place this on the dedicated service page. One Service schema block per service.
FAQPage Schema: The Highest-ROI Add
FAQPage schema is the easiest "rich result" win available. Pages with valid FAQPage schema can appear with expandable Q&A boxes directly in search results — taking up significantly more screen real estate and intercepting clicks before they reach competitors.
Use FAQPage schema on: location pages, service pages, pricing pages, and key blog posts. Each FAQ should be a real question with a substantive answer (50-150 words). Don't game it with one-word answers or stuff with keywords.
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [{
"@type": "Question",
"name": "How long does Carlton property settlement take?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Typical Carlton settlements run 4-6 weeks from contract exchange. The faster end happens when finance and conveyancing are pre-arranged before offers are made."
}
}]
}For the broader content strategy around FAQs and citability, see our AI Overview citations guide.
Common Mistakes That Break Schema
- Mismatched data: Address in schema differs from address on the page or in your GBP. Google sees the inconsistency and may discount both.
- Wrong subtype: Using
LocalBusinesswhenFinancialServiceorMedicalBusinessexists. Specificity = relevance. - Missing required fields:
name,address,telephoneare the floor. Without them, Google won't even index the schema. - Schema on a page with no matching content: Adding FAQPage schema for FAQs that don't actually appear in the page body is a guidelines violation.
- JSON syntax errors: Missing commas, mismatched quotes. Always validate before deploying.
- Inline schema in <body>: Google handles it, but JSON-LD in <head> is the standard and avoids edge cases.
How to Validate and Deploy
Before pushing schema to production: (1) paste your JSON into schema.org's validator for syntax check, (2) test it in Google's Rich Results Test for rich-result eligibility, and (3) check your live page in Google Search Console under "Enhancements" once deployed to confirm Google sees it correctly.
Re-validate quarterly. Schema is silent — if you break it, you won't see an error message, you'll just see rich results drop out of search. The audit catches drift automatically.
Auto-Generating Schema For Every Page
If your site has more than 10 pages, hand-writing schema for each becomes painful fast. Our website SEO audit auto-generates schema per page type — LocalBusiness on your homepage and location pages, Service on each service page, FAQPage where Q&A content exists, and BreadcrumbList everywhere. Schema is populated from your real GBP data and validated before being shown to you.
Combined with our GEO audit, you also get AI-specific schema extensions (Speakable for voice answers, ClaimReview for fact-bearing content, dateModified freshness) — increasingly important for citation in AI Overviews and ChatGPT search. For the bigger AI-search picture, read our guide to GEO.
Check your GBP health score
Two minutes, no credit card. See exactly where your Google Business Profile stands.
Run my free auditWant to automate your local SEO?
Klinically covers all four local SEO pillars — GBP posts, website SEO audit, AI search visibility (ChatGPT, Perplexity), and NAP consistency across 7 directories. Try it free for 30 days.