Managing Menus and Menu Modules in Joomla 6: The Complete Advanced Guide
Quick Answer
Advanced menu management in Joomla 6 means combining several purpose-built menus, nesting menu items several levels deep with the redesigned drag-and-drop Menu Manager, using a Menu Item Alias to stop duplicate URLs, scoping each menu module to specific pages with Menu Assignment, locking items down with Access Levels, and β when you need full control β overriding mod_menu at the template level.
| What you'll need | Details |
|---|---|
| Joomla version | 6.0 or later. This guide is written against 6.1.3 (current stable as of August 2026). |
| Access level | Super User, or a user group with Menu Manager and Module Manager permissions. |
| Starting point | At least one menu with a few basic items already created. |
| Template | Any Joomla 6 template with multi-level dropdown support (Cassiopeia works out of the box). |
| Optional | File Manager or FTP access β only needed for the template override in Step 6. |
This guide picks up where the basics leave off. If you haven't created a menu or a menu item yet, start with our beginner guide to menus in Joomla 6 first. From here, we're covering the parts that trip up intermediate builders: running several menus at once, nesting items cleanly, keeping URLs duplicate-free, controlling exactly where each module shows up, and locking parts of the navigation down by user group.
Menu vs. Menu Module: A 10-Second Recap
A menu is the data structure β the ordered, nestable list of items (Home, Blog, Contact, and so on) and where each one points. A menu module is what actually renders that structure on the front end, in a module position of your choosing, like the header, sidebar, or footer. One menu can feed more than one module at the same time, each with its own position, styling, and depth settings β that separation is what makes advanced layouts possible.
Step 1: Plan Separate Menus for Separate Site Sections
Before touching module settings, decide how many menus your site actually needs. A single flat "Main Menu" works for small sites, but once a site grows a help center, a members' area, or a footer with its own link set, splitting these into dedicated menus keeps each one easier to reason about and to assign independently.
| Menu | Typical purpose | Usually shown to |
|---|---|---|
| Main Menu | Primary site navigation | Everyone |
| Footer Menu | Legal links, sitemap, secondary pages | Everyone |
| Support Menu | Navigation local to a help center or docs section | Everyone, but only on those pages |
| User Menu | Account, profile, logout links | Logged-in users only |
Each menu still needs its own module to appear anywhere β creating the menu under Menus β Manage β Add New Menu only builds the structure. The module is what you'll scope in Step 4.
Step 2: Build Nested (Multi-Level) Menu Structures
Joomla 6 rebuilt the Menu Manager around a proper nested tree with drag-and-drop reordering. To turn a flat list into a dropdown-ready hierarchy:
- Open the menu's item list under Menus β [Your Menu Name].
- Grab the drag handle next to the item you want to nest.
- Drop it slightly to the right, directly under the item you want as its parent.
- Repeat for additional levels β most templates comfortably support two to three levels deep before dropdowns get unwieldy.
A template that supports nested navigation will render this automatically as a dropdown or flyout on the front end β no extra configuration needed on the menu item itself.
β οΈ Don't over-nest
Test every added level on mobile. A dropdown that's easy to use on desktop can overflow or become untappable on a small screen once you go three or four levels deep.
Step 3: Stop Duplicate URLs with a Menu Item Alias
Linking the same piece of content from two different menus is a common cause of duplicate URLs β Joomla generates a separate route for each menu item, even when both point at the same article or category. Rather than recreating the item, link to the original one:
- In the second menu, click New to create a menu item.
- Set Menu Item Type to System Links β Menu Item Alias.
- Choose the original menu item you want to reference.
- Save. This creates a shortcut that reuses the original item's route instead of generating a new one.
Step 4: Control Exactly Which Pages Show Each Module
Every menu module has a Menu Assignment tab with four options:
| Option | Behavior |
|---|---|
| On all pages | Module shows site-wide. |
| No pages | Module is effectively disabled without unpublishing it. |
| Only on the pages selected | Module appears only on the menu items you tick. |
| On all pages except those selected | Module shows everywhere except the pages you tick. |
This is how a Support Menu can appear only inside a help center, while the Main Menu module keeps showing everywhere. Set the Support Menu module to Only on the pages selected, then tick every menu item that lives under your Help Center section.
Step 5: Restrict Menu Items by Access Level
To keep a page out of navigation for certain visitors:
- Open the menu item and go to its Details tab.
- Set Access to the level you need β Public, Registered, Special, Super Users, or a custom access level your site defines.
- Set the same restriction on the module that displays the menu, so the item doesn't render as a dead or redirecting link for users who shouldn't see it.
Step 6: Customize Menu Markup with a mod_menu Override
Menu styling that goes beyond CSS β custom markup, extra wrapper elements, different dropdown behavior β belongs in a template override, not in edits to core files:
- Go to System β Site Templates β Templates β [Your Template].
- Open the Create Overrides tab and select
mod_menu. - Joomla copies the module's layout files into your template folder, under
html/mod_menu/. - Edit the copied files to adjust the markup β the original module files stay untouched.
π‘ Why override instead of edit core files
Overrides live in your template folder and survive Joomla core updates. Direct edits to modules/mod_menu get wiped out the next time Joomla updates that module.
Bonus: Running Several Modules Off One Menu
Because a menu and a menu module are separate objects, nothing stops you from creating two module instances that both pull from the same menu β for example, a full multi-level version in the desktop header and a shallower, single-level version in a mobile off-canvas panel. Each module instance keeps its own position, start/end level range, and styling options independently, without duplicating the underlying menu structure.
Frequently Asked Questions
What's the difference between a menu and a menu module in Joomla 6?
A menu is the data structure β the list of items and their hierarchy. A menu module is what displays that structure on the front end, in a chosen position like header or sidebar. One menu can power several modules at once.
How do I nest menu items in Joomla 6's new Menu Manager?
Open the menu's item list, grab the drag handle next to an item, and drop it slightly to the right of the item you want as its parent. A supporting template renders the result as a dropdown automatically.
Why does my site show two URLs for the same page?
This usually happens when the same content is linked from two separate menu items. Instead of duplicating the item, add a Menu Item Alias in the second menu β it reuses the original item's route rather than creating a new one.
Can different pages on one Joomla site show completely different menus?
Yes. Create a module for each menu, then use its Menu Assignment tab and choose "Only on the pages selected" to scope it β for example, a Support menu that only appears inside a help center section.
How do I hide a menu item from guests or specific user groups?
Open the menu item's Details tab and set Access to a level like Registered or Special. Set the same restriction on the module that displays it, so the link doesn't render for users without access.
Do I need to edit core files to change how a menu looks?
No β create a template override for mod_menu instead, via System β Site Templates β Create Overrides. Overrides live in your template folder and survive core updates; direct edits to core files don't.
Common Mistakes to Avoid
- Building the menu, forgetting the module. The item tree exists in the database, but nothing shows on the site until a module is created and assigned a position.
- Duplicating items instead of using an Alias. This quietly creates duplicate URLs and can dilute the page's SEO signals.
- Restricting the item but not the module. A menu item set to "Registered" only can still appear as a dead or redirecting link if the module itself is public.
- Nesting deeper than the template supports. Test every added level on a small screen β dropdowns that work on desktop can overflow on mobile.
- Editing mod_menu's core files directly. Any customization made this way is lost on the next Joomla update; use a template override instead.
What's Next
- Joomla 6 Newbie Guide: 14 Essential Tutorials
- Managing Languages and Building a Multilingual Site in Joomla 6 β for menus that need per-language versions.
How to Schedule Articles and Manage Publishing Dates in Joomla 6