How to Pick (or Improvise) the Right Schema.org 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?

Schema.org 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=”http://schema.org/LocalBusiness”>
<span itemprop=”name”>Local Visibility System, LLC</span>
<div itemprop=”address” itemscope itemtype=”http://schema.org/PostalAddress”>
<span itemprop=”streetAddress”>86 Richards Ave</span>
<span itemprop=”addressLocality”>North Attleboro</span>,
<span itemprop=”addressRegion”>MA</span>
<span itemprop=”postalCode”>02760</span>
</div>
<span itemprop=”telephone”>(508) 308-4040</span>
</div>

And as you may know, you can use a free Schema generator to create a blob of Schema for your business – like MicrodataGenerator.com 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=”http://schema.org/LocalBusiness“>

“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, http://schema.org/Dentist or https://schema.org/AccountingService.

That might be easy if you used MicrodataGenerator.com 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=”http://schema.org/LocalBusiness“>

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 http://schema.org/ 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=”http://schema.org/HealthAndBeautyBusiness“>
<span itemprop=”name”>Face By Phil</span>
<div itemprop=”address” itemscope itemtype=”http://schema.org/PostalAddress”>
<span itemprop=”streetAddress”>86 Richards Ave</span>
<span itemprop=”addressLocality”>North Attleboro</span>,
<span itemprop=”addressRegion”>MA</span>
<span itemprop=”postalCode”>02760</span>
</div>
<span itemprop=”telephone”>(508) 308-4040</span>
</div>

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 Schema.org 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 (productontology.org).  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 http://schema.org/FoodEstablishment.  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: http://en.wikipedia.org/wiki/Delicatessen.

Now we have to turn it into a Productontology URI.  A Productontology URI begins with http://www.productontology.org/id/.  We take the last part of the Wiki URL, http://en.wikipedia.org/wiki/Delicatessen, and add it to the Productontology URI.

So the full Productontology URI for a deli becomes http://www.productontology.org/id/Delicatessen.

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=“http://schema.org/FoodEstablishment”>
<link itemprop=”additionalType” href=“http://www.productontology.org/id/Delicatessen”
 />
<span itemprop=”name”>Name of Deli</span>

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

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.

-David

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=”http://schema.org/HealthAndBeautyBusiness“>
<link itemprop=”additionalType” href=”http://www.productontology.org/doc/Laser_hair_removal” />
<span itemprop=”name”>Face By Phil</span>
<div itemprop=”address” itemscope itemtype=”http://schema.org/PostalAddress”>
<span itemprop=”streetAddress”>86 Richards Ave</span>
<span itemprop=”addressLocality”>North Attleboro</span>,
<span itemprop=”addressRegion”>MA</span>
<span itemprop=”postalCode”>02760</span>
</div>
<span itemprop=”telephone”>(508) 308-4040</span>
</div>

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:

Dermatologist:

Use in 1st line:  http://schema.org/Physician

Use in 2nd line:  http://www.productontology.org/id/Dermatology

Fertility clinic:

Use in 1st line:  http://schema.org/MedicalClinic

Use in 2nd line:  http://www.productontology.org/id/Fertility_clinic

Funeral home:

Use in 1st line:  http://schema.org/LocalBusiness

Use in 2nd line:  http://www.productontology.org/id/Funeral_home

Graphic designer:

Use in 1st line:  http://schema.org/ProfessionalService

Use in 2nd line:  http://www.productontology.org/id/Graphic_designer

Home inspector:

Use in 1st line:  http://schema.org/ProfessionalService

Use in 2nd line:  http://www.productontology.org/id/Home_inspection

Kennel:

Use in 1st line:  http://schema.org/LocalBusiness

Use in 2nd line:  http://www.productontology.org/id/Kennel

Landscape architect:

Use in 1st line:  http://schema.org/ProfessionalService

Use in 2nd line:  http://www.productontology.org/id/Landscape_architect

Laser hair removal service:

Use in 1st line:  http://schema.org/HealthAndBeautyBusiness

Use in 2nd line:  http://www.productontology.org/id/Laser_hair_removal

Magician:

Use in 1st line:  http://schema.org/EntertainmentBusiness

Use in 2nd line:  http://www.productontology.org/id/Magician

Music school:

Use in 1st line:  http://schema.org/School

Use in 2nd line:  http://www.productontology.org/id/Music_school

Pediatric dentist:

Use in 1st line:  http://schema.org/Dentist

Use in 2nd line:  http://www.productontology.org/id/Pediatric_dentistry

Personal Trainer:

Use in 1st line:  http://schema.org/HealthAndBeautyBusiness

Use in 2nd line:  http://www.productontology.org/id/Personal_trainer

Resort:

Use in 1st line:  http://schema.org/TouristAttraction

Use in 2nd line:  http://www.productontology.org/id/Resort

Tailor:

Use in 1st line:  http://schema.org/ProfessionalService

Use in 2nd line:  http://www.productontology.org/id/Tailor

Wedding photographer:

Use in 1st line:  http://schema.org/ProfessionalService

Use in 2nd line:  http://www.productontology.org/id/Wedding_photography

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

Comments

  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 productontology.org. 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!

    Dino

  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 schema.org 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:

      http://www.localvisibilitysystem.com/2014/03/10/10-guidelines-for-putting-nap-info-on-your-site-for-local-seo/

      @Jeffrey and Dino
      Thanks!

      @Robin
      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.

      David

  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:

    Item
    type: http://schema.org/attorney
    property:
    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,
      CA
      92018

      (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.

      David

  10. avatar Gene Maryushenko says:

    Very cool post Phil! Does it matter if its http://www.productontology.org/id/ or http://www.productontology.org/doc/ ? 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 :-)
    Anyone…
    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?
    e.g.
    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 schema.org markup to define business service areas?

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

      http://schema.org/AdministrativeArea

    • As Phil mentioned, using schema.org/AdministrativeArea 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.

      David

  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 productontology.org
    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

    Thanks

  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. http://www.domain.com/locations/city-1)

    • 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.

      David

  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
    Wilmington,
    NC
    28403

    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?
    Thanks,
    David

  24. This is a really awesome post. I had never heard of the http://www.productontology.org/doc/ 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?

    Cheers

    David

    • 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 http://schema.org/LocalBusiness or http://schema.org/Professional Service. And would it be weird to put Rental or Apartment in the second line? ie: http://www.productontology.org/id/Rental . Or should I stick with http://www.productontology.org/id/Property_Manager . ? 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

Trackbacks

  1. Picking the Right Local Schema.org 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 Schema.org 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 Schema.org Markup for Your Local Business, LocalVisibilitySystem.com […]

  4. […] How to Pick (or Improvise) the Right Schema.org 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 […]

Speak Your Mind

*