How to Pick (or Improvise) the Right Markup for Your Local Business

Like my post? Please share!

This one’s going to take a little ramp-up.  Hang with me.

What’s Schema? is a type of markup for your site that Google, Bing, and Yahoo promote.

The idea is it helps you tell search engines exactly what a specific piece of content on your site is.  For example, you’d use different Schema if you want to announce, “Here’s my business’s name, address, and phone number,” or “Here’s a customer testimonial, or “Look – a video.”

Some SEOs say Schema in general makes a big difference for your rankings.  I’m not one of them; I suspect it can help a little.  So let’s assume it helps a little.

How do you use it?

What is Schema’s role on your site, if your main goal is to get visible in Google Places and beyond?

For me, its main use is to highlight your basic business info – your “NAP” (name, address, phone number), which should be on every page of your site.

In some cases I also use it to mark up testimonials.  (Here’s a good post on that.)

But for now let’s just talk about using Schema on your all-important NAP info.  It usually looks like this in your code:

<div itemscope itemtype=””>
<span itemprop=”name”>Local Visibility System, LLC</span>
<div itemprop=”address” itemscope itemtype=””>
<span itemprop=”streetAddress”>86 Richards Ave</span>
<span itemprop=”addressLocality”>North Attleboro</span>,
<span itemprop=”addressRegion”>MA</span>
<span itemprop=”postalCode”>02760</span>
<span itemprop=”telephone”>(508) 308-4040</span>

And as you may know, you can use a free Schema generator to create a blob of Schema for your business – like or Raven Tools’ generator.  (In fact, I suggest you use a tool to do it.)

The problem: vague “itemtype”

Notice that first line.  In your blob of Schema, it probably reads:

<div itemscope itemtype=”“>

“Local Business” is vague.  All that tells Google & co. is that you’re not Amazon or Nike.

You should not settle for that lame “LocalBusiness” itemtype in your Schema name / address / phone blob: Either there’s an itemtype (AKA Schema) that’s specific to your business, or you can improvise one (more on this in a minute).

First, try to find a Schema that describes your business.  For example, or

That might be easy if you used to generate your NAP blob.  There, you may have seen some common types of businesses:


If one of those categories describes your business accurately, no need to read on.  If that’s the case, go to MicrodataGenerator, select the specific Schema that describes your business (pictured above), generate your NAP blob, put it on your site, and pour yourself a cold one.

Find the right itemtype / Schema here

You’re probably 90% of the way to the perfect Schema NAP blob.  Again, the only blemish is that first line – with “LocalBusiness” in it:

<div itemscope itemtype=”“>

All we’re trying to do is figure out what to put in that line instead of “LocalBusiness.”  We’re literally looking for one word.  Once we find it, you can make the swap and then stick that whole NAP block on every page of your site.

Finding the right itemtype was tricky – until now.

That’s why first I scraped Moz Local’s huge list of local-business categories.  (You’ll see these under “Category Research” if you’re logged into your free or paid Moz account.)

Then I cleaned up the list.  There was a lot of junk and repetition.  I cut it down to the realistic categories – the ones that might conceivably describe your business.

Then I asked structured-data markup expert David Deering for help.  He’s a Level 10 contributor at the Google Webmaster Forum, where he answers markup questions every day.  He knows Schema like I know Judas Priest songs.

David looked at The List and found the right Schema for each category.

The result?  You can open up this spreadsheet (on Google Drive) and scroll through it to find your type of business and the corresponding Schema / itemtype.

Now look in the right-hand column and grab the single word that comes after the part.  That’s what you’ll want to replace “LocalBusiness” with in your Schema blob.

Let’s say you were doing this for my business.  And let’s say I retired from the local-search biz and opened my very own beauty parlor.

Where I used to have “LocalBusiness” in that very first line, I’d put “HealthAndBeautyBusiness” instead.

<div itemscope itemtype=”“>
<span itemprop=”name”>Face By Phil</span>
<div itemprop=”address” itemscope itemtype=””>
<span itemprop=”streetAddress”>86 Richards Ave</span>
<span itemprop=”addressLocality”>North Attleboro</span>,
<span itemprop=”addressRegion”>MA</span>
<span itemprop=”postalCode”>02760</span>
<span itemprop=”telephone”>(508) 308-4040</span>

Fix that one line of code, and then put that whole blob of code (like the above) on every page of your site.  You’re done here.

But what if you still don’t find an accurate Schema?

That’s what I asked David after he sent me The List.  What if the geeks at left your type of businesses out in the cold?

Can you still use Schema to “tell” Google & co. exactly what kind of business you’ve got?

Or what if you don’t think your type of Schema is specific enough (like if you’re a pediatric dentist and don’t want to settle for the broad “Dentist” Schema)?

You’re in luck.  And the workaround should take you less than 5 minutes, if you carefully read this bit of explanation from David

(I put the extra-important parts in italics.)

Use an additional ontology called Productontology (  This is great to use to specify products and even services, but it can also be used to help extend other schemas to get more specific.

In simple terms, the process involves finding the matching entity in Wikipedia and then creating a URI with Productontology.  So let’s take for example a deli.  There is no exact schema type for a deli.  So we have to use  But since that’s not very specific, we should pull in the use of Productontology.

So first, we go to Wikipedia and find the page for Deli:

Now we have to turn it into a Productontology URI.  A Productontology URI begins with  We take the last part of the Wiki URL,, and add it to the Productontology URI.

So the full Productontology URI for a deli becomes

Next, we have to add it to the markup.  In order to do that, we have to use the “additionalType” property.  So, the markup for a deli would look something like this:

<div itemscope itemtype=“”>
<link itemprop=”additionalType” href=“”
<span itemprop=”name”>Name of Deli</span>

<div itemprop=”address” itemscope itemtype=“”>
<span itemprop=”streetAddress”>100 Main St.</span>
<span itemprop=”addressLocality”>New York</span>,
<span itemprop=”addressRegion”>NY</span>
<span itemprop=”postalCode”>12345</span>
<span itemprop=”telephone”>(555) 123-4567</span>

Of course, more properties could be added to the above markup, but it’s just a rough example of how the “additionalType” property along with a Productontology URI can be used to help extend schemas and specify schema business types much better.


So…remember a minute ago how if you found your type of business in the big spreadsheet, you just had to tweak that 1st line of code?  Well, if you didn’t find your type of business in the spreadsheet, what you’ll have to do is tweak that one line plus add an additional line to your Schema NAP blob.

Example time.  Let’s revisit my “Face By Phil” example.  (Don’t worry – it’s still fictional.)  Let’s say I didn’t run just any old beauty parlor, but specialized in laser hair removal.  I’d want Google to know that, so I’d want my Schema to make that point clear.  Here’s what my NAP code would look like:

<div itemscope itemtype=”“>
<link itemprop=”additionalType” href=”” />
<span itemprop=”name”>Face By Phil</span>
<div itemprop=”address” itemscope itemtype=””>
<span itemprop=”streetAddress”>86 Richards Ave</span>
<span itemprop=”addressLocality”>North Attleboro</span>,
<span itemprop=”addressRegion”>MA</span>
<span itemprop=”postalCode”>02760</span>
<span itemprop=”telephone”>(508) 308-4040</span>

As you can see, you’re only customizing the parts in green – although it would be smart to change both URLs completely, so you don’t make any typos.

Examples of Schema + Productontology

Here are some examples of the info you’d use to customize those two lines:


Use in 1st line:

Use in 2nd line:

Fertility clinic:

Use in 1st line:

Use in 2nd line:

Funeral home:

Use in 1st line:

Use in 2nd line:

Graphic designer:

Use in 1st line:

Use in 2nd line:

Home inspector:

Use in 1st line:

Use in 2nd line:


Use in 1st line:

Use in 2nd line:

Landscape architect:

Use in 1st line:

Use in 2nd line:

Laser hair removal service:

Use in 1st line:

Use in 2nd line:


Use in 1st line:

Use in 2nd line:

Music school:

Use in 1st line:

Use in 2nd line:

Pediatric dentist:

Use in 1st line:

Use in 2nd line:

Personal Trainer:

Use in 1st line:

Use in 2nd line:


Use in 1st line:

Use in 2nd line:


Use in 1st line:

Use in 2nd line:

Wedding photographer:

Use in 1st line:

Use in 2nd line:

Got the perfect Schema NAP for your site yet?  If you’re still stumped, feel free to leave a comment.

Or if you’d rather let someone else mess with it, contact David.  He offers all kinds of markup services, and has worked with small / local sites as well as with national brands.  This post wouldn’t have been possible without his know-how.  Oh, and follow him on Google+.

(By the way, here’s the spreadsheet again.)

This is the rare post where it takes longer to explain the step than to do the step.  But getting the right Schema should be a quick one-time deal for your business, and it may give you that extra little edge in the local results.

Print Friendly


  1. Thanks for the new post! I understand have to “generate your NAP blob,” but I don’t know where exactly “put it on my site.” Is there some sort of universal folder in WP, I can paste this into?

    • I have mine in my footer so that it shows up on every page. If there is a better place to put it I would love to know. Didn’t know I could improve on the LocalBusiness thing so this post is super awesome thanks Phil.

  2. Very helpful details on the Schema NAP! Were is it applied on each page?

  3. Great detailed post on local Schema markup! Really love how how you explain how to get very, specific local business information in there.

  4. Hey Phil,

    I wasn’t aware of I was able to add a bit more granularity to an existing Schema markup in a highly competitive arena. It may provide that tiny edge we need ;-)

    Thanks for the heads-up and another informative post!


  5. Ok, I found a description for my business on Moz that I like, now how would I enter the data. I’m using WordPress site. Doesn’t it appear (publicly) on the page where you add it?

  6. Great post Phil. You Sir are a local search artist and a gentleman. =^)

    I knew there was a way to do this – it basically hints all around it on the pages but the lack of instruction on “how” there is (typically) completely lacking.

    This is awesome – Thank you!

  7. Great post Phil.

    Do you have any suggestions for a particular WP plugin? Everytime plugin I have used has put the schema in a box on the page. I want it hidden in the source code. Would that be an addition the htaccess file or editor or something and going in through FTP?

    A plugin would be better.

    Thanks and really great article!

    • @Ruben, Timothy, Paul, Peter
      Anywhere on the page is fine. But I recommend putting it in footer.php.

      You may also want to refer to this post I did back in March:

      @Jeffrey and Dino

      As I recall, Yoast’s Local SEO plugin will put your Schema blob on every page.

    • Hi Robin. Just to follow up on what Phil said, I also wanted to add that hiding structured data markup on a page actually goes against Google’s guidelines for rich snippets. They will ignore any hidden microdata structured data markup, but even worse, it’ll cause them to distrust your markups, too. So as a general rule, you should only mark up content that is visible on a page, where it’s located on the page.

      I hope that helps.


  8. Have I mentioned before that I love you Mr Rozek x This is brilliant!

  9. I tried doing this, but got an error message from the Google Rich Snippet Tool:

    name: Ozols Law Firm
    streetaddress: 8880 Rio San Diego Dr #22
    addresslocality: San Diego
    addressregion: CA
    postalcode: 92108
    telephone: (619) 288 – 8357
    Error: Page contains property “streetaddress” which is not part of the schema.
    Error: Page contains property “addresslocality” which is not part of the schema.
    Error: Page contains property “addressregion” which is not part of the schema.
    Error: Page contains property “postalcode” which is not part of the schema.

    • avatar Gene Maryushenko says:

      It looks to be working correctly on their website?

    • Hi Mariano. Without the benefit of seeing your markup, it looks like the problem is that you have not declared the PostalAddress itemtype. You see, you can’t simply use the address properties for a local business or organization; you must first declare a new PostalAddress itemtype. So it would look something like this:

      Ozols Law Firm

      8880 Rio San Diego Dr. #22
      San Diego,

      (619) 288-8357

      And, of course, you could add other properties and types to this as well. You just need to be sure that all of the properties are properly nested within the appropriate schema types.


  10. avatar Gene Maryushenko says:

    Very cool post Phil! Does it matter if its or ? I noticed you used /doc/ in your “Face by Phil” example.

  11. Hot uusable info for sure Phil. I’m assuming we paste code between header and footer after finding correct Schema?

  12. Thanks Phil :-)
    How to best handle a professional service where the professional focusses on more then one area?
    Focus on just the ‘main’ aspect of the profession? Or different markup for each professional subset ‘section’ of a site?
    Main aspect: Lawyer
    Subsets within the main aspect:
    —> DUI law
    —> Criminal law
    —> Family law
    Landing pages/sections on site about these professional subsets.
    I’ve had varied responses to this query?
    Thanks :-)

  13. Great post Phil!

    Do you know what inspired the use of Productontology vs using the built in sameAs attribute to link to the wikipedia page of the service?

    • Excellent question, Dan. I’m stumped. I would think SameAs would do the trick. But once again, I’m sure David has a better answer.

    • Hi Dan. Well, the “sameAs” property is very similar to but not quite the same as the “additionalType” property. The definition of the sameAs property is: “URL of a reference Web page that unambiguously indicates the item’s identity. E.g. the URL of the item’s Wikipedia page, Freebase page, or official website.” So, for example, you can use the sameAs property to say that “this business is the same business that’s on this Google+ page, or this Facebook page, or this Freebase page”. But for the sake of getting more specific with a schema type, the “additionalType” property is the most appropriate property to use.

      • Thanks David! That was really helpful and allowed me to make a great recommendation to a client. Seems like when taken in that context the combination of sameAs and Productontology allows a more robust use of schema for businesses that don’t keep all the traditional data on their page.

        • Sounds great, Dan. Just keep in mind that when using the additionalType property, you would typically use an external vocabulary, like Productontology. But when using the sameAs property, you would use a regular URL of a reference page.

  14. avatar Ken Mabry says:

    Thanks Phil… fantastic post! I’ve been following you blog for quite some time now.
    This post is much appreciated. It’s tough to find plain-english advice on how to use this stuff.
    After reading through the post, I was curious to know if you have any recommendations on how to use markup to define business service areas?

    • Great question, Ken. I’d probably refer to this:

    • As Phil mentioned, using would be a good way to go, Ken. But it gets a little tricky, since you can’t just jump directly from LocalBusiness to AdministrativeArea. In a nutshell, you would have to declare things in this format: LocalBusiness >> makesOffer >> Offer >> itemOffered >> Service >> serviceArea >> AdministrativeArea… and then you’d have to use either the “name” or “geo” property to specify the exact area that the service is being offered in. There’s actually more to it than that, but that’s the basic structure of how it would be done.

      I hope that helps.


  15. This is awesome. Thanks for sharing Phil!

  16. I like the intro of your post stating the reality of the importance of schema. Most posts seem to start with the significance of their posts to solve the problem of local SEO. Having said this, great post. I would start with templates and edit the categories. Now this adds another level of focus. I also have a feeling that this will become more and more important. Thanks Phil.

  17. Hi, great post. I didn’t know
    I use very ofter schema markup on my web pages. To apply address information to Organization or LocalBusiness data i use this html/schema markup

    Via XI maggio 43,91025 – Marsala (Sicilia)

    It’s semantically correct this solution? Note that i use address tag and you in yor post use div


  18. Putting a single NAP “blog” on every page not necessarily a good idea if there’s one website for multiple business locations. This has created some problems for us in the past as Google seemed to give priority to the structured data over the other specific meta tags on a specific location page.

    For businesses with multiple locations we only put the A & P of the NAP on the specific location pages (e.g.

    • When you say “Google seemed to give priority to the structured data over the other specific meta tags,” are you referring to what Google displayed in the SERPs?

  19. Great post! Thank you so much for writing this up. We have more than 3 podiatrists working in our practice with 1 location. Should we use MedicalClinic schema or still use Physician schema like listed in the spreadsheet? Thanks SO MUCH in advance.

    • Good question, Alinka. I’d go with MedicalClinic, if you’re marketing the practice as a whole rather than marketing the 3 podiatrists separately.

      • Thank you, Phil. One more question. This really helps!!! I’m trying to mark up as much content as I can, instead of just NAP. I don’t see any documentation anywhere about samples or examples on how to mark up things like MedicalSpecialty and availableService. If you can help or show example, would truly appreciate it. Newbie here. Thanks so much

        • Another good question, Alinka. I could probably stumble my way to an answer, but I think your best bet would be to hire David :)

  20. avatar Gabriel Reynaga says:

    Great info thanks for sharing. We have been using the Local Business tags for our clients but that will stop today.

  21. avatar Bryan Bledsoe says:

    Is it okay to customize some pages with with schema names for the type of services a business offers. For example specialties like graphics/vehicle wraps, window tinting (auto, home and business) and leather interior upgrades or should each page have the same schema name? Thank you

    • Hi Bryan. Well, in a situation like that, you would still use the same schema type on all of the pages for the particular type of business that you are, but you would define your specialties through the use of the Offer schema type. So in other words, your business type wouldn’t change, but the “offer” on your various pages would.


  22. Hi Dave,
    I forgot to ask, do I need to regenerate the code for my existing code or can I just change where it says Local Business to ProfessionalService?

    Here is the existing code that I have in my footer

    PC Medics On Call

    449 Purdue Drive

    Phone: (910) 200-0150

  23. Would it do anything to put this schema in a Youtube video if promoting a local business?
    Or just put the NAP?

  24. This is a really awesome post. I had never heard of the trick before. Do you recommend using Garage_door as the end of the url for a garage door repair business?

    • I probably wouldn’t. You work on garage doors, but your business isn’t a garage door. I’d look for another one.

    • Mark, I agree 100% with Phil–if you can’t find an EXACT match for your business on Wikipedia, then don’t use a Productontology URI. Doing so might do more harm than good. Instead, simply find the schema type that best matches your type of business and go with that.

  25. Hey Phil,

    Nice articles as always. I also enjoyed reading your “Tough Questions for David Deering” post. I noticed your markup does not include either a link to the site or Google maps url.

    I also read your post “10 Guidelines for Putting NAP Info on Your Site for Local SEO,” where #6 says not to put links to your site unless it helps usability, but then I have seen some markups include either or. Even the generators you link to have a space for url to website or map url.

    Is there a reason you do not like to include? If you were to include, which one would be better to use?



    • Thanks, David.

      I usually strip out (or simply don’t add) links in the NAP because they just don’t add anything – for users or for search engines, I suspect. But I can picture them falling into the “over-optimization” pile, given how sensitive Google is to all kinds of links (external and internal).

  26. Great article Phil! I am interested to know what anyone would recommend for a Real Estate Property Management business. I am more interested in getting traffic from people looking to rent an apartment or house, rather than people interested in signing up for our property management service. So, I can’t decide whether to use or Service. And would it be weird to put Rental or Apartment in the second line? ie: . Or should I stick with . ? Thanks!

  27. avatar Marie Ysais says:

    Finally!! I found just what I was looking for and I could actually understand what you were talking about! There are a ton of confusing sites out there that don’t break t down like you do! Thanks Phil!

  28. The specialization of the industry in the schema is brilliant. I have always used the generic local business. This has probable been the simplest and easy to understand example of schema I have read thus far. No more schema generators. Thank you so much

  29. I just gotta tell you – THIS ROCKS!

    THANKS for all the geeky info, research and sharing of how to go about this.

    Best, Tim

  30. Great article Phil. I’m going to be interested in seeing how Schem is going to integrate new and emerging businesses that aren’t exactly “Google friendly” (as of 2014) such as cannabis clinics. For now alt. medicine seems to be the reigning category. Hopefully we find out more in 2015. Thanks for the post!

    • Thanks, Zachary. For “emerging” businesses I’d definitely go the Productontology route, if possible.

      • So far so good Phil, I gave the Productontology method a shot with a social media marketing firm I’m helping out, and the Schema seems to be holding up. Will post more if I find out any different. Thanks again for informative the post!

  31. Hey guys,

    Perhaps I did something wrong here, but when I run this additional markup through the structured data testing tool, it’s giving me flack:

    Did I screw something up, or is the structured data testing tool not going to recognize this additional information properly?

    • I don’t think the testing tool recognized it properly. It’s no different from David’s example of a home inspector (who also uses the “ProfessionalService” itemtype) using Productontology. I think you’re OK.

    • Hi Scott. Actually, it’s a simple fix. You need to use /id/ and not /doc/. And I think your particular quotation marks were throwing the tool off, too (certain fonts will do that). But the tag should look something like this:

      I hope that helps.


  32. Just a note about the double quotes. If you copy the example schema from above, and paste into your wordpress website, you may have unrecognized double quotes.

    For Example this line:
    100 Main St.
    Must be changed to this:
    100 Main St.

    You have to look close at the double quotes to see the difference.

    Make sure to test in google webmaster tools to make sure google recognizes what you are telling it.

    Otherwise the schema does you no good.

    Good luck!

  33. Hi Phil
    Great article. Just one question, regarding “itemtype” and “additionalType” properties to declare business type in foreign languages (a local site in portuguese, actually).
    Do I have to declare the business types in english (meaning one from your spreadsheet + the ones picked up from Productontology) or do I use portuguese expressions that define my business?
    By logic, I would bet on the second one, portuguese business category names, as I’m trying to signal a portuguese site ranking in portuguese searchs, but hey, it’s Google…
    What would you do in this case?
    Thank you

    • Great question, Jose. I have the itemtype (and additionaltype, if applicable) in English. That markup isn’t visible unless you check the source code, so it wouldn’t look odd to Portuguese speakers. Only Google will see it. Also, doesn’t support non-English languages yet:

      But in the rest of your site / SEO work, yes, you’ll want to use the Portuguese words.

      • Thank you, Phil.
        Yes, you are absolutely right, “itemtype” only works in english, I get error if I try to use portuguese expressions there. Also, your Productontology ninja trick doesn’t work either. It requires an article in the english Wikipedia (mandatory). I tried a work around, creating a translate page on Wk explaining the portuguese expression I want to use, but it was deleted in a few hours and Productontology gives now an empty result. So my friend, I’ll have to live with the good old “LocalBusiness” here… and pray hopefully for give support to foreign languages on their markup.
        Nevertheless, I manage to build a proper and complete markup, under LocalBusiness, and included the social links with “sameAs” property, as explained by David (thank you, David!) on that article in Whitespark. All working well running smoothly.
        Again, thank you very much, you article was a mind opener. Hats off, sir! ;)

        • Sure thing, Jose.

          FYI, you don’t have to use “LocalBusiness”: you can pick a more-specific “itemtype.” Just has to be in English, for the moment.

          • Thank you, Phil.
            Now I’m working a small country inn, sort of a rural hotel – also in portuguese.
            Do you think I can use itemtype “LodgingBusiness” (broader) and then “additionalType” Hotel? Like this:

            ( The Google Testing Tool returns no errors on that )
            Or do I get better results going for “Hotel” straight away in the itemtype tag?

          • Go for “Hotel” in the itemtype.

  34. Thank you, Phil.
    Can you please give an example, how can it be implemented by the JSON-LD markup?

  35. avatar Corey Barnett says:

    I’m getting this error
    The property ”additionalType” is not recognized by Google for an object of type ProfessionalService.

    I also tried information_technology_consulting and couldn’t get it to work either.


  1. Picking the Right Local Markup for Your Business – Phil Rosek

    Schema is a hot topic ’round these parts and you know how much I love Phil’s posts! So wanted to share this one with the troops.

  2. […] a Jarno van Driel scopro una guida davvero ben fatta dal titolo “How to Pick (or Improvise) the Right Markup for Your Local Business” dove si parla anche di proprietà come “additionalType” e dell’uso di […]

  3. […] How to Pick (or Improvise) the Right Markup for Your Local Business, […]

  4. […] How to Pick (or Improvise) the Right Markup for Your Local Business […]

  5. […] my last post – which was a little technical – I thought it was time for something lower-tech.  […]

  6. […] you might recall, he’s the guy who brought the insights to my recent post on Schema.  In fact, it was his answers in the comments on that post that reminded me how many questions I […]

  7. […] 5. How to Pick (or Improvise) the Right Markup for Your Business […]

  8. […] the “itemtype” line in your markup The itemty-…huh?  I explain that one in another long post.  It’s a little technical, and it won’t explain low rankings, but it might give you a slight […]

Speak Your Mind