Breadcrumbs can be so frustrating, yet so useful. They give users a shortcut to other parts of your website, as well as a snapshot of the site hierarchy. But, you have to implement them correctly. This is how I accidentally discovered that, and a neat trick by comparing two plugins: Yoast SEO and Breadcrumb NavXT.
I’ve never been able to get breadcrumbs working successfully with Yoast, and I recently thought I had made a breakthrough. I got the breadcrumbs to work, but in comparing the result to another breadcrumbs plugin, NavXT, I thought I had found a problem with Yoast.
I have a blog page that lists posts from a particular category, so the order of visit should be the home page, then the blog page, than the post, like this, where Linux is the name of the blog page, and Linux Update is the name of the article.
Home > Linux > Linux Update
And that result is what NavXt produces. But Yoast produces this:
Home > Linux Update
What happened to the intermediate page? After researching how breadcrumbs work, I found out why: breadcrumbs plugins track posts, not pages. If a post has a parent, then that title shows to the left of the current page in the breadcrumb trail. If not, it shows category to the left. It just so happens that my Linux archive page has the same name as the category, so NavXT was showing what I wanted.
Multiple categories creates a problem
At this point, it looked like I should use NavXT. But, another problem popped up–I sometimes use multiple categories for a post. So, if I had categories Linux and Blog for the post, which category is going to show up in breadcrumbs?
In comparing both plugin implementations, it appears that NavXT uses whatever category its algorithm allows, with no control allowed by the user (me). For example, if I want the Linux Update article to use category Linux is its primary path, sometimes referred to as canonical, NavXT might, instead, show Blog as the category in the breadcrumbs trail.
Yoast bails you out
Yoast, on the other hand, allows the user to select the primary category when multiple categories are used for a post. This allows the user to control the canonical path for breadcrumbs, and is therefore a better choice, since it forces conformity to the primary category.
Even with Yoast, this can still be confusing to the user, since, they will still get Linux to appear as the category in the breadcrumb path when they selected the Blog category, but at least it remains consistent for search engines. And the use will be shown the ‘correct’ path.
As far as I can determine, this is the best of both approaches, as it still allows the user to get to a post from multiple categories, yet retain the canonical path for search engines, and enhance user awareness of the site hierarchy.