Skip to content

WordPress Menu Items Not Saving

Fix WordPress menu items not saving by checking menu size, PHP max_input_vars, admin conflicts, cache, and theme menu locations.

4 min read Last updated Jun 18, 2026

A common cause of WordPress menu items not saving is a large menu hitting your server’s PHP input limit. Start with a small test change so you can tell whether WordPress is failing on every menu save or only when the menu gets large.

Quick checks before changing PHP settings

Go to Appearance > Menus or Appearance > Editor > Navigation, depending on your theme. Add one small menu item, save, then refresh the screen.

If that saves, but adding several items or moving many nested items does not, suspect max_input_vars. PHP uses this setting to limit how many input fields a request can submit, and large WordPress menus can exceed it. The PHP manual documents max_input_vars as a configurable input variable limit.

If even one small change will not save, check these first:

  • Try a different browser or a private window.
  • Disable browser extensions that modify the WordPress admin.
  • Clear any page, object, or server cache from your caching plugin or hosting panel.
  • Confirm you are editing the menu location your theme actually displays.
  • Check whether other admin changes save, such as a widget, Customizer setting, or page draft.

WordPress also notes that caching can make it look like changes did not apply, even when WordPress accepted them. See the WordPress documentation section on when you make changes and nothing happens.

Fix order

1. Save fewer menu changes at once

For a large menu, save in smaller batches:

  1. Add or move five to ten items.
  2. Click Save Menu.
  3. Refresh the admin screen.
  4. Continue with the next group.

This is not the final fix if the menu is already too large, but it helps confirm whether the failure is tied to request size.

2. Increase max_input_vars in hosting PHP settings

Use your hosting control panel first if it offers PHP settings. Look for PHP Options, MultiPHP INI Editor, PHP Configuration, or a similar screen.

Raise:

max_input_vars = 3000

For very large menus, 5000 may be more realistic. Avoid jumping to a huge value unless your host recommends it.

After saving the hosting setting, log out of WordPress, log back in, and try the same menu edit again.

3. Ask the host if the value does not change

Some hosts ignore local php.ini, .user.ini, or .htaccess overrides on managed WordPress plans. If the control panel value does not take effect, ask support to raise PHP max_input_vars for the site.

A useful support message is:

WordPress menu changes are not saving when the menu contains many items. Please raise PHP max_input_vars to 3000 or 5000 for this site, or confirm the current effective value.

4. Rule out admin conflicts

If the menu is not especially large, or the problem started after an update, test for a plugin or theme conflict.

First, take a backup or create a restore point from your host. Then:

  1. Temporarily disable optimization, security hardening, admin customization, menu, and page builder plugins.
  2. Try saving the menu again.
  3. If it works, reactivate plugins one at a time and test after each one.
  4. If plugins are not the cause, switch briefly to a default WordPress theme and test again.

WordPress has official guidance for enabling debugging in wp-config.php when you need error details, including WP_DEBUG and WP_DEBUG_LOG in the Debugging in WordPress documentation. Use this when the save action throws an error, produces a blank screen, or logs PHP warnings.

Check the menu location, not just the menu

Sometimes WordPress saves the menu correctly, but the front end still shows the old navigation because the wrong location is assigned.

In Appearance > Menus, check Menu Settings at the bottom of the screen and assign the menu to the theme’s primary location. In block themes, check Appearance > Editor > Navigation and confirm the Navigation block is using the menu you edited.

This distinction matters: max_input_vars causes missing or reverted saved items, while a wrong theme location makes a saved menu appear unused.

Optional SSH check

If you have SSH access and WP-CLI installed, you can confirm the active theme and plugin list before testing conflicts:

wp theme list
wp plugin list

Use WP-CLI for inspection here, not as the main repair path. The menu save problem is usually fixed through PHP settings, plugin/theme isolation, or the WordPress admin.

How to confirm the fix worked

After applying the likely fix:

  1. Add one new custom link to the affected menu.
  2. Save the menu.
  3. Refresh the menu editor.
  4. Confirm the new item is still present.
  5. Open the site in a private window and confirm the visible navigation changed.

If the admin saves correctly but the front end still shows the old menu, clear all caches again and recheck the assigned menu location.

Rollback and escalation

If raising max_input_vars does not help, restore the previous PHP value or ask your host to revert it. If disabling plugins fixes the issue, leave the conflicting plugin disabled until its vendor can confirm compatibility.

Contact hosting support when menu edits fail only on large menus, PHP setting changes do not take effect, or server logs show request limit errors. Contact the theme or plugin vendor when the issue appears only with one theme, menu plugin, builder, or admin customization plugin active.

Published by

Editorial Staff

Practical WordPress fixes, recovery steps, and performance notes from the BugWP editorial team.