Easy WP Migration v1.0.1

Easy WP Migration v1.0.1 Documentation
WebsitePlugins Documentation

Easy WP Migration v1.0.1

WP Easy Migration lets you export a WordPress website, import it into a new WordPress installation, and restore the database, files, and site URLs.

Requires at least: 6.0 Tested up to: 6.9 Requires PHP: 7.4 License: GPLv2 or later Stable tag: 1.0.1

Description

WP Easy Migration is a WordPress migration plugin that helps you move a website from one WordPress installation to another.

Version 1.0.1 includes:

Export Features

Website export, database export, file export, and backup ZIP creation.

Import Features

Backup upload and extraction with restore status checks.

Restore Features

Database restore, file restore, safe URL replacement, and temporary import cleanup.

Extra Tools

Manual Old Site URL field and migration log file support.

Best use: This plugin is best used on a fresh or new WordPress installation when migrating a site to a new domain, server, or hosting account.

Main Workflow

  1. Install WP Easy Migration on the old website.
  2. Export the website and download the backup ZIP.
  3. Install WP Easy Migration on the new website.
  4. Upload the backup ZIP.
  5. Run Restore.
  6. Enter the Old Site URL if the domain has changed.
  7. Wait for migration to complete.

Installation

  1. Upload the plugin folder to /wp-content/plugins/
  2. Activate the plugin through the WordPress Plugins screen
  3. Open WP Easy Migration in the WordPress admin menu

Exporting a Website

Use these steps on the old website:

  1. Install and activate WP Easy Migration
  2. Open WP Easy Migration in the admin menu
  3. Click Export Website
  4. Wait until the backup is created
  5. Click Download Backup

The plugin creates a backup ZIP that includes:

  • database.sql
  • files.zip

These are packaged into wp-easy-migration-backup.zip.

Important: After you successfully use the backup on the new website, delete the downloaded backup file from your uploads or server storage if you no longer need it. If you keep an older backup file and create another export later, the backup ZIP size can become much larger and may nearly double in size, which can exceed your PHP upload limits.

Importing a Website

Use these steps on the new website:

  1. Install and activate WP Easy Migration
  2. Open WP Easy Migration
  3. Under Import Website, choose the backup ZIP file
  4. Click Upload Backup
  5. Wait until the plugin shows:
  • Import folder: Found
  • database.sql: Found
  • files.zip: Found

When those items are found, the backup is ready to restore.

Important: If Upload Backup keeps loading and does not complete, that may be a sign that the backup file is too large for your current PHP upload settings.

Restoring a Website

After uploading the backup on the new website:

  1. Scroll to Run Restore
  2. Enter the Old Site URL if needed
  3. Click Run Restore
  4. Confirm the warning
  5. Wait for the plugin to finish:
  • Restoring database
  • Restoring files
  • Replacing URLs
  • Cleaning up temporary files
  • Migration complete
Important: If the page becomes blank after clicking Run Restore, do not assume the migration failed immediately. Wait until the browser tab loader at the top fully finishes. Depending on the size of your website, backup file, database, media library, themes, and plugins, this may take a while.

If the page stays blank after the loader finishes, go manually to:

/wp-admin/

Then log in again if needed and check the website.

After restore, the temporary import files are deleted automatically.

Old Site URL

What is the Old Site URL?

The Old Site URL is the full URL of the website you exported from.

Example:

https://oldsite.com

If you are moving the site to a new domain, the plugin uses this value to replace old URLs in the database with the new website URL.

Example migration:

  • Old website: https://oldsite.com
  • New website: https://newsite.com

In this case, enter https://oldsite.com.

The plugin will replace old links, media URLs, and stored site references with the new website URL.

When should I use the Old Site URL field?

Use the Old Site URL field when:

  • moving to a different domain
  • moving from staging to live
  • moving from one subdomain to another
  • moving from one folder/site path to another
  • the plugin cannot reliably detect the old domain automatically

Examples:

  • https://staging.example.comhttps://example.com
  • https://example.com/oldsitehttps://example.com
  • https://old-domain.comhttps://new-domain.com

When can I leave it blank?

You can leave it blank if:

  • the domain is staying the same
  • you are testing migration on the same site
  • the imported database already matches the current site URL

Note: entering the Old Site URL manually is recommended when the domain changes.

What Gets Exported

WP Easy Migration exports:

  • WordPress database
  • /wp-content/uploads
  • /wp-content/themes
  • /wp-content/plugins

The plugin excludes its own folder during file export:

  • /wp-content/plugins/wp-easy-migration

This prevents the migration plugin from overwriting itself during restore.

What Happens During Restore

During restore, the plugin:

  1. imports database.sql
  2. extracts and restores files.zip
  3. safely replaces old URLs with the new site URL
  4. updates home and siteurl
  5. removes temporary import files

The plugin also writes a log file here:

/wp-content/wpem-log.txt

Migration Log

The migration log is useful for troubleshooting.

Location:

/wp-content/wpem-log.txt

The log may contain entries such as:

  • Starting export
  • Database exported
  • Files exported
  • Backup archive created
  • Starting import
  • Backup extracted successfully
  • Restoring database
  • Restoring files
  • Replacing URLs
  • Restore completed

Common Error Codes

Upload error code: 1

Meaning: The uploaded backup file is larger than the PHP server limit.

Cause: The file exceeds upload_max_filesize.

Fix: Increase PHP upload limits in your hosting environment.

Common settings:

  • upload_max_filesize
  • post_max_size
  • memory_limit
  • max_execution_time
  • max_input_time

If your host supports .user.ini, add something like:

upload_max_filesize = 512M
post_max_size = 512M
max_execution_time = 300
max_input_time = 300
memory_limit = 512M
Important: The correct PHP values depend on the size of your website and backup file. Larger websites may require higher values than the example above. You may need to increase upload size, post size, execution time, input time, and memory limit to match the size of your site.

Upload error code: 2

Meaning: The uploaded file exceeds the maximum form size allowed by the server or application.

Fix: Increase upload limits and try again.

Upload error code: 3

Meaning: The file was only partially uploaded.

Fix: Try uploading again. Check server stability, timeouts, and upload limits.

Upload error code: 4

Meaning: No file was uploaded.

Fix: Choose a backup ZIP file and upload again.

Upload error code: 6

Meaning: Missing temporary folder on the server.

Fix: Your server is missing or misconfigured PHP temp storage. Contact your hosting provider.

Upload error code: 7

Meaning: The uploaded file could not be written to disk.

Fix: Check disk permissions, available storage, and server write access.

Upload error code: 8

Meaning: A PHP extension stopped the upload.

Fix: Check server PHP extensions or contact hosting support.

Other Common Problems

Security check failed for export/import/restore

Meaning: Nonce validation failed.

Fix: Refresh the plugin page and try again.

ZipArchive is not enabled on this server

Meaning: Your server does not have the PHP ZipArchive extension enabled.

Fix: Enable ZipArchive in PHP or ask your hosting provider to enable it.

wp-content is not writable

Meaning: The plugin cannot write backup or import files into /wp-content/.

Fix: Check file permissions and make sure /wp-content/ is writable by PHP.

Failed to move uploaded file into wp-content

Meaning: The server could not move the uploaded backup file.

Fix: Check permissions, available disk space, and PHP upload settings.

Failed to open the ZIP backup file

Meaning: The uploaded backup is not a valid ZIP or is corrupted.

Fix: Re-export the backup and upload it again.

Failed to extract the ZIP backup file

Meaning: The ZIP could not be extracted.

Fix: Check ZIP integrity, server permissions, and available space.

database.sql not found

Meaning: The imported backup does not contain database.sql.

Fix: Create a fresh export from the old site and upload it again.

files.zip not found

Meaning: The imported backup does not contain files.zip.

Fix: Create a fresh export from the old site and upload it again.

Could not determine old or new URL

Meaning: The plugin could not detect one of the required site URLs.

Fix: Enter the Old Site URL manually in the restore form.

Upload Backup keeps loading

Meaning: The backup file may be too large for the current PHP configuration.

Fix: Increase:

  • upload_max_filesize
  • post_max_size
  • memory_limit
  • max_execution_time
  • max_input_time

Make sure the values match the size of the website you are migrating.

Restore page becomes blank

Meaning: The restore may still be processing in the background, especially on larger websites.

Fix: Wait for the browser tab loader at the top to fully stop. Large websites may take longer to complete restore steps. If the page remains blank after the loader finishes, manually go to:

/wp-admin/

Then check the migrated site and log in again if needed.

Recommended Server Requirements

  • PHP 7.4 or higher
  • WordPress 6.0 or higher
  • ZipArchive enabled
  • Write access to /wp-content/
  • Sufficient PHP memory
  • Sufficient upload size for backup ZIP files

Recommended PHP settings for larger backups:

upload_max_filesize = 512M
post_max_size = 512M
memory_limit = 512M
max_execution_time = 300
max_input_time = 300
Important: These are example values only. The correct limits depend on the size of your website and backup. If your site is larger, increase these values accordingly.

Important Notes

  • Use this plugin carefully on live websites
  • Always keep a separate backup before restoring
  • Best used on a fresh target WordPress installation
  • Large sites may take longer to export, upload, and restore
  • After restore, temporary import files are cleaned automatically
  • The Restore Status section may show missing again after a successful restore because cleanup removed the temporary files
  • Delete old backup ZIP files after successful migration if you no longer need them
  • If you create a new export while an older backup ZIP is still stored, the resulting file size may become much larger and may exceed your PHP upload limits

Frequently Asked Questions

Can I use WP Easy Migration on the same website for testing?

Yes, but it is mainly intended for migration to a new or fresh WordPress installation.

Do I need WP Easy Migration installed on both websites?

Yes. Install it on the old website to export, and on the new website to import and restore.

What file should I move to the new website?

Use the exported backup ZIP:

wp-easy-migration-backup.zip

What should I enter in Old Site URL?

Enter the original domain of the exported website, for example:

https://oldsite.com

What if the new website uses the same domain?

You can usually leave the Old Site URL blank if the domain is not changing.

Where is the migration log?

Here:

/wp-content/wpem-log.txt

What should I do after a successful migration?

Delete the backup ZIP file from your uploads or server if you no longer need it, so future exports do not become unnecessarily large.

Changelog

1.0.1

  • Updated stable tag to 1.0.1
  • Added restore and upload guidance
  • Added notes about deleting old backup ZIP files after successful migration
  • Added notes about PHP upload, post, memory, and timeout settings depending on website size

1.0.0

  • Initial release
  • Export database and files
  • Create downloadable backup ZIP
  • Import backup ZIP
  • Restore database and files
  • Safe URL replacement for serialized data
  • Manual Old Site URL support
  • Temporary import cleanup
  • Migration log support