A modern WordPress migration and backup plugin with a React-based UI that allows you to export, import, and restore WordPress sites with support for files up to 2GB.
- Complete Site Export: Export your entire WordPress site including database, media files, themes, and plugins
- Smart Import: Import backups while preserving the current site's domain (automatic URL replacement)
- Large File Support: Handle files up to 2GB with chunked upload processing
- Progress Tracking: Real-time progress indicators with detailed status messages
- Backup Management: Create, download, and delete backups from an intuitive dashboard
- Security Features: Built-in security measures to protect backup files
- Rollback Protection: Automatic backup creation before importing (optional)
- Modern UI: Clean, responsive interface built with WordPress admin styles
- WordPress: 5.0 or higher
- PHP: 7.4 or higher
- MySQL: 5.6 or higher
- Memory: 256MB minimum (512MB recommended)
- File Permissions: Write access to wp-content directory
- Download the plugin ZIP file
- Go to WordPress Admin → Plugins → Add New
- Click "Upload Plugin" and select the ZIP file
- Click "Install Now" and then "Activate Plugin"
- Navigate to RestoreWP → Dashboard in your WordPress admin
- Select the Export tab
- Choose what to include:
- Database (posts, pages, settings, users, etc.)
- Media Files (uploads folder)
- Themes
- Plugins
- Click Start Export
- Monitor the progress popup showing real-time status
- Download the backup ZIP file when complete
- Navigate to RestoreWP → Dashboard in your WordPress admin
- Select the Import tab
- Click Select File and choose your backup ZIP file (max 2GB)
- Optionally check Create backup before import for safety
- Click Start Import
- Monitor the progress popup showing detailed steps:
- Extracting backup file
- Validating backup
- Creating rollback backup (if enabled)
- Updating URLs for current domain
- Importing database
- Importing files
Important: The import process automatically preserves your current site's domain. If you import Site B's backup to Site A, Site A will get all of Site B's content but keep Site A's domain URL.
- Navigate to RestoreWP → Dashboard in your WordPress admin
- Select the Backups tab
- View all available backups with file sizes and creation dates
- Download or delete backups as needed
When importing a backup from another site, RestoreWP automatically:
- Detects the original site URL from the backup's configuration file
- Identifies your current site URL
- Replaces all instances of the old URL with your current URL in:
- Database content (posts, pages, options)
- Serialized data (WordPress settings, widget data)
- JSON data (theme customizations, plugin settings)
- Both HTTP and HTTPS versions
This ensures that:
- All internal links point to your current domain
- Images and media files load correctly
- Plugin and theme settings work properly
- WordPress core settings use the correct URLs
- Protected Storage: Backup files are stored with restricted access
- Nonce Verification: All AJAX requests use WordPress nonces
- Capability Checks: Only users with
manage_optionscapability can use the plugin - File Validation: Uploaded files are validated for type and content
- Secret Keys: Internal operations use generated secret keys
restorewp/
├── restorewp.php # Main plugin file
├── includes/ # Core functionality
│ ├── class-restorewp-admin.php # Admin interface
│ ├── class-restorewp-export.php # Export functionality
│ ├── class-restorewp-import.php # Import functionality
│ ├── class-restorewp-backup.php # Backup management
│ ├── class-restorewp-security.php # Security features
│ ├── class-restorewp-install.php # Installation/activation
│ └── restorewp-functions.php # Helper functions
├── assets/ # Frontend assets
│ ├── css/admin.css # Admin styles
│ └── js/admin.js # Admin JavaScript
└── admin/ # React components (future enhancement)
RestoreWP creates ZIP archives containing:
database.sql- Complete database dumpwp-content/- WordPress content directoryrestorewp-config.json- Backup metadata and configurationsite-info.json- Site information for validation
- Check that your server meets the minimum PHP version requirement (7.4+)
- Verify file permissions on the plugin directory
- Check WordPress error logs for specific error messages
- Ensure adequate disk space (backup files can be large)
- Check PHP memory limit and execution time settings
- Verify write permissions on wp-content directory
- Increase PHP
upload_max_filesizeandpost_max_sizesettings - Adjust
max_execution_timefor long operations - Check server disk space availability
- The plugin automatically handles URL replacement
- If manual adjustment is needed, use a database search/replace tool
- Check that the backup's config file contains the correct original URL
npm install
npm run buildnpm run dev- Documentation: GitHub Repository
- Issues: Report bugs
- Support: Contact the RestoreWP team
This plugin is licensed under the GPL v3 or later. See the LICENSE file for details.
- Initial release
- Complete site export/import functionality
- Automatic domain preservation during import
- Progress tracking with visual indicators
- Backup management interface
- Security features and validation
- Support for large files (up to 2GB)
RestoreWP - Making WordPress migration simple and reliable.