Should the first breadcrumb not be the home page?

Good question! I'd never thought of attempting to redefine/rename the root.

The root directory is assumed to be the domain itself. By defining it with a link, you've caused it to create a new directory 'Home' that is assuming the same position as the root. This has created both the assumed root and the 'Home' directory in the structure and the situation you've outlined in your question.

Extrapolating from this - it would appear that not defining your root directory is the best practice. Instead, define only the sub directories/categories/topics after the root. Where these are different language sites dynamically created on the main domain using, say, a query string: Then best practice would be to do what you've done above and re-define the root depending on the region targeted (usa+google.com, UK+google.co.uk, etc.).


One thing you should try is using the domain instead of a relative slash / for home. But if that doesn't fix it, yes there is an error. Google shouldn't be displaying home like that, it takes the form of domain. Why? Who knows. But here is what we do, this could change at any time:

If you properly mark up your breadcrumbs with the older data-vocab syntax you will not have issues. For some reason Google and friends have been dropping the ball (or kicking it around) on Schema.org breadcrumb/list support, especially via JSON-LD, to the point that we have been waiting almost a year as of Jun2 2016 to drop data-vocab from our sites.

It's similar behavior to how they recommended JSON-LD markup for things like product reviews, then backtracked and said they don't recommend it with a tiny alerts on the docs, before finally recommending it again before they actually "activated" it in SERPS. The result was on-off-on-wrong-off-wtf-on-off-on style product markup in SERPS.

So our solution right now, is to put Schema.org right beside the older data-vocab inline markup within the breadcrumbs. Both entity styles are found and "validated" in GWT without errors, but whenever we test removing the data-vocab, the schema on JSON-LD causes hiccups or non-displays. Here is an example of the markup in case you were curious:

<div class="breadcrumb">
<script type="application/ld+json"> {
"@context" : "http://schema.org",
"@type" : "BreadcrumbList",
"itemListElement" : [
    {
    "@type" : "ListItem",
    "position" : 1,
    "item" : {
        "@id" : "https://www.example.com/",
        "name" : "Home"
        }
    },  {
    "@type" : "ListItem",
    "position" : 2,
    "item" : {
        "@id" : "https://www.example.com/parent",
        "name" : "Parent Category"
        }
    },  {
    "@type" : "ListItem",
    "position" : 3,
    "item" : {
        "@id" : "https://www.example.com/parent/child",
        "name" : "Child Category"
        }
    }
]}
</script>
<span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
<a href="https://www.example.com/" itemprop="url"><span itemprop="title">Home</span></a></span>
<span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
» <a href="https://www.example.com/parent" itemprop="url"><span itemprop="title">Parent Category</span></a></span>
<span itemscope="" itemtype="http://data-vocabulary.org/Breadcrumb">
» <a href="https://www.example.com/parent/child" itemprop="url"><span itemprop="title">Child Category</span></a></span>
</div>

In answer to the titular question: Yes, it is best practice to include Home in the breadcrumb because it's the starting point in the path to the current page. Without the starting point displayed, it's not so clear in showing the path to the current page.

Similarly, it is also best practice to mention the current page at the end of the breadcrumb, as it's the endpoint which is an equally vital reference when trying to clearly show the path to the current page.

This is basic logic for accessibile web design; but as Google's microdata vocabulary is still in its infancy, it doesn't always accommodate best practices of accessible web design. Therefore, like you've done, you do have to strip the microdata from Home item in order for things to display correctly in Google search results these days.

Regarding your Update 3, about breadcrumbs not showing for top-level pages/categories, of course they don't! Because the breadcrumb would only be Home (start point) > Category Name (end point). The start point is displayed in the form of the domain name, and the end point is displayed in the form of the big blue title text at the top.