schema.orgjson-ldgoogle-rich-snippets

LocalBusiness & Organization schema together in JSON-LD


I have a local business, I have a blog, and I have services. I'm a digital marketer, you can see my schema here: https://www.sitecentre.com.au (view the source code). Most of it's on the home page, but some is on blog articles are /blog and click an article.

I feel as if I'm doing it wrong.

Schema is really confusing, so Google has announced, don't include Organization schema on every page, it's only needed on one. So, I set the "@id": "https://www.example.com/#Organisation" and I add that schema to the home page only, now where do I put my LocalBusiness? I can set it to "@id": "https://www.example.com/#LocalBusiness".

Then I add WebSite and WebPage to the home page as well.

Now let's say one of my service pages like Hosting.

I don't need LocalBusiness or Organization on this page? Because it's on the home page? Am I right here? So on the Service page I could have Service schema, Review, WebPage but not WebSite, and BreadcrumbList?

The issue is if I then do something like publisher and call the organisation url it fails in the Google Schema Tester because Organization isn't found on that page.

Same goes for the blog. Obviously, on a blog I need to have a publisher like: "publisher": { "@id": "https://www.example.com/#Organisation" }.

This will fail because Organization schema is on the home page. Not the current page.

It gets technical because on the home page Google recognizes only LocalBusiness not Organization because both are on there.

It's hard to workout what to do.

Now if I do something like put all my Organization or LocalBusiness schema on the home page then on blog I put both but with limited data and have the @id pointing to the home page I can pass validation but does this not overwrite the home page or because the @id matches the home page it uses the home page?

Does anyone have an answer? Please don't link me to the definition or some generator. I've read it all. Trust me, I've read IT ALL. The confusion isn't how to write Schema.org or why. It's answering a question based on experience because the answer isn't actually out there.


Solution

  • LocalBusiness is a sub-type of Organization. What this means is you can switch your Organization entity to be a LocalBusiness entity and it will still function as an Organization, with the extra bits that LocalBusiness add.

    So you can add a detailed LocalBusiness on the home page that includes all the Organization info and the LocalBusiness info. And give it an id like you suggested:

    https://www.example.com/#LocalBusiness
    

    This is how you can reference it from other pages. When you need to reference your business, include a very basic version of the LocalBusiness that includes the type, name, its id and the url. That's enough info needed on those other pages, while also indicating there is more info available about the business under that id and url. e.g.

    "publisher": {
      "@type": "LocalBusiness",
      "@id": "https://www.example.com/#LocalBusiness",
      "url": "https://www.example.com/",
      "name": "Example Ltd"
    }