WordPress Menu Not Showing or Not Saving? How to Fix Missing, Unchanged and Broken Menus
WordPress menu not showing, not updating or not saving? Fix menu locations, block theme navigation, mobile menus, caches and the max_input_vars limit.

On this page
- WordPress menu not showing: quick diagnosis
- Fix 1: Assign the menu to the right location
- Fix 2: Block themes use the Navigation block, not Appearance > Menus
- Fix 3: Elementor or another builder controls the header
- Fix 4: Menu changes not showing? Clear every cache
- Fix 5: WordPress menu not saving or losing items
- Fix 6: Menu not showing on mobile
- Fix 7: Menu items or the Menus screen missing in the dashboard
- Keeping menus healthy on a business site
- Quick check: is the menu assigned?
- When to get help
- FAQs
- A menu that exists but doesn’t show is usually not assigned to a theme location, or the theme now uses a Navigation block.
- Menus that lose items on save almost always hit the PHP max_input_vars limit on large menus.
- If the change shows for you but not visitors, clear every cache; if it fails on mobile only, check the theme or builder’s mobile menu.
If your WordPress menu is not showing, the menu usually exists but is not assigned to the theme's menu location, or your theme has changed and now builds its header with a Navigation block or a page builder. If the menu shows but your changes are not appearing, a cache is serving the old version. If items disappear when you click Save Menu, a server limit called max_input_vars is cutting the save short. Each has a quick fix, set out below.
WordPress menu not showing: quick diagnosis
| Symptom | Likely cause | Where to fix |
|---|---|---|
| No menu in the header at all, or a list of every page | Menu not assigned to a location | Appearance > Menus > Manage Locations |
| No Appearance > Menus screen | Block theme using the Site Editor | Appearance > Editor > Navigation |
| Changes saved but visitors see the old menu | Page, server or CDN cache | Purge every cache layer |
| Items vanish or order resets after Save Menu | max_input_vars limit | PHP settings in hosting panel |
| Menu works on desktop, not on mobile | Theme or builder mobile menu setting, or a JavaScript error | Header builder, browser console |
| Menu disappeared after a theme or plugin update | Location names changed, or a plugin conflict | Re-assign location, conflict test |
Fix 1: Assign the menu to the right location
Classic themes show menus in "locations" such as Primary, Header, Footer or Mobile. A menu you build in Appearance > Menus only appears once it is assigned to one.
- Go to Appearance > Menus and select your menu.
- Under Menu Settings at the bottom, tick the location, for example Primary Menu. Or open the Manage Locations tab and pick the menu for each location.
- Click Save Menu and reload the site in a private window.
If your header shows every page in a plain list, WordPress is falling back to an automatic page list because no menu is assigned. Assigning one fixes it.
After switching themes, locations nearly always need re-assigning, because each theme names them differently. Check the header on desktop and mobile after any theme switch.
Fix 2: Block themes use the Navigation block, not Appearance > Menus
If Appearance > Menus is missing, you are probably on a block theme such as Twenty Twenty-Four or Twenty Twenty-Five. These build the header in the Site Editor, and the menu is a Navigation block.
- Go to Appearance > Editor, then Navigation.
- Choose the menu, add or reorder links, and save.
- If the header still shows the wrong menu, open the header template part, select the Navigation block and pick the correct menu in its settings.
Classic menus can be imported into the Navigation block from the same menu. Block themes and Full Site Editing explained covers where templates and template parts live.
Fix 3: Elementor or another builder controls the header
When a page builder draws the header, its Nav Menu widget picks which WordPress menu to show. If someone created a new menu, the widget may still point at the old one, or at nothing.
- Edit the header template in the builder, select the menu widget and choose the right menu.
- Check the template's display conditions, so the header is applied to the entire site.
- Check the widget's breakpoint and dropdown settings for tablet and mobile.
If the whole header has disappeared rather than just the menu, see Elementor header or footer not showing.
Fix 4: Menu changes not showing? Clear every cache
If the menu looks right when you are logged in but visitors still see the old links, a cache is serving an older copy of the page. Menus appear on every page, so every cached page shows the old one until it is purged.
- Purge your caching plugin (LiteSpeed Cache, WP Rocket, W3 Total Cache and so on).
- Purge the host's server cache from the hosting panel.
- Purge Cloudflare or any other CDN.
- Test in a private window on mobile data, not your office Wi-Fi.
WordPress changes not showing goes through each cache layer and how to tell which one is stale. If only the styling of the menu is old, see CSS changes not showing.
Fix 5: WordPress menu not saving or losing items
This is the classic large-menu problem. Each menu item sends around a dozen fields when you click Save Menu. PHP's max_input_vars setting caps how many fields the server will accept, and the default on many hosts is 1000. With a big menu, WordPress quietly drops everything past that limit, so the last items vanish, the order resets or the save seems to do nothing.
- Open your hosting panel's PHP settings (MultiPHP INI Editor in cPanel, PHP Configuration in hPanel) and raise max_input_vars, for example to 3000 or 5000.
- If you can't change it, ask hosting support. Some hosts also need suhosin limits raised.
- Save the menu again and check that the last item stayed.
Very large menus are also hard for visitors to use. If your menu has grown past a few dozen items, it may be better to restructure it; how to structure your website navigation shows a simpler approach.
Fix 6: Menu not showing on mobile
When the desktop menu works but the mobile hamburger does nothing or is missing:
- Check whether the theme has a separate Mobile Menu location that needs its own menu assigned.
- Check the header builder's mobile settings, where the menu may be hidden on small screens.
- Open the site in Chrome, press F12 and look in the Console for red errors. Mobile menus depend on JavaScript; a broken script, or a speed plugin delaying or combining scripts, stops the toggle working. Exclude the theme's menu script from delay and minify settings and test again.
Fix 7: Menu items or the Menus screen missing in the dashboard
If you can't see Appearance > Menus at all on a classic theme, your user role may lack permission, or a plugin is hiding admin menus. Only administrators (and roles given the edit_theme_options capability) can manage menus. See WordPress user roles explained, and if menus vanished after an update, test for a conflict with the plugin conflict method.
Also check Screen Options at the top of the Menus screen. Categories, custom links, products or custom post types only appear in the left panel once ticked there.
Keeping menus healthy on a business site
- Keep one main menu and one footer menu; avoid several near-identical copies that nobody remembers to update.
- After a theme change, plugin update or new header design, check desktop and mobile menus on the live site.
- Give staff Editor rather than Administrator access if they only edit content, and let one person own menu changes.
If menus keep breaking after updates, a WordPress maintenance plan includes post-update checks of the header and mobile menu. For a one-off fix or a header rebuild, you can hire a WordPress developer; businesses in Maharashtra can also look at a WordPress developer in Pune.
Quick check: is the menu assigned?
- Block themes: open Appearance > Editor > Navigation and check the header uses the menu you edited.
- Classic themes: open Appearance > Menus > Manage Locations and make sure your menu is assigned to the primary or header location.
- If the menu shows on desktop but not on phones, check the mobile menu setting in your theme or page builder.
When to get help
Get help when the menu disappeared after a theme or builder update, when the mobile menu will not open, or when the header was built in a page builder you cannot edit. WordPress maintenance and support covers fixes like these. You can also hire a WordPress developer in India, or send the details through the contact form.
FAQs
Why is my WordPress menu not showing?
Usually because the menu is not assigned to the theme's menu location, the theme was changed, or a block theme or page builder now controls the header. Assign the menu in Manage Locations, the Navigation block or the builder's menu widget.
Why is my WordPress menu not saving?
On large menus, the PHP max_input_vars limit cuts off the save, so items vanish or the order resets. Raise it in your hosting panel's PHP settings or ask your host to do it.
Why don't I see Appearance > Menus in WordPress?
Block themes manage menus in Appearance > Editor > Navigation instead. On a classic theme, a missing Menus screen usually means your user role lacks permission or a plugin is hiding it.
Why are my menu changes not showing on the live site?
A page cache, server cache or CDN is still serving the old pages. Purge every cache layer and check in a private window on mobile data.
Why is my WordPress mobile menu not working?
Mobile menus often need their own location or header builder setting, and they rely on JavaScript. Check for a separate mobile menu location and for console errors caused by script delay or minify settings.
How do I add pages to a WordPress menu?
In Appearance > Menus, tick the pages in the left panel and click Add to Menu, then drag to order and save. In a block theme, add a Page Link inside the Navigation block in the Site Editor.
Need help with your website?
I'm a freelance WordPress developer building fast, SEO-friendly websites since 2020. Tell me what you need and I'll reply with a plan and a fixed quote, usually within 24 hours.


