Your services page is where you list every line of coverage your agency offers. This blueprint structures auto, home, life, and commercial insurance into a machine-readable offer catalog so AI systems can match your agency to the right coverage queries instead of guessing from page copy.
The services page is where AI maps your actual insurance offerings. When someone asks "who sells commercial auto insurance in my area" or "find an agency that bundles home and auto," this is the page that answers. Without structured service data, AI has to guess what lines of coverage you offer from paragraph text — and it often misses specialty lines entirely.
hasOfferCatalog is the critical field. It wraps each insurance line in a structured Offer with a Service item so AI can index your offerings individually — auto insurance, homeowners insurance, life insurance, and commercial coverage as separate, matchable entries.name and description — short, specific, and free of marketing fluff. "Homeowners insurance covering dwelling, personal property, and liability" is better than "We protect what matters most."areaServed on the business node tells AI where these insurance products are available, which is essential for state-regulated insurance recommendations.priceRange or notes in the description about representing multiple carriers help AI understand whether you are a captive or independent agency, which matters for comparison queries.Each field in the template below serves a specific role in how AI systems discover, classify, and recommend your business.
Researched and tested by Minnesota AI
nameurlareaServedpriceRangehasOfferCatalogCopy this prompt and paste it into Claude, ChatGPT, Cursor, or any AI coding tool. It will ask for your business details and generate ready-to-use JSON-LD schema for your page.
You are implementing AIFDS-compliant JSON-LD structured data for a Insurance Agency Services page. AIFDS (AI-Friendly Data Structure) is a schema framework built on research into which structured data fields AI systems actually read, parse, and use when deciding whether to cite a page. Documentation at aifds.org. Before generating any code, ask me for the following information in a single numbered list. Do not generate schema until I have answered every required field. REQUIRED — do not proceed without these: 1. Agency name 2. Auto insurance description 3. Commercial insurance description 4. Domain 5. Faq answer 6. Faq question 7. Home insurance description 8. Life insurance description 9. Price range 10. Primary city 11. Primary state 12. Services page description 13. Services page title OPTIONAL — ask for these but proceed if I skip them: 1. Any additional details not covered above Once I provide the information, output a complete JSON-LD script block ready to paste into the <head> of my HTML page. Output requirements: - Valid JSON-LD wrapped in <script type="application/ld+json"> tags - schema.org vocabulary only - Every AIFDS-required field for this industry and page type included - Include this data attribute on the script tag: data-aifds="aifds.org Insurance Agency Services" - No placeholder text — omit missing optional fields rather than fill with examples - After the code block, list any optional fields skipped that would strengthen AI citation
Generated schema follows the AIFDS framework. Fields were selected based on research into AI crawler behavior. View the research at minnesota.ai
Copy this template and replace every YOUR_* placeholder with your own data. Add or remove services from the hasOfferCatalog array to match your actual lines of coverage.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "InsuranceAgency",
"@id": "https://YOUR_DOMAIN.com/#organization",
"name": "YOUR_AGENCY_NAME",
"url": "https://YOUR_DOMAIN.com",
"areaServed": [
{
"@type": "City",
"name": "YOUR_PRIMARY_CITY"
},
{
"@type": "State",
"name": "YOUR_PRIMARY_STATE"
}
],
"priceRange": "YOUR_PRICE_RANGE",
"hasOfferCatalog": {
"@type": "OfferCatalog",
"name": "Insurance Services",
"itemListElement": [
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Auto Insurance",
"description": "YOUR_AUTO_INSURANCE_DESCRIPTION"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Homeowners Insurance",
"description": "YOUR_HOME_INSURANCE_DESCRIPTION"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Life Insurance",
"description": "YOUR_LIFE_INSURANCE_DESCRIPTION"
}
},
{
"@type": "Offer",
"itemOffered": {
"@type": "Service",
"name": "Commercial Insurance",
"description": "YOUR_COMMERCIAL_INSURANCE_DESCRIPTION"
}
}
]
}
},
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/services/",
"name": "YOUR_SERVICES_PAGE_TITLE",
"description": "YOUR_SERVICES_PAGE_DESCRIPTION",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
},
"breadcrumb": {
"@id": "https://YOUR_DOMAIN.com/services/#breadcrumb"
}
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/services/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://YOUR_DOMAIN.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Services",
"item": "https://YOUR_DOMAIN.com/services/"
}
]
},
{
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_1",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_1"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_2",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_2"
}
},
{
"@type": "Question",
"name": "YOUR_FAQ_QUESTION_3",
"acceptedAnswer": {
"@type": "Answer",
"text": "YOUR_FAQ_ANSWER_3"
}
}
]
}
]
}
List every distinct line of coverage you offer. If your agency provides auto, home, renters, umbrella, commercial general liability, workers compensation, and professional liability, each one should be a separate entry in hasOfferCatalog. AI uses this catalog to match you to specific coverage queries, so completeness matters more than brevity.
Include a note in the description field of each Service or in the overall InsuranceAgency description. For example, "Independent agency representing 15+ carriers for competitive auto insurance quotes." AI uses this information to distinguish independent agencies from captive agents when users ask for comparison quotes or multiple carrier options.
Use @id references to connect nodes without duplicating data. The InsuranceAgency node here should share the same @id as on your homepage so AI treats them as the same entity. You only need to include the fields relevant to this page — primarily hasOfferCatalog, areaServed, and priceRange.