Title: Menu Backup &amp; Restore + Import/Export
Author: Matthew Reilly
Published: <strong>23. juuli 2025</strong>
Last modified: 19. apr 2026

---

Search plugins

![](https://ps.w.org/menu-backup-restore/assets/Banner-772x250.png?rev=3487523)

![](https://ps.w.org/menu-backup-restore/assets/Icon-256x256.png?rev=3487523)

# Menu Backup & Restore + Import/Export

 By [Matthew Reilly](https://profiles.wordpress.org/creativemashwp/)

[Download](https://downloads.wordpress.org/plugin/menu-backup-restore.1.3.0.zip)

 * [Details](https://et.wordpress.org/plugins/menu-backup-restore/#description)
 * [Reviews](https://et.wordpress.org/plugins/menu-backup-restore/#reviews)
 *  [Installation](https://et.wordpress.org/plugins/menu-backup-restore/#installation)
 * [Development](https://et.wordpress.org/plugins/menu-backup-restore/#developers)

 [Support](https://wordpress.org/support/plugin/menu-backup-restore/)

## Description

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
 * In-place restore replaces the existing menu directly — no duplicate menus, theme
   locations stay assigned
 * Import and export menus as JSON files for portability or locally saved backups
 * Multi-menu export and import — select multiple menus or backups to export in 
   a single file
 * 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, CSS classes, and
   third-party plugin data (post_meta) icons etc…
 * Bulk actions — select multiple backups to export or delete at once
 * Rename backups inline with a click
 * Configurable maximum number of backups to keep
 * See who saved and created the backup
 * Tab-based interface for better organisation
 * Simple and intuitive user interface
 * No database modifications required
 * Lightweight and fast

#### How It Works

 1. The plugin automatically creates a backup whenever you update a menu
 2. Backups are stored in the WordPress options table with complete menu structure (
    hierarchy, locations, CSS classes, custom post_meta)
 3. You can view and manage backups from the Menus page — rename, export, delete, or
    bulk-select
 4. Restore any previous version with a single click — the existing menu is updated
    in-place, keeping theme locations intact
 5. Export one or multiple menus as a single JSON file for portability or import to
    other sites
 6. 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.

## Installation

 1. Upload the `menu-backup-restore` folder to the `/wp-content/plugins/` directory
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. Go to Appearance > Menus to see the backup panel
 4. Configure the maximum number of backups in Settings > Menu Backups

## 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.

### Can I restore a menu to a previous version?

Yes, you can restore any previous version of your menu with a single click. If the
original menu still exists, it is updated in-place — the same menu ID is kept so
your theme locations stay assigned. If the original menu was deleted, a new menu
is created.

### Can I export and import menus?

Yes! You can export one or multiple menus at once as a single JSON file and import
it to the same or a different WordPress site. The plugin intelligently maps menu
items to objects on the target site. You can also export individual backups from
the Backup & Restore tab, or bulk-export multiple backups at once.

### Can I export and import multiple menus at once?

Yes! The Export tab lets you select multiple menus using checkboxes and export them
all in a single JSON file. When importing, the preview page shows each menu in its
own section with full mapping controls. Bulk export is also available on the Backup&
Restore tab for backups.

### Can I rename backups?

Yes! Click the pencil icon next to any backup name to rename it inline. Changes 
are saved instantly without a page reload.

### Can I transfer menus between sites?

Absolutely! Export a menu from one site and import it to another. The plugin will
automatically attempt to match pages, posts, and categories by slug, GUID, or title.
On the import preview screen, you have full control to manually map any menu item
to a different page, post, or category on the target site, or keep it as a custom
link.

### Can I manually control how menu items are mapped during import?

Yes! Version 1.1.1 introduced a manual mapping interface on the import preview page.
After uploading a menu, you’ll see a detailed mapping table where you can:
 * Review
automatic matches and change them if needed * Map unmatched items to specific pages,
posts, or taxonomies on your site * Choose to keep any item as a custom link instead
of linking to an object * See which items were automatically matched vs. which need
attention

This gives you complete control over exactly how your imported menu will be structured.

### What data is preserved during backup, restore, and import/export?

The plugin preserves all menu data including:
 * Complete menu hierarchy (parent/
child relationships) * Theme menu locations (which theme position the menu is assigned
to) * CSS classes for each menu item * Menu item titles, URLs, and descriptions *
Target and rel attributes * Display order of menu items * Custom post_meta from 
third-party plugins — any plugin that stores data on menu items via post_meta is
supported automatically

### Which third-party menu plugins are supported?

Any plugin that stores its menu item data in post_meta is automatically supported—
no configuration needed. This has been tested with:

 * If Menu – Visibility control for menus by Layered
 * Menu Icons by ThemeIsle
 * WP Menu Icons by QuadLayers
 * Menu Image by Freshlight Lab
 * Easy Menu Icons by Themewant

If your menu plugin stores data in post_meta (which most do), it will work out of
the box.

### Will this slow down my site?

No, the plugin is lightweight and only runs when menus are updated. It doesn’t affect
your site’s performance.

## Reviews

![](https://secure.gravatar.com/avatar/11383f8e806e7d99592a4e8718733eb375052f39165db9fd54b084e02840f76f?
s=60&d=retro&r=g)

### 󠀁[Finally, a menu plugin that works!](https://wordpress.org/support/topic/finally-a-menu-plugin-that-works/)󠁿

 [fyrefli](https://profiles.wordpress.org/fyrefli/) 29. juuli 2025

Absolutely love this plugin. It’s on the neccessary installation list. I’m forever
messing up my menus and now I can back up and restore when needed to.

![](https://secure.gravatar.com/avatar/ed304304b88440f1d1f60938b797a0a58282433d1e5f304303ee376a98ac9011?
s=60&d=retro&r=g)

### 󠀁[Works great](https://wordpress.org/support/topic/works-great-9647/)󠁿

 [spapafot](https://profiles.wordpress.org/spapafot/) 27. juuli 2025

Exactly what I needed, works as expected!

 [ Read all 2 reviews ](https://wordpress.org/support/plugin/menu-backup-restore/reviews/)

## Contributors & Developers

“Menu Backup & Restore + Import/Export” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ Matthew Reilly ](https://profiles.wordpress.org/creativemashwp/)

[Translate “Menu Backup & Restore + Import/Export” into your language.](https://translate.wordpress.org/projects/wp-plugins/menu-backup-restore)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/menu-backup-restore/),
check out the [SVN repository](https://plugins.svn.wordpress.org/menu-backup-restore/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/menu-backup-restore/)
by [RSS](https://plugins.trac.wordpress.org/log/menu-backup-restore/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.3.0

 * Added custom post_meta support — third-party plugin data (e.g. If Menu, Menu 
   Icons, mega-menu plugins) is now automatically preserved during backup, restore,
   import, and export
 * In-place restore — restoring a backup now replaces the existing menu directly
   instead of creating a duplicate. Theme locations stay assigned, no cleanup needed
 * Multi-menu export — select multiple menus on the Export tab and export them all
   in a single JSON file
 * Multi-menu import — import files containing multiple menus, with per-menu mapping
   controls on the preview page
 * Bulk backup actions — select multiple backups with checkboxes to export or delete
   them at once
 * Inline backup rename — click the pencil icon to rename any backup without leaving
   the page
 * Import preview now shows custom data keys (post_meta) per item so users know 
   what third-party data is included
 * New multi-menu JSON format (schema 1.1) while remaining fully backward compatible
   with old single-menu exports
 * UI improvements — tighter spacing, clearer export tab description, responsive
   layout fixes

#### 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

## Meta

 *  Version **1.3.0**
 *  Last updated **13 tundi ago**
 *  Active installations **300+**
 *  WordPress version ** 5.0 or higher **
 *  Tested up to **6.9.4**
 *  PHP version ** 7.2 or higher **
 *  Language
 * [English (US)](https://wordpress.org/plugins/menu-backup-restore/)
 * Tags
 * [backup](https://et.wordpress.org/plugins/tags/backup/)[export](https://et.wordpress.org/plugins/tags/export/)
   [import](https://et.wordpress.org/plugins/tags/import/)[menu](https://et.wordpress.org/plugins/tags/menu/)
   [restore](https://et.wordpress.org/plugins/tags/restore/)
 *  [Advanced View](https://et.wordpress.org/plugins/menu-backup-restore/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  2 5-star reviews     ](https://wordpress.org/support/plugin/menu-backup-restore/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/menu-backup-restore/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/menu-backup-restore/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/menu-backup-restore/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/menu-backup-restore/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/menu-backup-restore/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/menu-backup-restore/reviews/)

## Contributors

 *   [ Matthew Reilly ](https://profiles.wordpress.org/creativemashwp/)

## Support

Issues resolved in last two months:

     0 out of 1

 [View support forum](https://wordpress.org/support/plugin/menu-backup-restore/)