What is the proper way to annotate a breadcrumb with Schema.org annotations, if I want to skip the first level of a URL?
Example:
URL:
/it/songs/wish-you-were-here
The result on Google:
example.com > IT > Songs > Wish You Were Here
As the first level is just the language indicator, my ideal result would rather be:
example.com > Songs > Wish You Were Here
but I could also live with
example.com/it > Songs > Wish You Were Here
Is there any way to achieve this result? I would rather not play around too much, as it takes time to propagate the changes.
The annotation:
{
"@context": "http://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "http://example.com/it",
"name": "IT"
}
},{
"@type": "ListItem",
"position": 2,
"item": {
"@id": "http://example.com/it/songs",
"name": "Songs"
}
},{
"@type": "ListItem",
"position": 3,
"item": {
"@id": "http://example.com/it/songs/wish-you-were-here",
"name": "Wish you Were Here"
}
}]
}
Google doesn’t document this on their Breadcrumbs page, so it’s not clear how this can be controlled (if at all). Not all of their features can be controlled with structured data.
Specifying the canonical URL of the homepage (i.e., including the language tag as first path segment) as first crumb seems to make sense. It signals that it’s one crumb, so if Google Search displays it as two crumbs, they seem to ignore the structured data in that regard. If that’s the case, you could try two things:
Provide a WebSite
item, giving the canonical URL for your site (i.e., the homepage) with url
. (Like in the example for the Sitelinks Searchbox.)
{
"@type": "WebSite",
"url": "https://example.com/it"
}
Omit the crumb for the homepage. (All of Google’s examples omit it.)
{
"@type": "ListItem",
"position": 1,
"item": {
"@id": "http://example.com/it/songs",
"name": "Songs"
}
}
(I would try the first one first. It’s typically a good idea to have a WebSite
item anyway.)
Note that you are not using absolute URLs in your @id
values.
If the snippet is included in the page at http://example.com/it/songs/wish-you-were-here
, the @id
for that page in the breadcrumbs would be http://example.com/it/songs/example.com/it/songs/wish-you-were-here
, which is likely not what you want.
So either use /it/songs/wish-you-were-here
or http://example.com/it/songs/wish-you-were-here
.
(If this was not just an error in your question, you might want to fix it first and wait some time, to check if that changes how Google Search displays your breadcrumbs.)