{"id":283667,"date":"2026-04-20T13:26:40","date_gmt":"2026-04-20T13:26:40","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/migro-free\/"},"modified":"2026-05-21T19:52:18","modified_gmt":"2026-05-21T19:52:18","slug":"migro-content-migrator","status":"publish","type":"plugin","link":"https:\/\/ps.wordpress.org\/plugins\/migro-content-migrator\/","author":23452124,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.3.4","stable_tag":"2.3.4","tested":"7.0","requires":"5.6","requires_php":"7.4","requires_plugins":null,"header_name":"Migro Content Migrator","header_author":"Migro.dev","header_description":"Deploy content between staging and production in either direction. Move individual posts with complete metadata including Yoast SEO, ACF, and taxonomies. Selective content migration for modern workflows.","assets_banners_color":"feefe5","last_updated":"2026-05-21 19:52:18","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/buymeacoffee.com\/migro","header_plugin_uri":"https:\/\/migro.dev","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":434,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.3":{"tag":"2.2.3","author":"migro","date":"2026-04-20 13:29:48"},"2.2.4":{"tag":"2.2.4","author":"migro","date":"2026-05-08 14:49:09"},"2.2.5":{"tag":"2.2.5","author":"migro","date":"2026-05-11 17:27:56"},"2.2.6":{"tag":"2.2.6","author":"migro","date":"2026-05-13 04:38:26"},"2.2.7":{"tag":"2.2.7","author":"migro","date":"2026-05-13 15:33:48"},"2.2.8":{"tag":"2.2.8","author":"migro","date":"2026-05-13 18:48:54"},"2.2.9":{"tag":"2.2.9","author":"migro","date":"2026-05-14 14:31:02"},"2.3.0":{"tag":"2.3.0","author":"migro","date":"2026-05-16 15:29:40"},"2.3.1":{"tag":"2.3.1","author":"migro","date":"2026-05-17 23:13:58"},"2.3.2":{"tag":"2.3.2","author":"migro","date":"2026-05-18 19:33:47"},"2.3.3":{"tag":"2.3.3","author":"migro","date":"2026-05-21 18:04:07"},"2.3.4":{"tag":"2.3.4","author":"migro","date":"2026-05-21 19:52:18"}},"upgrade_notice":{"2.3.4":"<p>Fully tested on WordPress 7.0<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3511002,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3511002,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3511002,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3511002,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.3","2.2.4","2.2.5","2.2.6","2.2.7","2.2.8","2.2.9","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3510910,"resolution":"1","location":"assets","locale":"","width":2602,"height":1734},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3510910,"resolution":"2","location":"assets","locale":"","width":2544,"height":1782}},"screenshots":{"1":"Migration interface \u2014 select and deploy content","2":"Content selection with filters","3":"Migration results with detailed status","4":"Settings page for connection configuration"}},"plugin_section":[],"plugin_tags":[529,16271,4155,19979,8197],"plugin_category":[59],"plugin_contributors":[260629],"plugin_business_model":[],"class_list":["post-283667","plugin","type-plugin","status-publish","hentry","plugin_tags-content","plugin_tags-deployment","plugin_tags-migration","plugin_tags-staging","plugin_tags-workflow","plugin_category-utilities-and-tools","plugin_contributors-migro","plugin_committers-migro"],"banners":{"banner":"https:\/\/ps.w.org\/migro-content-migrator\/assets\/banner-772x250.png?rev=3511002","banner_2x":"https:\/\/ps.w.org\/migro-content-migrator\/assets\/banner-1544x500.png?rev=3511002","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/migro-content-migrator\/assets\/icon-128x128.png?rev=3511002","icon_2x":"https:\/\/ps.w.org\/migro-content-migrator\/assets\/icon-256x256.png?rev=3511002","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/migro-content-migrator\/assets\/screenshot-1.png?rev=3510910","caption":"Migration interface \u2014 select and deploy content"},{"src":"https:\/\/ps.w.org\/migro-content-migrator\/assets\/screenshot-2.png?rev=3510910","caption":"Content selection with filters"}],"raw_content":"<!--section=description-->\n<p>Migro Content Migrator makes content deployment simple. Migrate individual posts, pages, and content from staging to production or vice versa. Every migration includes all metadata: categories, tags, and featured images.<\/p>\n\n<p><strong>Features:<\/strong>\n* Migrate posts and pages between environments\n* Categories and tags included automatically\n* Featured images migrated with deduplication\n* Batch migration for multiple items at once\n* Pre-migration backups with one-click restore\n* Direct database connection for reliable transfers\n* Clean, modern interface\n* Setup wizard for easy configuration<\/p>\n\n<p><strong>How It Works:<\/strong>\n1. Install Migro on both your staging and production sites\n2. Configure the connection between environments\n3. Select content to migrate and click deploy\n4. Content arrives with all metadata intact<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to <code>\/wp-content\/plugins\/migro-content-migrator<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' screen<\/li>\n<li>Follow the setup wizard to configure your connection<\/li>\n<li>Start migrating content!<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20to%20install%20migro%20on%20both%20sites%3F\"><h3>Do I need to install Migro on both sites?<\/h3><\/dt>\n<dd><p>Yes. Migro needs to be active on both the staging and production site.<\/p><\/dd>\n<dt id=\"does%20migro%20work%20with%20multisite%3F\"><h3>Does Migro work with multisite?<\/h3><\/dt>\n<dd><p>Migro is designed for single-site installations. Multisite support is not currently available.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20images%20that%20already%20exist%20on%20the%20destination%3F\"><h3>What happens to images that already exist on the destination?<\/h3><\/dt>\n<dd><p>Migro uses MD5 hashing to detect duplicate images. If an identical image is already in the destination's Media Library, Migro links to the existing attachment instead of uploading a copy.<\/p><\/dd>\n<dt id=\"can%20i%20migrate%20from%20production%20to%20staging%3F\"><h3>Can I migrate from production to staging?<\/h3><\/dt>\n<dd><p>Yes. Pull and Push work in both directions. You can pull content from production into staging just as easily as pushing from staging to production.<\/p><\/dd>\n<dt id=\"will%20migrating%20a%20post%20update%20its%20url%20on%20the%20destination%3F\"><h3>Will migrating a post update its URL on the destination?<\/h3><\/dt>\n<dd><p>Migro preserves the original slug. The URL on the destination will match the URL on the source site, unless the permalink structure differs between environments.<\/p><\/dd>\n<dt id=\"what%27s%20the%20difference%20between%20overwrite%20and%20duplicate%3F\"><h3>What's the difference between Overwrite and Duplicate?<\/h3><\/dt>\n<dd><p>Overwrite updates the existing item in place \u2014 same post ID, same URL, updated content. Duplicate creates a brand new post with a new ID.<\/p><\/dd>\n<dt id=\"does%20migro%20migrate%20users%3F\"><h3>Does Migro migrate users?<\/h3><\/dt>\n<dd><p>No. User accounts are not migrated. If a post author doesn't exist on the destination, the post is assigned to the admin who ran the migration.<\/p><\/dd>\n<dt id=\"is%20my%20database%20password%20stored%20securely%3F\"><h3>Is my database password stored securely?<\/h3><\/dt>\n<dd><p>Database passwords are encrypted before being saved to the WordPress options table. They are never stored or transmitted in plain text.<\/p><\/dd>\n<dt id=\"what%27s%20the%20minimum%20wordpress%20version%20required%3F\"><h3>What's the minimum WordPress version required?<\/h3><\/dt>\n<dd><p>WordPress 5.6. This is the version that introduced Application Passwords, which Migro uses for REST API authentication.<\/p><\/dd>\n<dt id=\"can%20i%20use%20migro%20with%20a%20staging%20environment%20on%20a%20different%20server%3F\"><h3>Can I use Migro with a staging environment on a different server?<\/h3><\/dt>\n<dd><p>Yes, as long as you have the remote site's database credentials and can create an Application Password on that site.<\/p><\/dd>\n<dt id=\"what%20if%20the%20migration%20fails%20halfway%20through%3F\"><h3>What if the migration fails halfway through?<\/h3><\/dt>\n<dd><p>Each item is migrated independently. If one item fails, the others continue. The Logs page shows exactly which items succeeded, which were skipped, and which failed with an error message.<\/p><\/dd>\n<dt id=\"does%20migro%20handle%20woocommerce%20product%20variations%3F\"><h3>Does Migro handle WooCommerce product variations?<\/h3><\/dt>\n<dd><p>Yes. Variable products and all their variations are fully migrated including pricing, stock, attributes, and images. This requires the Pro version.<\/p><\/dd>\n<dt id=\"does%20migro%20collect%20any%20usage%20data%3F\"><h3>Does Migro collect any usage data?<\/h3><\/dt>\n<dd><p>Only if you explicitly opt in. After installation Migro shows a one-time prompt asking whether you want to share anonymous usage data. Nothing is sent unless you choose \"Yes\" \u2014 if you decline or ignore the prompt, no data ever leaves your site, and you can change your choice at any time on the Settings page. When enabled, Migro sends anonymous, non-personal information such as the plugin version, WordPress\/PHP version, and aggregate migration counts. It never sends post content, URLs, credentials, or any personally identifiable information.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.3.4<\/h4>\n\n<ul>\n<li>Fully tested on WordPress 7.0<\/li>\n<\/ul>\n\n<h4>2.3.3<\/h4>\n\n<ul>\n<li>Improved post parent remapping to preserve hierarchical relationships accurately.<\/li>\n<li>Normalized database draft date handling for modern MySQL strict mode environments.<\/li>\n<li>Corrected documentation and setup flow to clarify that the Free tier has unlimited migrations.<\/li>\n<li>Improved migration logs and failure status reporting.<\/li>\n<li>Minor translation updates and stability fixes.<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Internal reliability and maintenance improvements.<\/li>\n<li>Small translation updates and improvements.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Strengthened encryption of stored connection credentials and other at-rest secrets.<\/li>\n<li>Migrations now abort safely if a requested pre-migration backup cannot be created, so content is never deployed without its backup.<\/li>\n<li>Fixed the setup wizard not showing correct messages.<\/li>\n<li>Fixed an issue where users with the Editor role were blocked from accessing the migration screen.<\/li>\n<li>General security hardening and stability improvements.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Full internationalization: every user-facing string in the plugin is now translatable.<\/li>\n<li>Added Brazilian Portuguese (pt_BR) and Spanish (es_ES) translations. These are initial machine translations \u2014 community review and contributions are very welcome.<\/li>\n<li>Improved translation consistency across the plugin.<\/li>\n<li>General stability improvements and minor bug fixes.<\/li>\n<\/ul>\n\n<h4>2.2.9<\/h4>\n\n<ul>\n<li>Improved admin menu navigation with a dedicated Backups page.<\/li>\n<li>Added pre-migration compatibility checks for posts containing page builder content.<\/li>\n<li>Improved page builder data handling for more reliable migrations.<\/li>\n<li>Hardened security with additional rate limiting and prepared database queries.<\/li>\n<li>General stability improvements and minor bug fixes.<\/li>\n<\/ul>\n\n<h4>2.2.8<\/h4>\n\n<ul>\n<li>Added optional, opt-in telemetry to help improve the plugin. It is off by default \u2014 no data is ever sent unless you explicitly consent to the prompt, and declining keeps it permanently disabled. See the FAQ for what is collected.<\/li>\n<li>Improved Media Path Preservation to ensure folder structures are maintained during transfers.<\/li>\n<li>Hardened Beaver Builder support for more reliable complex layout migrations.<\/li>\n<li>Implemented a promotional UI for the Migro Beta program for Free users.<\/li>\n<li>General stability improvements and minor bug fixes.<\/li>\n<\/ul>\n\n<h4>2.2.6<\/h4>\n\n<ul>\n<li>Enhanced remote connection authentication with advanced Sodium encryption capabilities.<\/li>\n<li>Improved media deduplication logic to prevent redundant file uploads during complex migrations.<\/li>\n<li>Resolved minor issues to ensure complete media metadata preservation during transfers.<\/li>\n<\/ul>\n\n<h4>2.2.5<\/h4>\n\n<ul>\n<li>General security improvements to strengthen the plugin<\/li>\n<li>Usability improvements and stability fixes<\/li>\n<\/ul>\n\n<h4>2.2.4<\/h4>\n\n<ul>\n<li>General security improvements to strengthen the plugin<\/li>\n<li>Usability improvements and stability fixes<\/li>\n<\/ul>\n\n<h4>2.2.3<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Posts and pages migration<\/li>\n<li>Categories and tags support<\/li>\n<li>Featured images with deduplication<\/li>\n<li>Batch migration<\/li>\n<li>Pre-migration backups<\/li>\n<li>Setup wizard<\/li>\n<li>Modern interface<\/li>\n<\/ul>","raw_excerpt":"Deploy content between staging and production. Selective migration for posts and pages with complete metadata.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/283667","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=283667"}],"author":[{"embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/migro"}],"wp:attachment":[{"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=283667"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=283667"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=283667"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=283667"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=283667"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ps.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=283667"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}