From our forthcoming ebook SEO Basics for Adobe Commerce (Magento 2), in cooperation with SEO specialists NOVOS, and ecommerce consultancy Vervaunt, this extract focuses on best practice for internal linking.


Breadcrumbs are automatically enabled by default in Magento 2 and are recommended for SEO to improve vertical linking across Magento sites. However, there are some aspects of default Magento 2 websites that can be improved.

Extended breadcrumbs containing multiple subfolders on product pages

Product page breadcrumbs on Magento 2 may require some further customisation to ensure they are as beneficial for SEO & customers as they can be. In particular, ensuring that product pages list the full category path, including all subcategories, is recommended.

By default, this is not selected in Magento 2, however, using an extension such as Magento 2 Breadcrumbs by Mageworx, you can ensure that the longest path is used, containing links to all subcategories.

Static breadcrumbs vs dynamic breadcrumbs 

On some Magento 2 websites, the breadcrumbs change based upon the path a customer has taken to a specific site. This may sound useful (and is in some cases), however, can be a drawback if the customer lands directly on a product page, without having navigated through the site. In this case, it is likely that a very short breadcrumb will show, not including categories or subcategories that may be very useful for a browsing customer. This has the additional drawback of giving mixed signals to search engines about the vertical structure of the site when crawled (although Google have stated that they can manage multiple breadcrumb paths, it still may not be optimal for SEO).

Static breadcrumbs give a clearer representation of the site, as they do not change depending upon user behaviour, however, they arguably are not as useful for customers.

Breadcrumbs can also be removed from CMS pages using the following methodology. To disable breadcrumbs on category or product pages you need to add specific code to the site, however, we would not recommend removing breadcrumbs due to their SEO and user benefits.

HTML sitemap

As mentioned previously Magento 2 does not have HTML sitemap capacity by default, however, this is very easily added via an extension such as Amasty. Most of these extensions allow you to select which pages to include within this, including categories, CMS pages, products etc.

This allows any page within your site to be linked to and prevents pages from being stuck very deep in the site (or not linked to at all), helping to ensure search engines can crawl all pages on the site regularly. For large Magento sites with lots of categories, this can be a huge blessing.


A common issue on Magento 2 websites is the creation of thousands of duplicate, crawlable, pages due to filters that apply parameters on URLs. Whilst filters are great for user experience, they should be managed correctly for SEO.

Depending upon your setup, a variety of fixes for this are possible:

  • Blocking filter parameters in robots.txt
  • Including nofollow attributes on filter links
  • Ensuring only certain filters are crawlable, or filter URLs that only generate in a particular order to prevent duplication (if indexing filters in Magento 2, these pages should also have a bespoke h1 and page title)

Leaving filters unmanaged can result in mass duplication of pages, and can increase the size of Magento 2 websites significantly, leaving search engines to crawl low quality, unoptimised filter pages en masse which can hugely impact SEO. Ensuring internal links via filters are managed is therefore a key area of focus on Magento 2.

Extensions applying parameters to internal links

Some extensions may apply parameters to internal links in order to track customer behaviour and/or serve them personalised products, for example in the case of "You May Also Like" sections.

Whilst potentially useful for customers, this can open up a large number of additional URLs for search engines to crawl and may draw attention away from core non-parameterised pages that you want to rank.

The first step is to ensure that these parameterised URLs are canonicalised to their clean, non-parameterised version so that parameter pages are not indexed and potentially competing against other pages in the search results.

If there is an option to remove parameters from extensions, this is worth investigating, however, it's likely that any personalisation aspect is dependent upon them. If this is the case, you can either consider applying a nofollow to these links to prevent search engines from crawling them, or keeping them as they are as a trade-off between user experience via personalised product links and internal linking benefits.

The "best" option here is very dependent upon business priorities and how much of an impact the parameter URLs are perceived to have, therefore there is no one solution. However, it is an area well worth considering on your Magento 2 website.