I have a website, a blog, and several social media profiles. I want to explain the relation between these online presences to search engines using Schema.org.
From
I think there is no reason to handle the blog (which, if not integrated in your primary site, is also a kind of website) differently from how you handle the primary website, assuming that both are personal sites (i.e., representing you in some way), whether you use contactPoint, sameAs, or url.
There is also another way, and this one allows you to provide data about the URLs (e.g., to make the relationship clear):
WebSite (as well as Blog) allows you to reference a Person
item with properties like:
If you don’t want to provide top-level objects for WebSite
/Blog
, you could use JSON-LD’s @reverse keyword:
{
"@context": "http://schema.org",
"@type": "Person",
"name": "John Doe",
"@reverse": {
"author":
[
{
"@type": "WebSite",
"url": "https://example.com/"
},
{
"@type": ["Blog", "WebSite"],
"url": "https://blog.example.com/"
}
]
}
}
But using multiple top-level objects (e.g., with @graph), each with its @id, is more flexible.