{"id":270565,"date":"2026-01-16T15:41:59","date_gmt":"2026-01-16T15:41:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpshift-companion\/"},"modified":"2026-08-30T15:31:35","modified_gmt":"2026-08-30T15:31:35","slug":"wpshift-companion","status":"publish","type":"plugin","link":"https:\/\/he.wordpress.org\/plugins\/wpshift-companion\/","author":23428748,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.1.0","stable_tag":"1.1.0","tested":"7.1","requires":"5.0","requires_php":"7.4","requires_plugins":null,"header_name":"WPShift Companion","header_author":"WPShift","header_description":"Server management for WordPress \u2014 provision servers, deploy sites, manage SSL, backups & SMTP. Includes performance optimization and database cleanup tools.","assets_banners_color":"cccccc","last_updated":"2026-08-30 15:31:35","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wpshift.io","header_author_uri":"https:\/\/wpshift.io","rating":5,"author_block_rating":0,"active_installs":10,"downloads":488,"num_ratings":2,"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":"wpshift","date":"2026-01-16 15:42:46","revision":3441117},"1.0.1":{"tag":"1.0.1","author":"wpshift","date":"2026-02-23 15:59:35","revision":3467850},"1.0.33":{"tag":"1.0.33","author":"wpshift","date":"2026-06-01 09:56:46","revision":3556524},"1.1.0":{"tag":"1.1.0","author":"wpshift","date":"2026-08-30 15:31:35","revision":3672773}},"upgrade_notice":{"1.1.0":"<p>Security hardening and migration reliability improvements, plus full translation support and complete uninstall cleanup. Recommended for all users.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":2},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3441118,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3441120,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3441118,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.33","1.1.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[1456,4155,187,61725,6696],"plugin_category":[59],"plugin_contributors":[254130],"plugin_business_model":[],"class_list":["post-270565","plugin","type-plugin","status-publish","hentry","plugin_tags-hosting","plugin_tags-migration","plugin_tags-optimization","plugin_tags-server-management","plugin_tags-smtp","plugin_category-utilities-and-tools","plugin_contributors-wpshift","plugin_committers-wpshift"],"banners":{"banner":"https:\/\/ps.w.org\/wpshift-companion\/assets\/banner-772x250.png?rev=3441118","banner_2x":"https:\/\/ps.w.org\/wpshift-companion\/assets\/banner-1544x500.png?rev=3441120","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wpshift-companion\/assets\/icon-128x128.png?rev=3441118","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>WPShift Companion connects a WordPress site to <a href=\"https:\/\/wpshift.io\">WPShift<\/a>, a hosting and server management platform for WordPress. The plugin is the bridge between your site and your WPShift dashboard.<\/p>\n\n<p><strong>What the plugin does:<\/strong><\/p>\n\n<ul>\n<li><strong>Connect your site<\/strong> \u2014 link this WordPress site to your WPShift account with a guided authorization flow. No passwords are exchanged; the connection uses a revocable token.<\/li>\n<li><strong>One-click migration<\/strong> \u2014 move this site onto a WPShift-managed server. The plugin builds a complete backup (files and database) in the background and hands it to WPShift, which restores it on your new server. Migration always requires an explicit confirmation from a site administrator before anything is transferred.<\/li>\n<li><strong>Magic login<\/strong> \u2014 open this site's WordPress admin directly from your WPShift dashboard, without typing a password.<\/li>\n<li><strong>Managed SMTP<\/strong> \u2014 when your WPShift server provides outgoing email, the plugin applies that SMTP configuration to WordPress automatically, so site email is delivered reliably.<\/li>\n<li><strong>Performance optimizer<\/strong> \u2014 a set of opt-in tweaks: disable emojis, embeds and jQuery Migrate, control the Heartbeat API, clean up header output, lazy-load media, and harden common attack surfaces (XML-RPC, login hints, author archives).<\/li>\n<li><strong>Database cleanup<\/strong> \u2014 remove revisions, auto-drafts, trashed posts and comments, spam, expired transients, and orphaned metadata.<\/li>\n<\/ul>\n\n<p>The optimizer and database cleanup work on their own; connecting to WPShift is only required for migration, magic login, and managed SMTP. A WPShift account is available at <a href=\"https:\/\/wpshift.io\">wpshift.io<\/a>.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the WPShift platform at <strong>app.wpshift.io<\/strong> (operated by WPShift, https:\/\/wpshift.io). Without this connection the migration, magic login, and managed SMTP features cannot function. Data is only transmitted after you connect your site to a WPShift account, except where noted.<\/p>\n\n<p><strong>What is sent, and when:<\/strong><\/p>\n\n<ul>\n<li><strong>Connecting your site<\/strong> \u2014 your site's URL, site name, and the admin email address are sent to app.wpshift.io to establish the connection and identify the site in your dashboard.<\/li>\n<li><strong>While connected<\/strong> \u2014 the plugin periodically exchanges site status and site health information (WordPress version, plugin version, connection state, and WordPress Site Health results) with app.wpshift.io so your dashboard can show the state of the site. WPShift can request this information through a token-protected endpoint on your site.<\/li>\n<li><strong>Managed SMTP<\/strong> \u2014 the plugin fetches your server's SMTP configuration (host, port, credentials) from app.wpshift.io and applies it to outgoing WordPress email. The credentials are cached briefly on your site; they are not sent anywhere else.<\/li>\n<li><strong>Magic login<\/strong> \u2014 when you use magic login from the WPShift dashboard, a one-time token is verified against app.wpshift.io before you are signed in.<\/li>\n<li><strong>Migration<\/strong> \u2014 when you explicitly start a migration, a full backup of your site (all files and the complete database) is transferred to the WPShift-managed server you are migrating to. This is the entire purpose of the migration feature and only happens after an administrator confirms it.<\/li>\n<\/ul>\n\n<p>No data is sent to any service other than WPShift. See https:\/\/wpshift.io for WPShift's terms and privacy information.<\/p>\n\n<h3>Third Party Libraries<\/h3>\n\n<p>This plugin includes the following third-party libraries:<\/p>\n\n<h4>Alpine.js<\/h4>\n\n<ul>\n<li>Version: 3.14.1<\/li>\n<li>License: MIT<\/li>\n<li>Source: https:\/\/github.com\/alpinejs\/alpine<\/li>\n<li>Website: https:\/\/alpinejs.dev<\/li>\n<\/ul>\n\n<p>Alpine.js is used for reactive UI components in the admin interface. The minified file <code>assets\/js\/alpine.min.js<\/code> is built from the official Alpine.js repository.<\/p>\n\n<p>To build from source:\n1. Clone https:\/\/github.com\/alpinejs\/alpine\n2. Run <code>npm install<\/code>\n3. Run <code>npm run build<\/code>\n4. The built file will be in <code>packages\/alpinejs\/dist\/<\/code><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>wpshift-companion<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory, or install the plugin through the WordPress plugins screen.<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress.<\/li>\n<li>Go to Dashboard \u2192 WPShift to connect your site to your WPShift account.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20wpshift%20account%3F\"><h3>Do I need a WPShift account?<\/h3><\/dt>\n<dd><p>You need a WPShift account for the connected features (migration, magic login, managed SMTP). You can create one at https:\/\/wpshift.io. The performance optimizer and database cleanup work without an account.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20without%20migrating%20my%20site%3F\"><h3>Can I use this without migrating my site?<\/h3><\/dt>\n<dd><p>Yes. You can connect to WPShift for magic login and SMTP without migrating, or use the optimization tools without connecting at all.<\/p><\/dd>\n<dt id=\"how%20does%20the%20migration%20work%3F\"><h3>How does the migration work?<\/h3><\/dt>\n<dd><p>After you confirm the migration in your WordPress admin, the plugin builds a complete backup of your site (all files plus a database export) in a protected temporary directory, then transfers it to WPShift, which restores it on your WPShift-managed server. Large sites are processed in small background steps so the migration survives page reloads. Temporary files are removed when the migration finishes or is cancelled.<\/p><\/dd>\n<dt id=\"is%20my%20data%20secure%3F\"><h3>Is my data secure?<\/h3><\/dt>\n<dd><p>Communication with WPShift happens over HTTPS. Your WordPress password is never sent to or stored by WPShift; the connection uses an access token stored in your site's database, and migration backup downloads are protected by one-time tokens that expire automatically. You can disconnect at any time from the plugin's Settings tab, and deleting the plugin removes all of its stored data from your site.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20work%20on%20multisite%3F\"><h3>Does the plugin work on multisite?<\/h3><\/dt>\n<dd><p>The optimizer and cleanup tools work per site. Migration of multisite networks has specific handling and limitations; the plugin will tell you before you start if your setup is not supported.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.1.0<\/h4>\n\n<ul>\n<li>Redesigned admin interface.<\/li>\n<li>Safer, more robust migration: free-disk-space checks before a backup starts, better handling of very large files, multisite detection, and migration state that survives object-cache (Redis) evictions.<\/li>\n<li>Security hardening: a migration now always requires explicit confirmation by a site administrator before any data is transferred; backup downloads are protected by one-time tokens that expire automatically; magic login resolves strictly to the intended user account.<\/li>\n<li>Full internationalization: translations now load correctly and a translation template ships with the plugin.<\/li>\n<li>Complete uninstall cleanup: deleting the plugin now removes all options, migration state, transients, scheduled events, and temporary files \u2014 on multisite, for every site.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release<\/li>\n<li>Site connection and authentication<\/li>\n<li>Site migration functionality<\/li>\n<li>Magic login support<\/li>\n<li>SMTP configuration<\/li>\n<li>Performance optimization tools<\/li>\n<li>Database cleanup utilities<\/li>\n<\/ul>","raw_excerpt":"Connect your site to the WPShift hosting dashboard: one-click migration to WPShift-managed servers, magic login, managed SMTP, and site optimization.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/270565","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=270565"}],"author":[{"embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wpshift"}],"wp:attachment":[{"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=270565"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=270565"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=270565"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=270565"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=270565"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/he.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=270565"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}