WordPress navigation menus are managed from wp-admin → Appearance → Editor → Navigation on any block theme, or wp-admin → Appearance → Menus on a classic theme. Add pages, posts, or custom links, drag to reorder, and nest an item under another to create a dropdown. Most sites never need a plugin for this: the block editor covers menu structure, submenus, and multiple menu locations out of the box.
Building a menu with the block editor
If your theme is a block theme (most new WordPress themes are), go to Appearance → Editor and select Navigation from the sidebar. You'll see your site's existing menu, or an empty Navigation block ready to fill in.
- Add a link: click the
+icon, then either pick an existing page/post from the search or paste a custom URL. - Create a submenu: select an item, click
+again, and add a link. New items nest as children automatically. Alternatively, drag an existing item on top of another to make it a submenu entry. - Reorder items: drag and drop in the block editor's list view, or use the up/down arrows in the block toolbar.
- Rename a link: click directly on the link text in the editor and type. This changes the menu label without touching the page's actual title.
Save from the top-right Save button. Changes apply across every place that Navigation block appears on the site.
Classic themes: Appearance → Menus
On a classic (non-block) theme, menus live at Appearance → Menus. Create a menu, add items from the left-hand panels (Pages, Posts, Custom Links, Categories), and drag to set order and nesting, same as above, indent an item to make it a child of the one above it.
The part classic themes add that block themes don't: menu locations. Under Menu Settings, check the theme location this menu should fill, commonly "Primary" and sometimes "Footer" or "Mobile." A theme can define multiple locations, and you assign a different menu to each. If your menu isn't showing up anywhere, this is usually why: it's built but not assigned to a location.
Multiple menus and menu locations on block themes
Block themes handle this differently: each Navigation block on a template (header, footer, wherever) can point at its own separate menu. Select the Navigation block, open its settings, and choose "Select Menu" to switch which menu it displays. This means your footer can show a shorter link list than your header without any extra configuration, add a second Navigation block with a different menu selected.
When you actually need a plugin
Stock WordPress menus cover structure and links well, but they don't do everything. Reach for a menu plugin only if you need:
- Conditional visibility - showing/hiding menu items based on login status, user role, or device.
- Mega menus - multi-column dropdowns with images or widgets inside them, beyond simple nested links.
- Icons or badges attached to menu items without manual CSS/HTML tricks.
If you're on a page builder like Elementor or Divi, the builder often ships its own menu/header widget that layers on top of (or replaces) the native block. That's fine, but keep in mind every extra plugin or widget is one more thing loading on every page. Before adding one, check whether the built-in Navigation block genuinely can't do what you need. If your site is already feeling sluggish, work through My WordPress site is slow before stacking on more plugin weight for a menu.
Test menu changes safely
A broken navigation menu is one of the more visible mistakes you can make, since every visitor hits it on every page. If you're restructuring a large menu, changing themes, or trying a mega-menu plugin for the first time, do it on a staging copy first. See Using WordPress staging for the workflow. This matters even more if you run a store: a broken header menu can hide your cart or account links from customers, see Running a WooCommerce store for store-specific testing steps.
It's also worth taking a fresh backup before a major menu or theme change, so you can roll back quickly if something looks wrong.
If a menu still won't display
Most "my menu disappeared" cases come down to one of three things: the menu isn't assigned to a location (classic themes), the Navigation block is pointed at the wrong menu (block themes), or a caching layer is showing an old version. Clear the LiteSpeed Cache plugin's cache from wp-admin → LiteSpeed Cache → Toolbox → Purge All and reload with a hard refresh before assuming the menu itself is broken.
If you've checked all of that and the menu still won't show correctly, or a plugin conflict is breaking the layout, open a ticket from the portal's Support section. It goes to a real person, not a bot.