This is something that a lot of Shopify Plus stores either seem to get wrong or they prioritise journey-based breadcrumbs, in my opinion – so I decided to write up what I consider to be best practice, from both an SEO and usability perspective. Although the ideal scenario would be that product URLs would remain top-level and the breadcrumbs would still be based on the user’s journey from a product listing page, this is very hard to achieve and very few have made it work properly.
With this in mind, the solution that I generally recommend involves switching to top-level product URLs (without the collection path – more detail on that here) and then using one of the following approaches to insert a fixed breadcrumb trail:
- Use metafields to allow for one or two manually selected links to be inserted in the breadcrumb trail
- Rule-based logic to insert collection links based on tags
In the majority of cases, we’ve gone down the metafields route, as it gives you freedom over the links and you can always change them. This would be manually managed and it would likely be one or two categories that make sense to the average user journey. Although not 100% optimal, one benefit of this approach is that you have complete control over where the link equity is being passed.
If you go down the tag route, you can essentially say if tagged with “mens”, add a link to the mens collection, for example. This could get quite bloated quite quickly, but if you want to keep things very simple you can go down this route and just include a link to the main parent collection.
In order to create the metafields solution, you need to add the code into the template to pull the metafield values onto the product page template. You can use one of the metafields editing apps (e.g. Metafields Guru) to add the links that you want to appear against each product. You can also do a CSV import / export using Excelify so make this process faster and more efficient.
The overall benefit of going with this approach instead of the native solution is that you avoid having multiple PDPs for each product that then need to be crawled and can be indexed separately. Although Shopify set the canonical URL on these to the top-level version, it’s still not optimal in my view and experience.
If you have any questions on this, feel free to add them in the comments or drop me an email.