I am working on my following SEO-friendly navigation:
<nav itemprop="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">
<ul id="hornavmenu" class="nav navbar-nav">
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem" >
<a href="index.html" class="fa-home active" itemprop="item"><span itemprop="name">Start</span></a>
</li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem" >
<a href="about.html" class="fa-group " itemprop="item"><span itemprop="name">About</span></a>
</li>
<li itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem" >
<a href="contact.html" class="fa-comment " itemprop="item"><span itemprop="name">Contact</span></a>
</li>
</ul>
</nav>
So the problem is, that in Google Search the Breadcrumblist looks like this:
URL -> Start -> About -> Contact
Of course that’s wrong, but what is wrong in the code? Additionally, I would like to add:
<nav itemscope="itemscope" itemtype="http://www.schema.org/SiteNavigationElement">
…
</nav>
…but where do I add the BreadcrumbList and how do I merge these two?
2
Answers
Google doesn’t encourage the inclusion of a ‘home’ link in the breadcrumb list, as shown on Google’s Breadcrumbs page where all examples omit a home point. Breadcrumbs are not for primary navigation and you should have a sufficient link to root elsewhere.
In my experience with using BreadcrumbList, Google does omit the ‘home’ link from breadcrumbs in the SERPs when the link points to the domain. In this case, you’re using ‘index.html’ which could be a different page to ‘example.com’.
SiteNavigationElement is used to indicate the primary navigation for the site. As mentioned breadcrumbs are not this. Use SiteNavigationElement for your actual navigation. For more details, see What is the correct use of schema.org SiteNavigationElement?.
The
BreadcrumbList
type is for breadcrumbs. Don’t use it for something else.In your case, it seems to be a navigation menu. The
SiteNavigationElement
type can be used for these. It could look like:As you can see, it’s for the whole navigation, not for single navigation links. So don’t use
name
orurl
for the links.If you want to provide structured data about each linked page, you could use
ItemList
together withSiteNavigationElement
. This would be similar to yourBreadcrumbList
example.NB: I recommend not to use
SiteNavigationElement
at all, unless you have a specific use case or consumer in mind (in which case you should follow their documentation).