Your service areas page defines where you operate — cities, neighborhoods, suburbs, and regions. This blueprint structures your geographic coverage into machine-readable data so AI systems can match you to location-specific queries like "real estate agent in North Loop" or "who sells homes in the western suburbs."
Real estate is inherently local, and AI treats location as one of the strongest matching signals. When someone asks "find me a realtor in Edina" or "who sells homes in Hennepin County," AI needs structured geographic data to connect you to those queries. Without areaServed markup, your geographic expertise is buried in paragraph text that AI may never parse correctly.
areaServed on the RealEstateAgent node lists every city, neighborhood, and region you cover. Use specific Schema.org types — City for cities, State for states, and plain text names for neighborhoods.address on the RealEstateAgent node provides your physical office location, which AI uses as an anchor point for your service area and local credibility.about property on the WebPage node links to the RealEstateAgent, telling AI that this page is specifically about your geographic coverage.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
nameurltelephoneaddressareaServedCopy 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 Real Estate Agent Service Areas 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. City 3. Domain 4. Faq answer 5. Faq question 6. Neighborhood 7. Phone number 8. Primary city 9. Secondary city 10. Service areas page description 11. Service areas page title 12. State 13. Street address 14. Zip code 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 Real Estate Agent Service Areas" - 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 entries in the areaServed array to match your actual coverage area.
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "https://YOUR_DOMAIN.com/service-areas/#webpage",
"name": "YOUR_SERVICE_AREAS_PAGE_TITLE",
"description": "YOUR_SERVICE_AREAS_PAGE_DESCRIPTION",
"url": "https://YOUR_DOMAIN.com/service-areas/",
"isPartOf": {
"@id": "https://YOUR_DOMAIN.com/#website"
},
"about": {
"@id": "https://YOUR_DOMAIN.com/#organization"
},
"breadcrumb": {
"@id": "https://YOUR_DOMAIN.com/service-areas/#breadcrumb"
}
},
{
"@type": "RealEstateAgent",
"@id": "https://YOUR_DOMAIN.com/#organization",
"name": "YOUR_AGENCY_NAME",
"url": "https://YOUR_DOMAIN.com",
"telephone": "YOUR_PHONE_NUMBER",
"address": {
"@type": "PostalAddress",
"streetAddress": "YOUR_STREET_ADDRESS",
"addressLocality": "YOUR_CITY",
"addressRegion": "YOUR_STATE",
"postalCode": "YOUR_ZIP_CODE",
"addressCountry": "US"
},
"areaServed": [
{
"@type": "City",
"name": "YOUR_PRIMARY_CITY"
},
{
"@type": "City",
"name": "YOUR_SECONDARY_CITY_1"
},
{
"@type": "City",
"name": "YOUR_SECONDARY_CITY_2"
},
{
"@type": "Place",
"name": "YOUR_NEIGHBORHOOD_1"
},
{
"@type": "Place",
"name": "YOUR_NEIGHBORHOOD_2"
},
{
"@type": "Place",
"name": "YOUR_NEIGHBORHOOD_3"
},
{
"@type": "State",
"name": "YOUR_STATE"
}
]
},
{
"@type": "BreadcrumbList",
"@id": "https://YOUR_DOMAIN.com/service-areas/#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "https://YOUR_DOMAIN.com/"
},
{
"@type": "ListItem",
"position": 2,
"name": "Service Areas",
"item": "https://YOUR_DOMAIN.com/service-areas/"
}
]
},
{
"@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 both. Cities give AI broad geographic matching, but neighborhoods capture the hyperlocal queries that matter most in real estate. Someone asking for "a realtor in Linden Hills" expects a different result than "a realtor in Minneapolis." Include every neighborhood where you have meaningful experience or want to be recommended.
There is no practical limit. Include every city, suburb, neighborhood, and region you actively serve. However, only list areas where you genuinely operate — padding your list with locations you do not actually cover will hurt credibility if clients contact you about areas outside your real expertise. AI is better served by accurate data.
Use City for cities and State for states. For neighborhoods, use Place with a descriptive name since Schema.org does not have a dedicated neighborhood type. You can make the name more specific by including the city — for example, "North Loop, Minneapolis" rather than just "North Loop" — to avoid ambiguity across different metro areas.