Schema markup is the layer of structured data that tells search engines — and the AI systems increasingly answering local queries — exactly what your business is, where it operates, and what it does. For a service-area business in Durango serving Cortez, Farmington, Pagosa Springs, and Bayfield, it is the most direct and most technically precise way to communicate your coverage area. Most local businesses never implement it, which is why implementing it correctly is a meaningful differentiator. This guide covers what to add, how to add it, where to put it, and how to confirm it is working.
This is the technical companion to our Four Corners regional marketing guide and our article on building location pages that rank. Together they cover the strategy, the content, and the technical signals that make regional SEO work. Our local SEO service handles schema implementation as part of standard site optimization.
Quick Answer: How to Set Up Service Area Schema
- 1. Choose the right LocalBusiness subtype for your business (Plumber, MedicalBusiness, LegalService, etc.) from schema.org.
- 2. Write a JSON-LD script block with your business name, address, phone, and URL.
- 3. Add areaServed entries for each town you serve — use City type for named cities and GeoCircle for radius-based coverage.
- 4. For GeoCircle, use your address as the midpoint and set the radius in meters (not miles).
- 5. Place the JSON-LD in the head section of every page, or at minimum your homepage and location pages.
- 6. Validate with Google's Rich Results Test and the Schema.org validator.
- 7. Add FAQPage schema to any FAQ sections and BreadcrumbList to support your site structure.
What Schema Markup Is, in Plain Language
Search engines read text — but text is ambiguous. A sentence that says "We serve Farmington" could refer to Farmington, New Mexico; Farmington Hills, Michigan; or a dozen other Farmington-named places. The word "we" could be a sole proprietor or a national chain. "Serve" could mean deliver food, provide services, or operate a franchise.
Schema markup is the vocabulary that removes that ambiguity. It is code added to your webpage that says, in a language search engines understand directly: this is a LocalBusiness, its type is Plumber, its address is at this location in Durango, Colorado (with latitude and longitude), it serves these specific cities, its phone number is this, and its hours are these. No interpretation required.
The format Google prefers — and the format this guide uses — is JSON-LD (JavaScript Object Notation for Linked Data). It lives in a script tag on your page and does not change how the page looks or behaves. It is purely for machine consumption.
Why Service-Area Businesses Specifically Need This
A business with a walk-in storefront has physical address signals — Google can find you on a map, confirm the address through Street View, and correlate your location with the searches coming from nearby. A service-area business that works at customer locations — a plumber, a landscaper, a marketing agency, a mobile vet — does not have those physical confirmation signals in the same way.
Schema markup compensates for this. The areaServed property in your LocalBusiness schema is a direct, machine-readable declaration of your coverage. It tells Google and AI systems: this business operates throughout this geographic footprint, not just within walking distance of its registered address. Without it, a Durango-based contractor who works across five counties may only appear in searches near their street address.
The growing importance of AI answer engines makes this more valuable, not less. When a visitor asks an AI assistant "who does kitchen remodeling in Pagosa Springs," the system reads structured data first. A business with clear, correct areaServed markup covering Pagosa Springs has a direct path into that answer. A business without it relies on the AI inferring coverage from scattered text mentions — a much weaker signal.
The LocalBusiness JSON-LD Setup
Here is the structure of a complete LocalBusiness schema block for a Durango service-area business. The example shows a marketing agency, but the pattern works for any local business type — swap the @type for the most specific applicable type from schema.org.
A basic JSON-LD block looks like this (as a <script type="application/ld+json"> tag in your page head):
@context: "https://schema.org"
@type: "LocalBusiness"
name: "Animas Marketing"
description: "Digital marketing agency serving Durango, CO and the Four Corners region since 2016."
url: "https://animasmarketing.com"
telephone: "+1-970-903-5310"
address:
@type: PostalAddress
streetAddress: [your street address]
addressLocality: "Durango"
addressRegion: "CO"
postalCode: "81301"
addressCountry: "US"
geo:
@type: GeoCoordinates
latitude: 37.279
longitude: -107.88
Adding areaServed: Cities and GeoCircle
The areaServed property is where service-area businesses do the real work. You can declare coverage two ways: by naming specific cities, or by defining a radius-based geographic circle. For most Four Corners businesses, a combination of both works best — named cities for the specific markets you actively serve, and a GeoCircle for the overall coverage radius.
Named city entries
To declare service areas using named cities, add an areaServed array with City entries:
areaServed: [
{ "@type": "City", "name": "Durango", "sameAs": "https://www.wikidata.org/wiki/Q672513" },
{ "@type": "City", "name": "Farmington" },
{ "@type": "City", "name": "Cortez" },
{ "@type": "City", "name": "Pagosa Springs" },
{ "@type": "City", "name": "Bayfield" }
]
Adding a sameAs link to Wikidata or Wikipedia is optional but helps search engines disambiguate cities with common names like Farmington.
GeoCircle for radius-based coverage
A GeoCircle defines your service area as a circle around a central point, with a radius measured in meters. For a Durango-based business with a roughly 75-mile service radius, the entry looks like this:
areaServed: {
"@type": "GeoCircle",
"geoMidpoint": {
"@type": "GeoCoordinates",
"latitude": 37.279,
"longitude": -107.88
},
"geoRadius": "120000"
}
The geoMidpoint latitude 37.279, longitude -107.88 is Durango, Colorado. The geoRadius of 120000 represents 120 kilometers (roughly 75 miles), covering Cortez, Farmington, Pagosa Springs, and Bayfield within the circle. Critical note: the radius must be in meters, not miles. 75 miles in meters is approximately 120,701 — most people round to 120000. Using 75 as the value (thinking it is miles) gives you a radius of 75 meters — roughly the size of a parking lot.
You can include both named City entries and a GeoCircle in the same areaServed array. The named cities give precision; the GeoCircle communicates the general footprint to search engines that weight radius-based coverage differently.
Where to Put the Schema
The JSON-LD block should go inside the head section of your HTML, before the closing head tag. This is the placement Google recommends and the one that loads most reliably across crawlers.
If your site is built on WordPress, plugins like Yoast SEO, Rank Math, or Schema Pro handle the injection without touching code directly. On Squarespace, the code injection tool under Settings puts it in the head. Shopify uses a theme's head section or a Script Manager app. On a custom-built site, it goes in the HTML head template.
Place the LocalBusiness schema on every page at minimum — or at least on your homepage, contact page, and every location page. If you have dedicated pages for each service area (Cortez, Farmington, etc.), each location page can carry its own LocalBusiness block with the areaServed scoped to that specific city, creating a more precise and layered signal.
JSON-LD vs. Microdata: Which Format to Use
There are two main ways to add schema markup: JSON-LD (a separate script block) and Microdata (attributes added directly to HTML elements). Google has explicitly stated a preference for JSON-LD because it is easier to implement, easier to maintain, and does not require restructuring your page's HTML.
Microdata is not wrong — some platforms generate it automatically — but it is harder to write correctly and harder to audit. If you are implementing schema from scratch, use JSON-LD every time. If your platform generates Microdata automatically (some Squarespace templates do), confirm that the areaServed values are correct and add a supplementary JSON-LD block if the generated markup does not include them.
Validating Your Schema
After implementing schema markup, validation is not optional — it is how you confirm the implementation is working rather than sitting there silently broken. Two tools to use:
Google's Rich Results Test
Go to search.google.com/test/rich-results and enter your page URL. The tool will show you what structured data Google can parse from the page, flag any errors or warnings, and show a preview of how any rich result features would appear. Errors here mean the markup has syntax problems. Warnings mean the markup is valid but missing recommended properties.
Schema.org Validator
Go to validator.schema.org and paste either your page URL or the raw JSON-LD code. This validator checks conformance against the Schema.org specification itself — useful for catching property names that are valid in Google's implementation but not technically correct per the spec, or vice versa. When the two validators agree, your markup is solid.
After validation, wait two to four weeks and check Google Search Console for any structured data errors under the Enhancements section. Search Console shows real-world parsing errors that validators sometimes miss because they see the live page as Google's crawler actually fetches it.
Related Schema Types Worth Adding
LocalBusiness with areaServed is the foundation for a service-area business. Several additional schema types complement it and can generate rich results in Google or feed AI answer engines more complete information.
FAQPage schema
Any page with a genuine FAQ section can carry FAQPage schema, which marks up each question-answer pair in a machine-readable format. Google has used this to generate expandable FAQ entries directly in search results. AI answer engines also draw on FAQ schema when generating structured answers to user questions about local businesses.
BreadcrumbList schema
BreadcrumbList markup tells Google the hierarchical position of a page within your site — Home > Services > SEO > Pagosa Springs, for example. It generates the breadcrumb trail shown in search results and helps Google understand your site structure. This is particularly useful for location pages nested within a service area hub.
Service schema
The Service type lets you describe each specific service you offer — name, description, provider (your business), and areaServed. Adding Service schema to your individual service pages gives AI systems the ability to recommend you for a specific service in a specific area, rather than just recommending your business generally.
Common Schema Errors and How to Avoid Them
Radius in miles instead of meters
This is the single most common GeoCircle mistake. The geoRadius property is specified in meters per the schema.org specification. A business that enters 75 for a 75-mile radius has defined a service area of 75 meters — about the size of a small parking lot. The correct value for a 75-mile radius is approximately 120,701 meters.
Mismatched NAP between schema and the rest of the site
Your schema markup must use the exact same name, address, and phone number as your Google Business Profile, your website's contact page, and your citation listings. A schema block that says "Animas Marketing LLC" while the site header says "Animas Marketing" and the Chamber listing says "Animas Marketing, Inc." creates the exact inconsistency that reduces trust signals. Pick one canonical form and use it everywhere.
Marking up service areas you do not actually serve
It is tempting to include every city within 200 miles in your areaServed list. Google's quality guidelines apply to structured data as well as content: marking up coverage you cannot actually deliver is a spam signal. If you cannot take a job in Albuquerque tomorrow, Albuquerque should not be in your areaServed. Declare the coverage you genuinely maintain.
Syntax errors in the JSON
JSON is unforgiving with syntax — a missing quote, a trailing comma after the last item in an array, or mismatched brackets will cause the entire block to fail silently. The parser will not tell you what went wrong; it will simply skip the markup. Always validate after implementing, and check Search Console after deployment.
How Schema Feeds AI Answer Engines
This is the part that makes schema markup more valuable in 2026 than it was three years ago. AI search tools — Google's AI Overviews, ChatGPT browsing, Perplexity, and similar systems — do not just read text. They parse structured data to build a direct factual model of what a business is and where it operates.
When someone asks an AI assistant "who does HVAC in Pagosa Springs," the system looks for businesses with clear, validated local business signals. A business with LocalBusiness schema declaring Pagosa Springs in its areaServed is a factual claim the AI can include in its answer with high confidence. A business without schema is a text-mining inference the AI includes with lower confidence — or does not include at all.
Schema markup is one of the most concrete ways to improve your visibility in AI-generated answers. For a broader look at how local businesses can position for AI search, we wrote a full guide on generative engine optimization (GEO) and what it means in 2026.
The Implementation Checklist
- • Identify the correct LocalBusiness subtype for your business at schema.org/LocalBusiness.
- • Write the JSON-LD block with correct name, address, phone, URL, and geo coordinates.
- • Add areaServed entries for each city you serve, plus a GeoCircle if you want to declare a radius.
- • Double-check that the geoRadius is in meters, not miles.
- • Verify that your schema NAP exactly matches your Google Business Profile and citation listings.
- • Place the script block in the head section of your homepage, contact page, and all location pages.
- • Validate with Google's Rich Results Test and the Schema.org validator.
- • Monitor Search Console's Enhancements section over the following four weeks.
- • Add FAQPage schema to any FAQ sections on your site.
- • Add BreadcrumbList schema to support your location page hierarchy.
Schema markup is a one-time implementation with ongoing maintenance when your business information changes. It is one of the highest-leverage technical SEO moves available to a Durango service-area business, and almost nobody in this market has done it correctly. Our local SEO service includes schema implementation as standard, and our Four Corners regional marketing guide covers the full strategy these technical signals support. See also the GEO service if you want to pursue AI answer visibility specifically.
Schema markup takes an hour to implement correctly and can directly affect whether AI tools include your business in their local answers. It is the most asymmetric technical investment in local SEO.
Get a free local SEO and schema audit