Insights · Practical · Local SEO

Schema markup for service-area businesses: what changed in 2026

Service-area businesses do not have a storefront, so the standard LocalBusiness schema misses important context Google needs. The 2026 update to Schema.org and Google's SAB handling changed what works. Here is the current playbook.

Andy Seo2026-05-249 min read

A roofing company that serves 22 zip codes from a single dispatch office is not a storefront. A plumbing company that operates from one warehouse but does jobs across three counties is not a storefront. Both are service-area businesses (SABs). Their schema needs to declare the service area, not the storefront location.

What changed in 2026

Schema.org released the GeoCircle and GeoShape refinements in late 2025, and Google's SAB handling started weighting them in early 2026. The result: a SAB that declares its service area properly now ranks for nearby-search queries originating from anywhere inside that declared radius, instead of only from the storefront's registered address.

The practical effect: a roofing contractor in San Jose with a properly-marked-up service area covering all of Santa Clara County now appears in map-pack results for queries from Mountain View, Palo Alto, Sunnyvale, and Cupertino. Before the markup update, that same contractor only appeared for queries from inside San Jose.

The 2026 SAB schema template

Here is the template we deploy on contractor and trade-business sites in 2026, slightly simplified:

{"@type": "LocalBusiness", "name": "Acme Plumbing", "image": "https://...", "telephone": "+1...", "address": {"@type": "PostalAddress", "addressLocality": "San Jose", "addressRegion": "CA"}, "areaServed": [{"@type": "GeoCircle", "geoMidpoint": {"@type": "GeoCoordinates", "latitude": 37.3382, "longitude": -121.8863}, "geoRadius": "40000"}], "openingHours": "Mo-Fr 07:00-19:00", "priceRange": "$$"}

Three things matter. First, the address omits a street address because the SAB does not have a public storefront. Including the street address of a non-public dispatch office often confuses Google and produces a verification fail. Second, the areaServed property uses GeoCircle with a 40km radius from a specific lat/long. Third, the schema is paired with a service-area declaration inside Google Business Profile that matches.

Service-level schema

On top of LocalBusiness, each service the business offers gets its own Service block with category targeting. This is the difference between ranking for "plumber san jose" (generic LocalBusiness) and ranking for "water heater repair san jose" (specific service).

{"@type": "Service", "name": "Water heater repair", "provider": {"@id": "https://acmeplumbing.example/#org"}, "serviceType": "Plumbing", "areaServed": {"@type": "GeoCircle", ...}}

Each top-revenue service gets its own block. A plumbing company with five core services has five Service schemas declared on the homepage or service-hub page.

FAQ schema for AEO + SEO together

SAB sites now get FAQPage schema on every service page, with 5 to 8 common pricing-and-process questions answered. The schema serves two layers at once: SEO (rich results in the SERP) and AEO (citable answer passages for AI agents).

The questions that matter are the ones the buyer is actually asking. "How fast can you come out for a leaking water heater" beats "What is your service area" by an order of magnitude in both SEO and AEO terms.

Common mistakes that cost rankings in 2026

First: declaring a street address for a non-public dispatch office. Google's SAB verification penalizes this. Submit the area only, not a hidden address.

Second: using `address` plus `areaServed` simultaneously with a tight radius. The conflict signals to Google that the business is either a storefront pretending to be a SAB or vice versa. Pick one mode and stay there.

Third: copy-pasting Service schemas across pages without per-page customization. Each page should declare the Service block for the service it actually describes, not a list of every service the business offers.

Fourth: ignoring the openingHours property. SABs that respond outside standard hours (emergency plumbers, 24/7 contractors) need to declare the schedule explicitly. A plumbing business that takes 11pm emergency calls but lists 9-5 hours in schema ranks below the version that declares both.

The result

A trade business that ships this schema correctly in 2026 sees nearby-search rankings climb 30 to 60 percent over the following 90 days. Paid spend efficiency improves at the same time because the organic baseline is doing more of the lifting. The work is one-time on the schema deployment and recurring on the FAQ + Service content updates.

IG deploys this schema stack as part of every Contractors and Trade Businesses engagement. We also pair it with the GBP + review-generation work that the schema sits on top of, because the schema alone is insufficient without the GBP signal underneath it.