Skip to content
WordPress Support

WordPress Menu Not Showing? Check These Three Places

A missing menu is usually a location left empty or a header pointing at the wrong menu. Here is how to find which, in classic, block and builder themes.

A laptop with code open on a white desk
8 sections · 7 min read
In this article · 8 sections

The header has your logo and nothing else. Or the menu is there on a laptop but the little three-line button on a phone does nothing. Or it shows for you, logged in, and a customer sends a screenshot where it is missing. Each of these gets described the same way, “the menu has gone”, and each has a different cause.

The first thing to know when you find your WordPress menu not showing is that WordPress sites can build menus in three quite different ways. Most of the confusion comes from looking for the menu in the wrong one. So this guide starts by working out which system your site uses, then goes through what breaks in each.

WordPress menu not showing? First find which menu system you have

Go to Appearance in the dashboard and look at what is listed underneath.

  • You see “Menus”. You have a classic theme. Menus are built under Appearance, then Menus, and the theme decides where they appear through named “locations” such as Primary, Footer or Mobile.
  • You see “Editor” and no “Menus”. You have a block theme. The menu is a Navigation block inside the header template, edited in the Site Editor.
  • Your header was built in a page builder, such as Elementor’s Theme Builder or a theme’s own header builder. The menu is a widget inside that header template, and the theme’s normal header may be switched off entirely.

Some sites mix them: a classic theme with a builder header, for example. If you are not sure, open the page builder’s templates list and look for anything called Header. If one exists and is set to display across the whole site, that is where your menu lives.

Classic themes: the menu exists but is not assigned

In a classic theme, this is the first thing to rule out when a menu is missing on site. Under Appearance, then Menus, a menu can exist with all its items in place and still appear nowhere, because it has not been given a display location.

  1. Open Appearance, then Menus.
  2. Choose the menu from the drop-down at the top and click Select.
  3. Scroll to “Menu Settings” at the bottom and look at “Display location”. Tick the location your theme uses for the main menu.
  4. Save the menu.

You can also use the “Manage Locations” tab, which shows every location the theme offers and which menu is in each. A location with nothing selected next to it prints nothing on the site.

Why this happens after a theme change

Each theme registers its own location names. One theme calls its main spot “primary”, another “main-menu”, another “header”. When you switch themes, WordPress tries to carry the assignments across, but it can only do that when the names line up. Often they do not, so the new theme starts with empty locations. Your menus are still saved; they just need assigning again.

Large menus that lose items when saved

A different classic-theme fault: you add items, click save, and some of the items at the bottom disappear. On sites with very large menus, the save can hit a PHP setting called max_input_vars that limits how many fields a form can send. Items beyond that limit are dropped silently. If your menu has many items and the losses always happen at the end, ask your host whether that limit can be raised, or split the menu into smaller ones.

Block themes: the Navigation block

In a block theme, open Appearance, then Editor, then Navigation. You will see the navigation menus the site has stored. Then open the header template part and click on the Navigation block itself.

Problems to look for:

  • The block is pointing at a different or empty menu. The Navigation block can be switched between saved menus. If someone created a new one by accident, the header may be showing an empty menu. Use the block’s settings to choose the right one.
  • The header template part was edited on one template only. Block themes use separate templates for the home page, pages, posts and archives. If the menu appears on posts but not on pages, compare the header used by each template.
  • The overlay setting. On small screens, the Navigation block can collapse into an overlay menu behind a button. The block’s settings control when that happens. A menu that “disappears on mobile” may simply be collapsed, waiting for a tap.

Block theme changes are saved to the database rather than the theme files. That means switching to a different block theme leaves your edited header behind, so expect to rebuild the Navigation block after a switch.

Builder headers: the theme’s menu is being replaced

If a page builder supplies the header, the theme’s own menu settings may do nothing. You can assign a menu to every location under Appearance, then Menus, and still see no change, because the builder has hidden the theme’s header altogether.

Open the builder’s header template. Check three things: that the template is published, that its display conditions cover the pages where the menu is missing, and that the menu widget inside it has a menu selected. Display conditions catch people out. A header set to show on “Entire site” but excluded from one page type will leave that type with no header at all.

The menu works on desktop but not on phones

Mobile menus fail in their own ways, and they deserve a separate check because the fix is rarely in the menu settings.

The button appears but nothing opens

The hamburger button relies on JavaScript. If any script on the page throws an error before the menu’s script runs, the button does nothing when tapped. Open the site on a desktop browser, narrow the window until the button appears, press F12 and look at the Console tab. Red errors there are your starting point. A message mentioning jQuery has its own explanation in our guide to fixing jQuery is not defined errors.

Performance plugins that delay JavaScript until the visitor interacts with the page are a frequent trigger. The tap that should open the menu is used to load the scripts instead, and the menu only opens on a second tap, or not at all. Exclude the theme’s menu script from delay or turn the setting off and test again.

No button at all

The theme may hide the desktop menu at a certain screen width and show a mobile one instead. If no menu has been assigned to the mobile location, there is nothing to show. Check for a separate “Mobile” or “Off-canvas” location in your theme’s menu settings. Broader problems with layouts on phones are covered on our mobile display fix page.

You can see it, visitors cannot

When the menu is fine while you are logged in and missing for everyone else, think about two things.

Caching. Logged-in users usually skip the page cache. Visitors get a stored copy, which may have been saved at a moment when the menu was broken or unassigned. Purge the caching plugin, any server cache and any CDN, then check in a private window. If the cache is the culprit, the guide on clearing the right cache explains which layer usually holds the old copy.

Visibility rules. Membership plugins, conditional menu plugins and some themes can show menu items only to logged-in users or certain roles. If the whole menu is set that way, logged-out visitors see an empty header. Check each menu item’s settings for extra options added by plugins.

Specific items are missing, not the whole menu

When the menu shows but one link is absent:

  • The page it pointed to may have been moved to the trash or deleted. WordPress stops showing a menu item whose page is gone.
  • The item may be a child item that only appears on hover, and a CSS or script fault stops the drop-down opening.
  • A plugin’s visibility setting may be hiding that one item from logged-out users.
  • The item was lost in the large-menu save problem described above.

If you have a recent backup or a staging copy, comparing the menu there with the live one shows quickly what was dropped.

What to note before asking for help

If you still have a WordPress menu not showing after all of these checks, write down which of the three menu systems your site uses, whether the fault is on all devices or only phones, whether you see the menu while logged in, and what changed most recently. A theme update, a new optimisation plugin or a switch to a different header template is behind a lot of these. A screenshot from a phone, with the address bar visible, is worth more than a description.

If you have been through all of it and the header is still bare, or the fault is in a custom theme nobody documented, that is a reasonable point to ask for a wordpress bug fix. Widget areas in sidebars and footers break in related but separate ways; the guide to widgets that have gone missing picks up from there.

Most missing menus turn out to be a location left empty or a header pointing at the wrong menu. Check those two before anything more drastic, and the navigation is usually back on screen with nothing more than a save.

Next in this series: WordPress Widgets Not Showing? Check the Five Gates

Is Your Website Working Properly?

Get a free website health check from WebMaintor. We'll review your website's speed, security, forms, and technical health — and tell you exactly what needs attention.

No obligation. No automated reports. A real review by our team.