Optimizing Magento Menus, Navigation, and Breadcrumbs For SEO

under Magento SEO.

Your site's internal link structure is an important part of what makes the on site SEO tick, since it helps clarify in what contexts a page is relevant based on what types of pages it gets linked to from). Link structure also helps determine which pages have the most ranking power, since pages with more links directed toward them are assumed to be higher priority.

Let's talk about some important settings that impact your internal links in Magento 2.

Creating A Top Menu In Magento

So long as your Magento theme supports it, Magento comes with a top menu already in place. The top menu is populated with the category structure as you define it. To define your category structure, click on Catalog in the left sidebar and then click Categories in the Catalog pop out menu:

magento catalog categories

If you have any categories already, you will see a category tree, with "+" buttons next to each category to expand and see subcategories and "-" buttons to collapse them. Whether or not any categories have already been defined, there will be two buttons you can use to add categories, the Add Root Category button and the Add Subcategory button:

magento category tree

Root categories will appear in the top menu so that they are immediately visible. Subcategories will be created in the selected folder, and will only be visible after the user clicks or hovers their cursor over the parent category in the top menu (depending on how your theme is set up).

Click Add Root Category if you want to create a category that will be visible in the top menu without clicking anything, or select a category (or subcategory) and click Add Subcategory to add a subcategory to that category, which will be visible only after users select that parent category.

After clicking either button, you will see a list of fields to set for the category. Be sure to complete every relevant field for the category to function properly.

There is an Enable Category toggle that should be set to Yes if all of the content, products, and other settings are properly set, because this is what allows the category to be accessible to users at all.

The Include in Menu toggle also needs to be set to Yes in order for it to be added to the navigation.

magento category fields

The category will be added to your menu after you click the Save button in the top right corner of the screen.

How To Move Categories In Your Navigation

If you want to move a root category or subcategory so that it becomes a subcategory of another category, the process is very straightforward. Simply click and hold on the category that you want to move, drag it to the desired parent folder, and let go.

magento move category to folder

To place it in a specific order, drag it to the desired parent folder, wait for the parent folder to automatically un-collapse if it is collapsed, then move it to the desired location, and let go.

magento move category

You will see a warning message telling you that moving the category can take a long time. Click the Ok button if you are sure that you are moving it to the right location.

magento category moving warning

Unfortunately, if you want to simply move a parent category to a different location without changing it to a subcategory, the drag and drop interface doesn't support it. Be careful. If you drop a parent category into another parent category, it will become a subcategory and there is no way to make it a parent category again through the drag and drop interface.

See this StackOverflow post for details on how to edit your catalog table so that the category is changed back into a parent category.

Setting The Navigation Category Depth

One important SEO consideration is how many levels deep you want your menu to display. If the menu pop ups go deep enough to list every parent category and subcategory, then every category and subcategory will receive a link from every page on the site through the top navigation.

The good thing about this is that your subcategories will be easily indexed.

A double edged sword of doing this is that your subcategories will have more SEO authority, but your parent categories will have less, since every link on a page dilutes the authority of each link.

If every subcategory is accessible from the main navigation, this flat architecture can also make it more difficult for search engines to determine relevance and the semantic hierarchy of your site. If subcategories are only accessible from links on the parent category page, the context in which they are relevant and the topics related to those categories will be clear since they are only linked from related pages.

You will need to weigh these pros and cons against each other to determine how many levels deep you want your navigation to go.

To set the navigation depth, click Stores in the left sidebar, then click Configuration under Settings in the pop out menu:

magento store configuration

In the left panel, click Catalog and then select the Catalog option that will appear beneath it:

magento catalog catalog

Now scroll down to the Category Top Navigation section and click the expand arrow if necessary to see the fields for the section. There is a Maximal Depth field which determines how many layers deep the drop down menus will go before subcategories are no longer displayed.

If the depth is set to 0, there are no limits to how deep the menu will go. This displays all categories and subcategories. Bear in mind that this is dependent on your theme as well, since not all themes support infinite menu depth, and some don't even support more than one.

If you want to set a maximum depth, uncheck the Use system value check box and enter the number of subcategory levels you want to be accessible from the menu:

magento navigation depth

Don't forget to click Save Config in the top right corner of the screen when you are done.

How To Add A Page To The Menu

It might seem like this should be straightforward, but Magento doesn't actually have any simple way to add a link to the menu without code.

You can, however, still add a page to the menu by creating a category without any products and using a CMS block to copy over your page.

If you do this, make sure that the page you are using to get your code is not set to be accessible, or you will have duplicate content for the page and the category it is created from.

Start by going to Content > Pages in the left sidebar:

magento content pages

Find the page name you are looking for listed in the Title column, then click the Select link in the Action column and click the Edit link from the drop down menu:

magento edit page

Expand the Content section and click the Show / Hide Editor button to hide the editor and show the page code:

hide editor to get plain code from magento page

Now select the the page code and copy it. You can do this by clicking inside the box and pushing Ctrl+A on your keyboard to select all of the code, then pushing Ctrl+C on your keyboard to copy it:

magento copy page code

Now we need to make this content into a content block. To do this, go to Content > Blocks in the left sidebar:

magento content blocks

Now click the Add New Block button in the top right corner of the page:

magento add new block

Now scroll down to the content editor and click the Show / Hide Editor button to hide the editor, and paste (Ctrl+V) your page code into the plain HTML text box. Add a Block Title and Identifier that are the same as your page name, or something just as easy to identify. Finally, click Save Block.

magento create cms block from page content

Finally, you will need to create a new category as described above.

After creating the category and adding a Category Name, scroll down to the Content section and click the arrow to expand it. Click the Add CMS Block drop down and click the name of the CMS block you just created.

magento add category with cms block

Do not add any products to the category. Scroll down to the Display Settings section and click the arrow to expand it, click the Display Mode drop down button and select Static block only. 

magento category display block only

You can now fill out the meta data in the Search Engine Optimization section and click the Save button in the top right corner.

Is There A Way To Show Categories In The Left Sidebar?

Magento doesn't offer any out of the box way to add sidebar navigation. You can, however, use an extension like Amasty Flexible Menu to add one, as well as more easily add links and make other changes to your menu that don't need to be handled by category trees as discussed above. You can also search for themes that include sidebar navigation by default.

Magento Breadcrumb Settings

Breadcrumb links are links that appear, usually near the top or bottom of a page, that help users navigate through the site's hierarchy. They also help clarify your site's semantic hierarchy to search engines. They look like this:

Home > Category > Subcategory > Product

From an SEO perspective, the great thing about this is that each category gets a link from every product that exists under that category. This helps clarify what the category is really about, and affords it some SEO authority.

To edit the breadcrumb settings, start by going to Stores > Configuration in the left sidebar menu:

magento store configuration

Now, in the left panel (to the right of the left sidebar), navigate to General > Web, then scroll down to the Default Pages section and click the arrow to expand it:

magento default pages

To show breadcrumbs on pages, make sure that Yes is selected from the Show Breadcrumbs for CMS Pages drop down. You may need to uncheck Use system value to change the value if it is set to No.

magento show breadcrumbs on pages

Don't forget to click Save Config when you are done.

Other breadcrumb settings can only be adjusted by choosing the appropriate theme, downloading an extension, or editing your theme code.