Finance / Insurance Stack
Finance or insurance service pages with local presence, service details, reviews, FAQs, and breadcrumb context.
When to use this stack
- Insurance or financial service location pages needing NAP, service offer, and trust signals
- Quote or coverage pages where FAQs reduce friction on eligibility and pricing
- Local branches that benefit from clear navigation and review proof
What is included
Anchors NAP, hours, and contact for the branch/office.
Describes the financial/insurance service offered, provider, and coverage area.
Adds social proof tied to the office/service.
Clarifies eligibility, coverage, claims, and pricing FAQs.
Provides navigation context within the site or city pages.
Properties across the bundle
Nested properties keep their parent path, such as offers.priceCurrency. Only publish values that match visible page content.
Required properties
- address.addressCountry
- address.addressLocality
- address.addressRegion
- address.postalCode
- address.streetAddress
- areaServed.name
- author.name
- itemListElement[].name
- itemReviewed.@id
- mainEntity[].@type=Question
- mainEntity[].acceptedAnswer.text
- name
- offers.price
- offers.priceCurrency
- provider.@id
- reviewBody
- reviewRating.ratingValue
- telephone
- url
Recommended properties
- aggregateRating.ratingValue
- aggregateRating.reviewCount
- datePublished
- description
- itemListElement[].item
- logo
- mainEntity[].acceptedAnswer.text
- mainEntity[].author.name
- mainEntity[].name
- name
- offers.availability
- offers.url
- openingHours
- priceRange
- reviewRating.bestRating
- sameAs[]
- serviceType
Combined JSON-LD
Paste this as one script tag, then replace every example value with data from the live page.
[
{
"@context": "https://schema.org",
"@type": "LocalBusiness",
"@id": "https://www.example.com/insurance/portland-downtown#office",
"name": "Cascade Insurance — Downtown",
"url": "https://www.example.com/insurance/portland-downtown",
"image": [
"https://www.example.com/images/cascade-downtown.webp"
],
"telephone": "+1-503-555-0199",
"address": {
"@type": "PostalAddress",
"streetAddress": "150 Main St",
"addressLocality": "Portland",
"addressRegion": "OR",
"postalCode": "97204",
"addressCountry": "US"
},
"openingHours": "Mo-Fr 09:00-18:00",
"priceRange": "$$",
"sameAs": [
"https://www.facebook.com/cascadeinsurance",
"https://www.linkedin.com/company/cascadeinsurance"
],
"aggregateRating": {
"@type": "AggregateRating",
"ratingValue": 4.7,
"reviewCount": 142
}
},
{
"@context": "https://schema.org",
"@type": "Service",
"@id": "https://www.example.com/insurance/portland-downtown#homeowners",
"name": "Homeowners insurance policies",
"description": "Coverage for homes and condos with flexible deductibles, liability, and bundled auto discounts.",
"serviceType": "Insurance",
"provider": { "@id": "https://www.example.com/insurance/portland-downtown#office" },
"areaServed": { "@type": "AdministrativeArea", "name": "Oregon" },
"offers": {
"@type": "Offer",
"price": "85.00",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://www.example.com/insurance/portland-downtown#quote"
}
},
{
"@context": "https://schema.org",
"@type": "Review",
"@id": "https://www.example.com/reviews/cascade-1#review",
"name": "Helpful with a fast quote",
"reviewBody": "Got a homeowners quote in minutes and they explained coverage clearly. Smooth onboarding.",
"datePublished": "2026-02-24",
"reviewRating": {
"@type": "Rating",
"ratingValue": 5,
"bestRating": 5
},
"author": { "@type": "Person", "name": "Alex J." },
"itemReviewed": { "@id": "https://www.example.com/insurance/portland-downtown#office" }
},
{
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Do you offer bundled discounts?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Bundle home and auto for up to 20% off. Ask your agent for current promotions."
}
},
{
"@type": "Question",
"name": "How fast can I get proof of insurance?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Most policies issue digital proof within minutes once payment is completed."
}
},
{
"@type": "Question",
"name": "Are claims handled locally?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Claims are filed online or by phone. A local adjuster is assigned for in-person assessments when required."
}
}
]
},
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://www.example.com" },
{ "@type": "ListItem", "position": 2, "name": "Insurance", "item": "https://www.example.com/insurance" },
{ "@type": "ListItem", "position": 3, "name": "Portland Downtown", "item": "https://www.example.com/insurance/portland-downtown" }
]
}
]Implement and verify
- 01
Start with the live page
Confirm titles, prices, availability, policies, and visible FAQ content before generating markup.
- 02
Add one JSON-LD script
Use the combined example as a template in the document head or before the closing body tag.
- 03
Complete regional details
Fill shipping destinations and timing for every region the page actually serves.
- 04
Link the return policy
Use a stable MerchantReturnPolicy URL and keep its terms synchronized with the page.
- 05
Match visible answers
Add only FAQs that users can read on the same page, with identical answers.
- 06
Validate after changes
Run Rich Results Test after implementation and whenever price, availability, or policy data changes.
Common errors and fixes
- Missing currency or availability
Use ISO currency codes and complete schema.org availability URLs in Offer data.
- Incomplete shipping details
Include shippingDestination.addressCountry and deliveryTime.transitTime with units.
- Return policy is not connected
Reference MerchantReturnPolicy from the Offer and provide a stable public policy URL.
- FAQ answers differ from the page
Keep structured FAQ answers identical to visible answers.
Stack FAQs
Should I use LocalBusiness or Organization?
Use LocalBusiness for branch/location pages. If you have a single national brand page, Organization is fine; keep provider pointing to the entity on the page.
How should I handle multiple services?
Create one Service object per featured product (e.g., auto, home). Ensure each service provider points to the LocalBusiness and is visible on the page.