{"id":385880,"date":"2026-10-14T19:07:47","date_gmt":"2026-10-14T19:07:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/easy-wp-migration-and-backup\/"},"modified":"2026-10-12T17:42:30","modified_gmt":"2026-10-12T17:42:30","slug":"mihanz-site-migration-backup","status":"publish","type":"plugin","link":"https:\/\/hi.wordpress.org\/plugins\/mihanz-site-migration-backup\/","author":23080261,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.3","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Mihanz Site Migration and Backup","header_author":"Minhaz Uddin","header_description":"Export your whole WordPress site to one package, import it anywhere and keep scheduled backups. Resumable, with safe URL replacement and automatic safety backup.","assets_banners_color":"449096","last_updated":"2026-10-12 17:42:30","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/mihanz-site-migration-backup\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":70,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"mihanz","date":"2026-10-14 18:43:45","revision":3746960}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-256x256.jpg":{"filename":"icon-256x256.jpg","revision":3746960,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3746960,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":499}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[151,1859,87,4155,152],"plugin_category":[59],"plugin_contributors":[283296],"plugin_business_model":[],"class_list":["post-385880","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-export","plugin_tags-import","plugin_tags-migration","plugin_tags-restore","plugin_category-utilities-and-tools","plugin_contributors-mihanz","plugin_committers-mihanz"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/mihanz-site-migration-backup\/assets\/icon-256x256.jpg?rev=3746960","icon_2x":"https:\/\/ps.w.org\/mihanz-site-migration-backup\/assets\/icon-256x256.jpg?rev=3746960","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Mihanz Site Migration and Backup<\/strong> moves a WordPress website in two simple steps:<\/p>\n\n<ol>\n<li>On the old site click <strong>Export<\/strong> and download the <code>.wpem<\/code> package.<\/li>\n<li>On the new site click <strong>Import<\/strong> and drag the file into the browser.<\/li>\n<\/ol>\n\n<p>Everything else is handled for you.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li><strong>Export without size limit<\/strong> \u2013 database, plugins, themes, media library, must-use plugins and other wp-content folders. Works in short resumable steps, so large sites do not hit PHP timeouts or memory limits.<\/li>\n<li><strong>Real progress<\/strong> \u2013 the progress bar shows measured work (files packaged, rows exported), not a fake animation.<\/li>\n<li><strong>Drag &amp; drop import<\/strong> \u2013 chunked, resumable upload with a checksum for every chunk. PHP upload limits do not matter.<\/li>\n<li><strong>Package validation before anything changes<\/strong> \u2013 every part of the package is checked (SHA-256 checksums, structure, file paths and database statements). A damaged or malicious package is rejected before your site is touched.<\/li>\n<li><strong>Automatic safety backup<\/strong> \u2013 before an import the current site is backed up, and a <strong>Restore Previous Site<\/strong> button is offered if something goes wrong.<\/li>\n<li><strong>Safe URL replacement<\/strong> \u2013 old addresses are replaced with the new ones in the whole database. Serialized data (page builders, widgets, options) and JSON are handled without corrupting them.<\/li>\n<li><strong>Database prefix change<\/strong> is handled automatically.<\/li>\n<li><strong>Backups screen<\/strong> \u2013 download, restore, verify, rename and delete backups stored on your server.<\/li>\n<li><strong>Scheduled backups<\/strong> \u2013 daily, weekly or monthly, keep the last 5, 10, 20 or 50.<\/li>\n<li><strong>System Status and Logs<\/strong> screens.<\/li>\n<li><strong>WP-CLI<\/strong> \u2013 <code>wp wpem export<\/code>, <code>import<\/code>, <code>backups<\/code>, <code>restore<\/code>, <code>verify<\/code>, <code>cleanup<\/code>.<\/li>\n<\/ul>\n\n<h4>No size limits<\/h4>\n\n<p>Export and import have no size limit in this plugin. Packages are uploaded in small, resumable chunks, so PHP upload limits do not apply. Only the free disk space of your server matters.<\/p>\n\n<h4>Security<\/h4>\n\n<ul>\n<li>Only administrators (super administrators on multisite) can export, import, restore or delete.<\/li>\n<li>Backup files are stored in a protected folder with unguessable file names and are downloaded only through an authenticated request.<\/li>\n<li>Package contents are never trusted: unsafe file paths (<code>..\/<\/code>, absolute paths, symlinks) are refused, executable files inside the uploads folder are skipped, and only a strict set of database statements can run.<\/li>\n<\/ul>\n\n<h4>Limitations<\/h4>\n\n<ul>\n<li>WordPress Multisite is not supported yet.<\/li>\n<li><code>wp-config.php<\/code> is never exported (it contains secrets).<\/li>\n<li>Database tables that do not start with your table prefix are not exported.<\/li>\n<li>Cloud storage (Google Drive, Dropbox, S3) is not included in this version.<\/li>\n<\/ul>\n\n<h4>Privacy<\/h4>\n\n<p>This plugin does not send any data to external services and does not track you. Backups stay on your own server.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code>, or install it from <strong>Plugins \u2192 Add New<\/strong>.<\/li>\n<li>Activate <strong>Mihanz Site Migration and Backup<\/strong>.<\/li>\n<li>Open <strong>Mihanz Migration<\/strong> in the admin menu.<\/li>\n<\/ol>\n\n<p>To migrate a site, install and activate the plugin on both sites. Export on the old site, then import on the new site.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"is%20there%20a%20limit%20for%20export%3F\"><h3>Is there a limit for export?<\/h3><\/dt>\n<dd><p>No. Export has no size limit.<\/p><\/dd>\n<dt id=\"will%20i%20be%20logged%20out%20after%20an%20import%3F\"><h3>Will I be logged out after an import?<\/h3><\/dt>\n<dd><p>Yes. An import replaces the users table, so you must log in with the username and password of the imported site.<\/p><\/dd>\n<dt id=\"something%20went%20wrong%20during%20an%20import.%20what%20now%3F\"><h3>Something went wrong during an import. What now?<\/h3><\/dt>\n<dd><p>Use the <strong>Restore Previous Site<\/strong> button. A safety backup of your site is created automatically before every import. You can also use <strong>Backups \u2192 Restore<\/strong> on the \"Pre-Import Backup\".<\/p><\/dd>\n<dt id=\"does%20it%20work%20on%20multisite%3F\"><h3>Does it work on Multisite?<\/h3><\/dt>\n<dd><p>Not yet.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First public release: export without size limit, resumable drag &amp; drop import, package validation, automatic safety backup and rollback, serialization-safe URL replacement, scheduled backups, backups screen, WP-CLI, System Status and Logs.<\/li>\n<\/ul>","raw_excerpt":"Export your whole WordPress site to one package, import it on another site, and keep scheduled backups. Resumable, with safe URL replacement.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/385880","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=385880"}],"author":[{"embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/mihanz"}],"wp:attachment":[{"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=385880"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=385880"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=385880"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=385880"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=385880"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hi.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=385880"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}