What structured data should a business with no storefront use?
Short answer
Use the most specific schema.org type for your trade, such as RoofingContractor, HVACBusiness or Plumber, and mark up only what your pages show: name, website, logo and phone number. If your site shows no address, leave the address out. Google lists an address as required for its local business rich result, but it also says not to mark up information readers can't see. Google says no special markup is needed for its AI features, and Bing says markup must match the visible page.
A roofer, plumber or HVAC company that works at customers’ homes, and does not serve customers at its own address, is told by Google’s Business Profile rules to take that address off its profile.
Do AI assistants need structured data?
Not for Google’s AI features. Google says “Structured data isn’t required for generative AI search, and there’s no special schema.org markup you need to add.” It adds that markup is still worth using “as part of your overall SEO strategy, as it helps with being eligible for rich results on Google Search.” Microsoft’s Bing guidelines say structured data “may support clearer grounding but does not guarantee visibility or grounding traffic.”
Google lists “making sure your structured data matches the visible text on the page” among the fundamentals for its AI features, and Bing says “Markup must accurately reflect visible content.” Markup will not put a business into an AI answer by itself.
Which schema.org type should you use?
The most specific one for your trade. Google’s guidance is to “use the most specific LocalBusiness sub-type possible,” and schema.org has types for many trades, including RoofingContractor, HVACBusiness, Plumber and Electrician. If you do several kinds of work, Google says to list the types as an array, and its own example is [“Electrician”, “Plumber”, “Locksmith”].
Skip ProfessionalService, even though the name sounds right. Schema.org’s page says “The general ProfessionalService type for local businesses was deprecated due to confusion with Service,” and names the trade types it used to include. Use one directly.
Your trade type is also a kind of Organization. Google’s organization guidance has “no required properties,” and for a local business it says to follow the local business fields “in addition to the fields recommended in this guide”: your name, url, logo, phone number, email and sameAs links to your profiles on other sites.
What do you do about the address?
Google’s local business documentation lists address as a required property, described as “The physical location of the business,” and says you must include the required properties “for your content to be eligible for display as a rich result.” Its general guidelines also say “Don’t mark up content that is not visible to readers of the page,” and its introduction adds: “don’t add structured data about information that is not visible to the user, even if the information is accurate.”
Put together:
- Your site shows no address: leave
addressout. The markup still describes your business, but it will not be eligible for Google’s local business rich result. - Your site shows a mailing address, in the footer for example: Google’s organization guidance allows it, describing
addressas “The address (physical or mailing) of your organization, if applicable.” The local business rules ask for the physical location, so a mailing address may not meet that requirement. - Never mark up an address your pages do not show.
On Google, the Business Profile holds your local details. Google says: “If you don’t serve customers at your business address, remove your address from your Business Profile.” Verifying the profile and adding your details “enables your local business information to show up in Google Maps and Google knowledge panel.”
How do you describe a service area?
Schema.org’s areaServed property is “The geographic area where a service or offered item is provided,” and it supersedes the older serviceArea. Its value can be text, a place, an administrative area such as a city, or a shape. Google’s property lists for local business and organization markup do not include it. Use it to name your towns, and list the same towns in text on the page.
On Google, set your service areas in the Business Profile, which allows up to 20, “based on the cities, postal codes, or other areas you serve.”
What does the markup look like?
An example for a roofer whose site shows its name, phone number, email and towns, but no address:
{
"@context": "https://schema.org",
"@type": "RoofingContractor",
"name": "Example Roofing",
"url": "https://www.example.com/",
"logo": "https://www.example.com/logo.png",
"telephone": "+15555550100",
"email": "office@example.com",
"areaServed": [
{ "@type": "City", "name": "Springfield" },
{ "@type": "City", "name": "Riverton" }
],
"sameAs": ["https://example.net/profile/example-roofing"]
}
It goes in a script tag of type application/ld+json; Google calls JSON-LD its recommended format. Google suggests placing organization markup “on your home page, or a single page that describes your organization,” such as an about page.
How do you check it?
Google says the Rich Results Test and the URL Inspection tool “catch most technical errors.” Run the page through the Rich Results Test after every change, then check that each value in the markup appears on the page. Without an address, the test may flag it as missing; leave it out if your page shows none.
What is the short list?
| Property | Include it when | Why |
|---|---|---|
@type | Always, as your trade’s most specific type | Google asks for the most specific LocalBusiness sub-type |
name, url, logo | Always | Google recommends them for organization markup |
telephone, email | They appear on the page | Markup must match visible content |
address | The page shows your address | Google’s local business rich result requires the physical location; never mark up one you don’t show |
areaServed | The page lists the towns you serve | Not in Google’s local business or organization property lists |
openingHoursSpecification | The page shows your hours | Recommended in Google’s local business markup |
aggregateRating | Never, for reviews of your own business | Google recommends it only for sites that capture reviews about other local businesses |
The Google Business Profile checklist covers the profile, the AI visibility checklist includes a markup check, and AEO vs SEO explains where markup fits. The roofing and HVAC pages cover those trades. To see where your business stands, Ultruxy offers a free visibility report. Our approach is on the SEO service page.
Sources
- 01 Google's Guide to Optimizing for Generative AI Features on Google Search Google Search Central
- 02 AI features and your website Google Search Central
- 03 Webmaster Guidelines Microsoft Bing Webmaster Tools
- 04 Local Business (LocalBusiness) structured data Google Search Central
- 05 Organization (Organization) structured data Google Search Central
- 06 General structured data guidelines Google Search Central
- 07 Introduction to structured data markup in Google Search Google Search Central
- 08 Establish your business details with Google Google Search Central
- 09 Manage your service areas for service-area & hybrid businesses Google Business Profile Help
- 10 ProfessionalService Schema.org
- 11 areaServed Schema.org
- 12 RoofingContractor Schema.org