PrestaShop category not showing in the menu: 6 things to check
When a category doesn't show in the PrestaShop menu, most often it hasn't been added to the main menu module. Open Modules → Module Manager, search for Main menu and click Configure. Move the category from the list of available items to the selected ones and save. If that doesn't help, clear the cache and check that the category is enabled.
Author: The TellMyShop team. A guide for PrestaShop store owners: the cause, the manual fix and the same work in a chat conversation.
Last updated: · 6 min read
Quick answer: symptom and cause
Before you start clicking, match the symptom to the cause. The table starts with the most common cases.
| What you see | Most likely cause | Where to fix it |
|---|---|---|
| A new top-level category isn't in the menu | it wasn't added to the menu module | Main menu module settings |
| Added, but not visible in the store | the cache is showing the old menu | Advanced Parameters → Performance, clear the cache |
| The category isn't visible in the menu or at its URL | the category is disabled | Catalog → Categories, Displayed column |
| You see it when logged in, the customer doesn't | no access for the Visitor or Guest group | category edit screen, group access section |
| The menu in the store looks different from the settings | the theme uses its own menu module | the theme's menu module |
| Missing in one language only | empty name in that language | category edit screen, language flag |
How to add a category to the menu step by step
In the Classic theme and many themes based on it, the menu comes from the ps_mainmenu module. Its settings screen is described in the Main menu module documentation: selected items on the left, available ones on the right.
- Open Modules → Module Manager and search for “menu”.
- Next to the Main menu module, click Configure.
- In the list of available items, select your category and click Add.
- Use the arrows to set where in the menu it should appear.
- Save the settings.
- Clear the cache in Advanced Parameters → Performance.
- Open the store in a private browser window and check the menu, on a phone too.
If you add a parent category to the menu, its subcategories appear as a drop-down list. You don't need to add each one separately. A new subcategory in that branch will appear by itself once the cache is cleared.
You'll find the module's code and change history in the ps_mainmenu repository.
The category is in the menu, but the store still doesn't show it
Then check the category itself. The fields and the category tree are described in the PrestaShop 8 user guide on managing categories.
The category is disabled. In the list in Catalog → Categories, the Displayed column has a red mark. A disabled category disappears from the menu and the store. A customer visiting its URL sees an error.
Customer groups have no access. The category edit screen has a list of groups that can see it. If you don't tick the Visitor and Guest groups, only you see the category when logged into a customer account. That is a common reason for “it works for me”.
The category is in the wrong place in the tree. When a new category hangs under a different branch than you think, it appears as a subcategory of that item, not at the top of the menu. Check its parent category.
A name is missing in one language. In a multilingual store, the menu in each version shows the name in that language. An empty name means an empty item or none at all.
The cache. The menu is cached so the store runs faster. After changing settings the cache has to be cleared. More on this in the piece on why changes aren't visible in PrestaShop.
When the theme has its own menu
Some themes bought from template marketplaces have their own menu module, often with a large multi-column menu. Then the Main menu settings change nothing, because a different module runs in the header. You can check this in Design → Positions: next to the header position you'll see which module is displayed there. You add the category in that module's settings, following the theme author's instructions.
If you don't know which module displays the menu, the chat will check. The module list shows which places on the page each one displays in. An example of such a request is in the use case find the module that displays an element on the page.
Does the menu matter for Google?
It does. In its guide to online store structure, Google says it uses links in the menu and between pages to judge how important a page is and how the store is built. A category that no link from the menu or another category leads to is harder for Google to find. The sitemap helps a little, but doesn't replace a link.
That doesn't mean every category has to be at the top of the menu. It is enough that customers and Google can reach it in a few clicks: from the menu to the parent category, and from there to the subcategory. A menu with dozens of top-level items tires the customer more than one missing item.
While tidying the menu, look at categories with no products. A menu item that leads to an empty page puts a customer off faster than having no item at all.
How the chat fixes the menu in your store
You describe the problem in plain words. Your chat (Claude or ChatGPT) reads the category tree, checks whether the category is enabled and visible to customers, works out which module produces the menu and compares its settings with the tree.
You: I added a Garden lamps category, but it isn't in the menu.
Your chat: The category is enabled and has products. The menu comes from the Main menu module, and Garden lamps isn't on its list of items. I suggest adding it after the Lighting category:
You: Yes, add it.
Your chat: That is a module settings change. Turn on the Modules switch in the TellMyShop panel and I'll show you a preview to approve. After that the cache needs clearing, which needs the Theme switch.
old version: Lighting, Furniture, Decorations
new version: Lighting, Garden lamps, Furniture, Decorations
The category names in the example are samples.
In TellMyShop Free the chat reads the category tree and the module list, so it points out the cause and tells you what to click. It saves nothing. In TellMyShop Pro the chat can enable a disabled category or fix its name straight away, because that is the Catalogue area. It changes menu settings after you turn on the Modules switch, and clears the cache with the Theme switch. Both work for 24 hours and need a database backup from today, which the module makes itself. See also the use case reviewing and changing module settings.
You see every change in a preview before saving, and afterwards in the change history. You can undo most changes with one request. Plans are on the pricing page. When the category is in the menu but the customer can't see products in it, read the piece on why a product isn't showing in the store.
Questions and answers
Why doesn't a new category appear in the menu by itself?
The main menu module only shows items someone has added to it. A new top-level category doesn't get there automatically. A subcategory only appears by itself when its parent category is in the menu.
Where do I edit the main menu in PrestaShop?
In the Classic theme the menu comes from the Main menu module (ps_mainmenu). You'll find it in Modules → Module Manager, with the Configure button. If your theme has its own menu, you set it in that theme's module.
I added the category to the menu, but the store still doesn't show it. What next?
First clear the cache in Advanced Parameters → Performance and refresh the page in a private window. Then check that the category is enabled and that the Visitor group has access to it.
Does an empty category show in the menu?
The main menu module shows it if it is enabled and added to the menu, even with no products. The customer then lands on an empty page, so it is better to assign products to it first.
Can the chat add a category to the menu by itself?
Yes, in TellMyShop Pro after you turn on the Modules switch for 24 hours. The chat shows a preview of the new menu settings and saves them only after your “yes”. In the free version it points out the cause but doesn't change anything.
PrestaShop is a registered trademark of PrestaShop SA. Claude is a trademark of Anthropic PBC. ChatGPT and OpenAI are trademarks of OpenAI. TellMyShop is not affiliated with these companies.