Moving a WordPress site to a new host involves more than copying files. This guide walks you through the entire process in order: verifying eligibility, planning your migration, creating your destination site, running the migration itself, previewing and testing before go-live, pointing your domain, and completing the post-migration steps that are easy to overlook. Follow it from start to finish and you will have a predictable, well-documented launch.
Before You Begin
Make sure the following are in place before you start:
- An active Pressable account
- Access to your source site’s WordPress admin dashboard
- Access to your domain registrar or DNS management panel
- A preferred data center region selected (see Where Are Pressable Data Centers Located?)
Pressable hosts WordPress sites only. If your site is built on a non-WordPress platform such as Squarespace, Wix, Shopify, Drupal, Joomla, or plain HTML, it cannot be migrated to Pressable directly.
A conversion to WordPress would be required first. We recommend reaching out to a few of our development partners to requests quotes if needed.
If your site is currently behind Cloudflare’s proxy (the orange cloud icon in your Cloudflare DNS settings), you will need to temporarily disable proxying before running the migration. The migration plugin communicates directly with your source site, and an active Cloudflare proxy may block that communication.
You can re-enable it after the migration is complete if desired, though we recommend reviewing our guidance on Cloudflare and Pressable first.
- How to Point Cloudflare DNS Records to Pressable
- Understanding Pressable’s Security and Cloudflare’s Proxy
If You Run an E-Commerce Site, Read This First
If your site processes orders, skipping this section is likely to create problems that are difficult to fix after the fact. Take five minutes to read it and choose your approach before doing anything else.
Avoiding Orphaned Orders
When you migrate a WooCommerce store, the migration captures a snapshot of your database at a point in time. If your store remains live and accepting orders on the old host during and after the migration, those new orders exist only in the old database. They will not appear on your Pressable site. Depending on your order volume and migration window, this could mean anywhere from a handful to hundreds of missing orders with no straightforward way to recover them after the fact.
A partial database post-migration sync is not something within Pressable’s support scope to do for you so it is important to plan accordingly before migration begins.
You have two options. Choose one before you start.
Option 1: Maintenance Mode Migration (Recommended)
Put your store into maintenance mode before starting the migration, keep it there until DNS has fully propagated to Pressable, then bring it back online. No orders are placed during the window, so nothing is orphaned.
The tradeoff is downtime, which means this approach requires planning:
- Choose your migration window carefully. Use your analytics to identify your lowest-traffic period, typically the middle of the night in your primary customer timezone. Be honest about the cost: someone on your team needs to be available and alert to make DNS changes and verify the site, so “middle of the night” has a real operational price. A low-traffic afternoon may be a more practical choice for smaller teams.
- Run a test migration first. Before your real migration window, run a complete migration to a test site to see how long the process actually takes. Use that time to size your maintenance window appropriately and avoid surprises. You can reset or replace the destination site afterward.
- Enable maintenance mode on the source site before migrating, not after. If you wait until the migration has started, orders may already be coming in.
Your current host may have a built-in maintenance mode option. If not, several plugins can handle it for you. Some popular options include:
Option 2: Live Migration with Post-Cutover Data Sync
If your store cannot tolerate any downtime, you can migrate while the store remains live and then sync the orders and customer data that accumulated between the migration and DNS cutover afterward. This approach requires more technical effort and carries its own risks if not executed carefully.
We have a guide outlining how to do a partial sync: Migrating WooCommerce Orders and Customers Between Sites
Decide which path you are taking before moving to the next step.
Step 1: Create Your Destination Site
Every migration requires a destination site to exist in Pressable before anything moves. Log into my.pressable.com and add a new site. When prompted, choose Migrate Existing Site in the upper left rather than a standard new WordPress site.

Once the site is created, open its settings page, click the three-dot menu icon in the upper right corner, and select Migrate Here. This screen provides the SFTP credentials you will need in the next step. Leave it open or copy the credentials somewhere accessible.

Full instructions: Adding a New Site to Your Pressable Account
Step 2: Choose Your Migration Method
Pressable offers three migration paths. The automated plugin handles the vast majority of sites and is where many people choose to start.
Option A: Automated Migration Plugin (Recommended)
Install the Pressable Automated Migration plugin on your source site (the one you are moving away from). Enter the SFTP credentials from the Migrate Here panel, click Migrate, and the plugin does the rest. You will receive an email when the migration completes.
A few things to know before starting:
- Disconnect Jetpack on the source site first. Two sites sharing the same Jetpack connection will cause conflicts known as an identity crisis.
- The plugin skips certain files by default, including cache directories, backup files, log files, version control directories like
.git, and files larger than 1 GB. After the migration completes, review the Files Not Migrated list to confirm nothing essential was left behind. Anything missing can be uploaded manually via SFTP or SSH. - A Critical Error after migration is almost always a PHP version mismatch. If you see one, check and adjust the PHP version for the destination site before troubleshooting anything else.
- Reset the migration SFTP password after a successful migration. You can do this from the Migrate Here panel in your site’s settings.
Full instructions: Using the Pressable Automated Migration Plugin
Option B: Manual Migration
If the automated plugin is not available (your current host blocks plugin installation, or the plugin has failed), you can migrate manually by providing two things: a compressed archive of your site’s wp-content folder and a compressed export of your database. These can be uploaded via SFTP to the /tmp directory of your Pressable destination site, or provided as direct download links. Dropbox and AWS S3 provide suitable direct links; WeTransfer, Google Drive, and OneDrive do not.
Once you have those backup files uploaded, contact Pressable support and we’ll handle the rest.
Full instructions: Manually Migrating Your WordPress Site to Pressable
Option C: Assisted Migration
If you would prefer Pressable’s team to handle the migration, reach out via live chat or email help@pressable.com. You will need to provide the source site’s wp-admin URL, admin credentials (share these securely via a tool like QuickForget.com), and your preferred data center.
Step 3: What’s Different on Pressable
Pressable is a managed WordPress environment, which means the platform handles several things that you may have configured manually or via plugins at your previous host. Understanding these differences before you preview and launch will save significant troubleshooting time.
Caching Is Built In and Always Active
Pressable provides multiple layers of caching out of the box: Batcache for full-page caching, Memcache for object and database query caching, OPCache for PHP bytecode, and Edge Cache for global static asset and full-page delivery at the network edge. You do not need to configure any of this; it is already running.
Because Pressable’s caching system uses its own advanced-cache.php and object-cache.php files, which are symlinked into every site as read-only, third-party caching plugins cannot write to these files and will not function as intended.
Plugins like W3 Total Cache, WP Super Cache, WP Fastest Cache, and similar tools can actively interfere with Pressable’s caching layer and degrade performance rather than improve it. If you migrated from a host where you relied on a caching plugin, deactivate and remove it. Your site is already cached.
Some Plugins Are Not Compatible
Beyond caching plugins, a small number of other plugins are blocked or known to cause issues on Pressable’s platform. Review the full list before or shortly after migration.
Full list: Disallowed Plugins on Pressable
Default Plugins Come Pre-Installed
Every Pressable site includes a small set of pre-installed plugins that support platform functionality. Familiarize yourself with these so you know what to expect when you log into wp-admin after migration.
Full list: What WordPress Default Plugins Are Pre-Installed on My Site?
PHP Configuration Is Fixed
Pressable runs NGINX with a managed server configuration. PHP settings, including php.ini values, cannot be adjusted at the server level. If your previous site relied on non-standard PHP configuration values, review Pressable’s PHP settings for compatibility.
Step 4: Preview the Migrated Site Before Changing DNS
Do not point your domain yet. Your migrated site is accessible at a staging URL (typically yoursite.mystagingwebsite.com) and this window is your opportunity to verify everything is correct before any visitors are affected.
Clear Cache Before Reviewing
Before you look at anything, flush the site cache from within the MyPressable Control Panel. Skipping this step may result in seeing the Pressable default site or partially stale content rather than your migrated site.
Cache flush guide: How to Flush WordPress Site Cache and Purge Edge Cache (CDN)
Preview at Your Live Domain (Optional but Recommended)
If you want to preview the site resolving at your real domain before changing DNS publicly, use the hosts file method. This forces your local machine only to resolve your domain to Pressable’s servers, so you can check that theme styles, assets, and URLs load correctly under the production domain without affecting any other visitors.
Hosts file guide: Modifying Your Local Hosts File to Test Before DNS Updates
What to Check
Visual comparison against the origin site. Open both the origin site and the migrated Pressable site side by side and work through every item in the navigation menu. Look for differences in layout, fonts, images, and content. Chrome’s built-in split-view feature is useful here: open a tab group with both sites and use the split-view option to compare them side by side without switching tabs.
Check the mobile version. Many layout issues only appear at mobile viewport sizes. Resize your browser or use browser developer tools to verify the mobile experience matches the origin.
Page builder CSS caches. If your site uses Divi, Elementor, Bricks, or another page builder that generates static CSS files, those files may still reference the old site URL. Flush or regenerate the page builder’s CSS cache before reviewing.
Page builder cache flush guide: How to Flush the Cache in Popular WordPress Page Builders
WordPress admin functionality. Log into wp-admin and verify that plugins are active and functioning, the theme is applied correctly, and no error notices appear on the dashboard.
Step 5: Point Your Domain
Once you are satisfied with the preview, add your live domain to the Pressable site and update your DNS.
Add the Domain in MyPressable First
Add your live domain to the destination site in the MyPressable Control Panel before making any DNS changes. This allows Pressable to provision SSL and register the domain on its end so it is ready to receive traffic when DNS propagates.
Full instructions: Assigning a Domain to Your Pressable Site
Update Your DNS
You have two options: point your nameservers to Pressable (simpler, recommended for most users) or add an A record at your current registrar pointing to Pressable’s IP address. The MyPressable Control Panel includes a Domain Setup Wizard that detects your registrar and walks you through the process step by step.
Domain Setup Wizard: Domain Setup Wizard
Registrar-specific guides:
Verify Propagation
DNS propagation typically completes within 30 minutes but can take up to 24 hours. Check propagation status at whatsmydns.net. To confirm the site is loading from Pressable’s servers, visit https://yourdomain.com/.well-known/hosting-provider and verify that “Pressable” appears.
If you can’t access the site after propagation appears complete, clear your browser cache, flush your local DNS cache, and try again in a private or incognito window.
Troubleshooting guide: Troubleshooting Site Access Issues After Pointing Your Domain to Pressable
Step 6: Post-Migration Checklist
DNS is live and your site is resolving from Pressable. Before closing out the migration, work through each of the following items.
Take an On-Demand Backup
Before making any changes to the migrated site, take a manual backup. This creates a clean rollback point that reflects the site as it arrived on Pressable, before any cleanup or configuration changes. If something goes wrong during the post-migration work, you will have a reliable restore point.
Backup guide: How to Manually Back Up Your Site in Pressable
Flush Cache
Flush the site cache once more now that the live domain is active. When the domain is added to a Pressable site, a search-replace runs to update the site URL in the database. A cache flush ensures visitors are not served stale content from before that update.
Cache flush guide: How to Flush WordPress Site Cache and Purge Edge Cache (CDN)
Check PHP Error Logs
Before doing anything else, check the PHP error logs for the site. A newly migrated site sometimes produces a stream of PHP warnings or notices that indicate environment differences that have not yet been addressed: a plugin calling a function removed in the current PHP version, a path reference that worked on the old host’s file structure but not on Pressable’s, or a configuration assumption that no longer holds. Catching these early is much easier than diagnosing them after further changes have been made.
Error log guide: Accessing WordPress Error Logs
Check for Host-Injected MU Plugins
MU plugins (must-use plugins) are PHP files that live in the wp-content/mu-plugins/ directory and load automatically on every page request, before regular plugins, with no way to deactivate them from the WordPress admin. Many hosts inject their own MU plugins to provide platform-specific functionality such as caching helpers, performance tools, or security integrations. These files are entirely specific to the host that installed them. They serve no purpose, and may cause errors, on Pressable.
Check the wp-content/mu-plugins/ directory after migration and remove any files that were injected by your previous host. You can access this directory using any of the following methods, listed from least to most technical:
- Using Advanced File Manager with Pressable
- Set Up and Use SFTP to Connect to Your WordPress Site
- Connect to SSH on Pressable
If you are not sure whether a particular file should be removed, do not delete it without checking first. Contact Pressable’s support team for guidance before making changes.
Deactivate Incompatible Plugins
Remove any caching plugins that came over from your previous host. As covered in Step 3, caching plugins cannot function on Pressable and may actively degrade performance. Review the full disallowed plugins list to confirm nothing else on the site needs to be addressed.
Disallowed plugins list: Disallowed Plugins on Pressable
Check and Adjust PHP Version
Verify that the PHP version on your Pressable site matches what the site was running on the previous host, or update it to the most recent version your plugins and theme support. If a Critical Error appeared immediately after migration, a PHP version mismatch is almost certainly the cause.
PHP version guide: Updating Your PHP Version in WordPress
Resolve Yoast Indexables (If Applicable)
If your site uses Yoast SEO, the migration plugin intentionally leaves the Yoast indexables database tables without running a search-replace on them, since these are expected to resolve correctly once the live domain is re-added to the site. If the site is moving to a permanently different domain than it previously used, or if Yoast is producing errors, you will need to manually trigger a rebuild of the indexable index.
Yoast indexables guide: Using the Pressable Automated Migration Plugin: Yoast Indexables
Reconnect and Review Jetpack
Reconnect Jetpack to your WordPress.com account now that the site is live at its real domain. Confirm it is connected only from the production site and not simultaneously from the old host’s copy.
Jetpack Security is included with all Pressable plans at no additional cost. If you have not yet activated it, now is a good time to do so.
Jetpack Security guide: What Is Jetpack Security, and How Do I Activate It in Pressable?
Confirm Transactional Email
Outbound email from WordPress (contact form notifications, password reset emails, WooCommerce order confirmations) is more reliable if your DNS authentication records are correctly configured for deliverability.
Confirm that DKIM and DMARC records are in place at your registrar. If deliverability is unreliable after migration, configuring an SMTP plugin to route mail through a dedicated sending service is the recommended solution.
- Email Delivery Troubleshooting and SMTP Plugins
- DNS Records for Email Authentication & Deliverability
Decommission the Old Site
Once you have confirmed the site is live, functioning correctly, and all post-migration tasks are complete, take the old host’s copy offline. Two live copies of the same site at different hosts is not a stable long-term state. If you used maintenance mode during the migration, disable it on the Pressable site and ensure it is no longer active anywhere.
Step 7: Performance Expectations After Migration
Once the site is live and the checklist above is complete, you may want to run a performance test. This section covers what to expect and how to act on the results.
Caches Need to Warm Up First
A freshly launched site’s caches are empty. Batcache and Edge Cache both serve cached responses only after a page has been requested at least once, which means the very first request to any page hits PHP directly. Running a performance test immediately after DNS cutover will reflect cold-cache PHP execution time, not the steady-state performance of the site under normal conditions. Load a few pages manually, or wait a short time for organic traffic to warm the caches, then test.
Why Scores May Differ From Your Previous Host
Performance scores are not a direct measure of hosting quality; they reflect the combined effect of hosting environment, caching state, and the site itself. A site that scored well on a previous shared host may have done so partly because it was a low-traffic site on a quiet server. On a managed platform, you are seeing what your site actually costs to render, stripped of any shortcuts a slower host may have been taking that happened to produce a favorable score on a specific test run.
If scores are lower than expected after caches have warmed, the cause is almost always at the site level rather than the hosting level: unoptimized images, render-blocking scripts, excessive external HTTP requests, or bloated autoloaded data in the database. These are things that can be addressed and improved.
Use the PageSpeed Insights and GTmetrix reading guide to understand what your score is actually telling you and identify specific items to act on.
Related guides:
- How to Read a PageSpeed Insights or GTmetrix Test
- Tips for Troubleshooting Website Performance Issues
WooCommerce: Order Attribution Cookies and Caching
If your store uses WooCommerce’s order attribution feature, be aware that it sets a set of sbjs_ cookies that can affect how Pressable’s caching layer treats requests. Understanding this interaction is important for WooCommerce stores that want to maintain both accurate attribution data and strong cache performance.
Full guide: WooCommerce Order Attribution Tracking Cookies (sbjs_) and Caching
Additional Resources
- Pressable 101: Everything You Need to Know
- Pressable Service and Platform Considerations
- Accessing Backups
- Restore a Site in Pressable Using the Automated Restore Tool
- Setting Up Email Accounts in Pressable
- PHP Workers, Concurrency, and What They Mean For Your Site
- How to Get Support from the Pressable Support Team