
This outlines the recommended schema types and key properties for a typical blog post page on a website representing a business with multiple physical locations.
WebPage
: Describes the blog post page itself.mainEntity
: Should point to theBlogPosting
(orArticle
) schema. This is consistent.isPartOf
: Should point to theWebSite
schema. This remains consistent.publisher
: Should point to the overallOrganization
schema, not to a specificLocalBusiness
schema. This is a key difference from a single-location business.- Breadcrumb: Include correct breadcrumb schema.
BlogPosting
(orArticle
): Describes the content of the blog post.headline
: The title of the blog post.datePublished
: The original publication date (ISO 8601 format).dateModified
: The date the post was last modified (ISO 8601 format).publisher
: A link to the overallOrganization
schema Do not useLocalBusiness
here.image
: A relevant image for the blog post (withImageObject
details).description
: The excerpt or meta description of the blog post.wordCount
: (Optional)articleSection
: (Optional)
Person
: Describes the author of the blog post.- The full
Person
schema should not be embedded within theBlogPosting
. It should exist separately (ideally on an author profile page). - The blog post should link via author.
- The full
Organization
: Describes the overall business (e.g., “Fur Life Vet”).- The full
Organization
schema should only appear on the homepage, and potentially “About Us” and general “Contact Us” pages. - The article should link back via the publisher.
- The full
LocalBusiness
:NOT directly on the blog post page.LocalBusiness
schema is critically important for multi-location businesses, but it belongs on the individual location pages, not on general blog posts.- If a specific blog post is primarily about a particular location, you could use the
about
ormentions
property within theBlogPosting
to reference the relevantLocalBusiness
schema, but theLocalBusiness
schema itself would not be the primary focus of the blog post page.
WebSite
Describes the website.- Exists on the home page
BreadcrumbList
Present on all pages, reflecting the structure.

Conceptual JSON-LD Example (Multi-Location Business Blog Post):
HTML
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
{
"@type": "WebPage",
"@id": "[Blog Post URL]#webpage",
"url": "[Blog Post URL]",
"name": "[Blog Post Title] - [Website Name]",
"description": "[Blog Post Excerpt/Meta Description]",
"isPartOf": {
"@type": "WebSite",
"@id": "[Homepage URL]#website"
},
"publisher": { // <-- Points to the overall Organization
"@type": "Organization",
"@id": "[Homepage URL]#organization"
},
"breadcrumb": {
"@type": "BreadcrumbList",
"@id": "[Blog Post URL]#breadcrumb",
"itemListElement": [
{
"@type": "ListItem",
"position": 1,
"name": "Home",
"item": "[Homepage URL]"
},
{
"@type": "ListItem",
"position": 2,
"name": "Blog",
"item": "[Blog URL]"
},
{
"@type": "ListItem",
"position": 3,
"name": "[Blog post Title]",
"item": "[Blog Post URL]"
}
]
},
"mainEntity": { // <-- Points to the BlogPosting
"@type": "BlogPosting",
"@id": "[Blog Post URL]#article"
}
},
{
"@type": "WebSite",
"@id": "[Homepage URL]#website",
"url": "[Homepage URL]",
"name": "[Website Name]",
"potentialAction": {
"@type": "SearchAction",
"target": {
"@type": "EntryPoint",
"urlTemplate": "[Homepage URL]/?s={search_term_string}"
},
"query-input": "required name=search_term_string"
}
},
{
"@type": "BlogPosting",
"@id": "[Blog Post URL]#article",
"headline": "[Blog Post Title]",
"datePublished": "[YYYY-MM-DDTHH:MM:SS+ZZ:ZZ]",
"dateModified": "[YYYY-MM-DDTHH:MM:SS+ZZ:ZZ]",
"author": { // <-- Reference to Person schema
"@type": "Person",
"@id": "[Author Profile Page URL]#person",
"name": "[Author Name]",
"url": "[Author URL]"
},
"publisher": { // <-- Reference to Organization schema
"@type": "Organization",
"@id": "[Homepage URL]#organization"
},
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "[Blog Post URL]#webpage"
},
"image": {
"@type": "ImageObject",
"url": "[Featured Image URL]",
"width": [Image Width],
"height": [Image Height]
},
"description": "[Blog Post Excerpt/Meta Description]",
"wordCount": "[Blog Post Word Count]",
"articleSection": "[Blog Post Category/Section]"
// ... other BlogPosting properties ...
},
{
"@type": "Organization",
"@id": "[Homepage URL]#organization",
// ... *Full* Organization schema for the overall business ...
// (This appears on the homepage, About, Contact)
},
{
"@type" => "Person",
"@id" => "[Author Page URL]#person",
//Person details.
}
// NO LocalBusiness schema here, unless the post is *specifically* about a location
]
}
</script>
Key Differences from Single-Location:
publisher
inBlogPosting
: Points to the overallOrganization
schema, not to a location-specificLocalBusiness
.- No
LocalBusiness
on Blog Post (Generally): TheLocalBusiness
schema belongs on the individual location pages, not on general blog posts. - About/Mentions: If you have a post specifically about a location, consider mentioning it, but do not use LocalBusiness as the main schema.
Implementation Notes:
- Dynamic Values: As always, use your CMS and schema plugin to dynamically populate the placeholders (URLs, dates, titles, etc.).
- Remove any other schema: Ensure no other schema is present.
In summary, for a multi-location business, the blog post schema should reference the overall Organization
as the publisher
, link to the Person
schema for the author, and not include LocalBusiness
schema unless the post is exclusively about a single location. The WebPage
and BlogPosting
schemas remain essential, and the structure is very similar to a single-location setup, but the publisher
and the absence of LocalBusiness
are the key distinctions.
Related Posts
- This is the end of the road. Click the Read Our Blogs button below to get back to the main blogs section.
Frequently Asked Questions about Blog Page Schema Reference
Listed below are some of the main areas you should have an understanding on about Blog Page Schema Reference.