Structured Data for Local Service Businesses
Name, address, hours, and type only help search systems when they are machine-readable. How Schema.org LocalBusiness and Google’s local business structured data guidelines fit a service website.
A service firm publishes a polished About page: street address in the footer, phone in the header, hours in a PDF. Visitors can read those facts. Search systems and maps surfaces often cannot assemble them reliably unless the same facts appear as structured data. For businesses with a physical location—or a clearly named local presence—that markup starts with Schema.org’s LocalBusiness type and Google’s local business structured data documentation.
Schema.org defines LocalBusiness as a particular physical business or branch of an organization (a medical practice, a restaurant location, a club, and similar). Google Search Central builds on that vocabulary: mark up each location, use the most specific subtype you can, and supply required and recommended properties so pages may become eligible for richer local presentations—without treating markup as a ranking guarantee.
The planning gap behind “we’re on Google”
Many redesign briefs treat structured data as a late SEO checkbox. The planning question comes earlier: which page is the canonical statement of who we are, where we operate, and how to reach us? Without that decision, developers paste generic Organization markup, marketers invent hours that differ from the footer, or multiple locations share one incomplete blob.
Schema.org’s own examples show the shape of a minimal location: name, nested PostalAddress, and telephone—enough for a gift shop on a coastal highway, and enough as a base for denser service businesses. Google’s documentation (last updated 2026-09-08 UTC) states that Search or Maps may show a knowledge panel or related carousels for matching local queries, and that Local Business structured data can communicate hours, departments, and related details. Eligibility is not a promise that any particular rich result will appear.
For a clinic, contractor, salon, or consultancy with a public office, the cost of skipping this step is quiet: inconsistent NAP (name, address, phone) signals, hours that never surface as “open now,” and a site that describes services in prose while leaving machines to guess the entity.
What to mark up—and how specific to get
Google’s Local Business structured data guide requires two properties for eligibility:
name— The business name.address— APostalAddresswith as many useful sub-properties as you can provide (street, locality, region, postal code, country). Google notes that fuller addresses tend to produce higher-quality results for users.
Recommended properties include telephone (with country and area code), url (a working link for that location), geo with latitude and longitude to at least five decimal places, openingHoursSpecification (or equivalent hour structures Google accepts), and priceRange when it fits—kept under 100 characters or Google will not show a price range.
Typing matters. Google asks you to use the most specific LocalBusiness subtype available—for example Restaurant, DaySpa, or HealthClub—and shows multi-trade firms as a type array such as ["Electrician", "Plumber", "Locksmith"]. Schema.org’s vocabulary includes many of those subtypes under the local-business tree. The old catch-all ProfessionalService type was deprecated because it confused the business location with the separate Service type used for offerings; for catalogues of work, Schema.org’s service examples pair a Service with a LocalBusiness provider and, when useful, an OfferCatalog.
| Planning decision | Weak approach | Stronger approach |
|---|---|---|
| Type | Always bare Organization | Most specific LocalBusiness subtype (or array) |
| Facts | Hours only in a PDF | Same hours in visible HTML + openingHoursSpecification |
| Locations | One blob for three offices | One marked-up entity per location page |
| Reviews | Self-serving review markup | Follow Google’s rule: review properties only when the site captures reviews of other businesses |
| Offers | Stuff services into random properties | Service / offers linked to the business as provider |
Implementation notes that keep planning honest
Google’s how-to sequence is operational: add required properties, follow the structured data and Search Essentials guidelines, validate with the Rich Results Test, deploy a few pages, inspect URLs, then allow time for recrawl—often several days—and keep a sitemap for ongoing changes. Prefer JSON-LD in a script tag when you control the template; keep the marked-up facts consistent with visible content and with other public profiles you maintain.
Hours need care. Google documents year-round weekly ranges, overnight spans (open Saturday 18:00, close 03:00), all-day open (00:00–23:59), all-day closed (opens and closes both 00:00), and seasonal closures via validFrom / validThrough. Departments with distinct phones or hours can nest under department, with naming guidance such as {store name} {department name} unless the department is its own brand.
Schema.org usage notes report LocalBusiness appearing across a large band of domains in Google’s index aggregations (on the order of 1M–10M domains in the July/August 2026 snapshots shown on the type page). That scale is context, not a quality claim: widespread vocabulary still fails when the facts are wrong.
Limits worth stating
Structured data does not replace clear on-page contact design, a maintained business profile, or accurate citations elsewhere. Google states that it does not guarantee features that consume structured data will show in results; guideline violations can trigger manual actions that cause markup to be ignored even when the page still ranks as a normal result. Review and aggregate rating properties are not a shortcut for displaying your own testimonials—Google recommends those properties for sites that capture reviews about other local businesses, and points to separate review-snippet rules.
Remote-only firms without a public location may be better served by careful Organization (and service) markup than by forcing a fake storefront address. Inventing coordinates or hours to “complete” the schema creates a trust problem larger than any rich-result upside.
“Structured data is a clarity tool: it should say the same true things your contact page already says—only in a form machines can parse without guessing.”
— Windware Studio Practice Note
Practical takeaways for your next website
- Choose the location page (or one page per branch) that will carry the canonical NAP and hours.
- Pick the most specific subtype Schema.org and Google support for your trade; use a type array when several apply.
- Ship required
name+PostalAddress, then add telephone, URL, geo, andopeningHoursSpecificationthat match the visible site. - Validate with the Rich Results Test before calling the task done; fix critical errors, then request indexing and allow recrawl time.
- Separate offerings from the location entity: describe services with
Service/ offers linked to the business as provider, instead of overloadingLocalBusinesswith unrelated fields.
The next step is editorial consistency: treat structured facts like content—version them when hours or addresses change, not only when the visual theme updates.
Ready to Discuss Your Website?
If you are planning a new website, a service redesign, or custom development for your business, we’re here to help shape the work.
- Explore Our Services: Web Design · Web Development · Website Redesign
- Start a Conversation: Tell us about your project via our Contact Form or email us directly at
[email protected].