
Adds a menu backup and restore panel to the bottom of the default WordPress Menus page. Protect your menus with automatic backups and one-click restor …
Menu Backup & Restore protects your WordPress menus with automatic backups, one-click restoration, and powerful import/export capabilities. Transfer menus between sites seamlessly with intelligent object mapping that ensures your menu structure remains intact.
Key Features
- Automatic backup of menus when they are updated
- Easy restoration of previous menu versions
- Import and export menus as JSON files for portability or locally saved backups
- Transfer menus between sites with intelligent object mapping, can be used to update menus from development to production sites without full site migration
- Manual mapping interface to override automatic matches and map menu items to specific pages, posts, or taxonomies during import
- Preserves complete menu structure: hierarchy, theme locations, and CSS classes for each menu item
- Configurable maximum number of backups to keep
- See who saved and created the backup
- Tab-based interface for better organization
- Simple and intuitive user interface
- No database modifications required
- Lightweight and fast
How It Works
- The plugin automatically creates a backup whenever you update a menu
- Backups are stored in the WordPress options table with complete menu structure (hierarchy, locations, CSS classes)
- You can view and manage backups from the Menus page
- Restore any previous version with a single click, preserving all menu settings
- Export backups as JSON files for portability or import to other sites
- Configure the maximum number of backups to keep in the settings
Requirements
- WordPress 5.0 or higher
- PHP 7.2 or higher
What Users Have to Say on Reddit
“That’s a super useful idea! Menus are so easy to wipe out by accident, and restoring from a full backup always feels like overkill. Nice work!”
“Really appreciate it, This will come in handy alot!”
“Oh man, I’ve done this before too. Lost a big menu while trying to rearrange items and it was gone in a click. Ended up re-building from scratch.
This plugin sounds like a lifesaver — surprised WordPress hasn’t built something like this in by default.”
“Kind of an automatic backup vs having to schedule one.”
“that’s a killer quality of life plugin wp’s missing so many of those “one click undo” features for common mistakes”
“Great idea! I do this more often than I care to admit. This needs to be in Core!”
“Dude I literally do this all the time and actually did it less than an hour ago. I hate how the WordPress menu isn’t stored normally. Thanks for this!”
Screenshots

WordPress Menus page with Menu Backup & Restore panel integration.

Backup & Restore tab showing saved menu backups with Restore, Export, and Delete options.

Import tab with file upload interface and helpful guidance for new users.

Export tab with file export for easy menu migration or external backup.

Import Preview page showing menu details and intelligent object mapping before restoration.

Settings page with backup limit configuration and support options.
FAQ
How many backups can I keep?
You can configure the maximum number of backups to keep in the plugin settings. The default is 10 backups.
Where are the backups stored?
Backups are stored in the WordPress options table. No additional database tables are created.
ChangeLog
1.2.0
- Added a new Export tab to the Menus page, allowing you to export any menu directly as a JSON file. Menus can now be exported from your site even if they haven’t been backed up.
- Improved the Menus page tab experience so switching between Backup & Restore, Import, and Export feels instant without a full page reload, while restore, delete, import, and export actions keep their existing secure processing flow.
1.1.2
- Fixed PHP 8.1 deprecation warnings caused by passing null to add_submenu_page()
- Improved PHP 8.1+ compatibility across all admin interfaces and form handlers
- Fixed CSS not loading on import preview page – styles now properly apply
- Added max-width constraints (1200px) to import preview page for better readability on large screens
- Improved layout consistency for all tables, notices, and forms on import preview
- Synchronized dropdown widths between inline styles and CSS for uniform appearance
- Moved inline CSS to admin.css file for better code organization and performance
- Enhanced import preview page styling and user experience
1.1.1
- Added manual mapping interface on import preview page
- Users can now override automatic object matches during import
- Menu items can be manually mapped to specific pages, posts, or taxonomies on the target site
- Custom links can now be mapped to real pages/posts during import (not just kept as custom links)
- Human-readable type labels in import preview (shows “Post”, “Page”, “Product” instead of “post_type”)
- All mapping dropdowns now have uniform width for consistent UI
- Fixed PHP 8.1+ deprecation warnings related to URL parameter handling
- Fixed security warnings for POST data sanitization and validation
- Fixed tab navigation issue when no WordPress menus exist but backups are present
- Fixed bug where custom links mapped to pages weren’t being saved correctly
- Option to keep any menu item as a custom link instead of mapping to an object
- Improved import control and flexibility for cross-site menu transfers
1.1.0
- Added Import & Export functionality for menu backups as JSON files
- Added tab-based interface with “Backup & Restore” and “Import” tabs
- Smart tab defaults: Import tab shown first when no backups exist
- Improved empty state with actionable guidance for new users
- Added informational notice on Import tab when no backups exist
- Added “Buy Me a Coffee” support link on settings page
- Added “Rate 5 Stars” call-to-action on settings page
- Fixed backup panel appearing on Manage Locations tab
- Fixed bug where reducing backup limit didn’t delete old backups
- Imported menus are now automatically saved as backups
- Enhanced security with MIME type validation and checksum verification
- Improved cross-site menu transfer with intelligent object mapping
- Added schema versioning for future compatibility
1.0.1
- Added User column to show who created each backup
- Improved responsive layout on smaller screens and mobile for a better user experience
- Fixed H2 font size to match WordPress’s default H2 font size
- Added friendly notice when no backups exist
1.0.0
- Initial release
- Automatic menu backup on menu save
- Backup restoration
- Configurable backup limit
- Settings page
- User interface improvements