Why WordPress Page Comes White After Migration — Step-by-Step Fixes

Introduction

If you have ever migrated a WordPress website from one server to another – or even just moved it from a local environment to a live hosting account – you may have experienced the frustration of opening your browser and seeing a completely blank, white screen staring back at you. No error message. No helpful hint. Just white.

This is one of the most common problems WordPress users face during or after a migration, and it can feel very alarming, especially if you are not a developer. The good news is that this problem almost always has a clear cause and, more importantly, a clear fix.

In this article, we will walk you through everything you need to know about why your WordPress page comes up white after migration – and exactly how to fix it, step by step. Whether you are a complete beginner or someone with some technical experience, this guide will help you understand the problem and solve it with confidence.

What Is the WordPress White Screen of Death?

The “White Screen of Death” (commonly abbreviated as WSoD) is the informal name given to the situation where a WordPress site shows a completely blank white page instead of the actual website content. Sometimes the admin dashboard is affected too, while other times only the front-end (what visitors see) goes white.

This issue is especially common after a website migration because migration involves moving files, databases, and configuration settings from one environment to another. Even a small mismatch between the old environment and the new one can trigger the white screen.

Unlike a normal error page that shows a message explaining what went wrong, the white screen gives you nothing to work with visually. That is part of what makes it so frustrating. However, there are always clues hiding beneath the surface – and that is exactly what we will uncover.

Why Does a WordPress Page Come White After Migration?

Understanding the root causes is the first step toward fixing the problem. Here are the main reasons why a WordPress site shows a white screen after migration:

1. PHP Memory Limit Exhaustion

WordPress requires a certain amount of PHP memory to run properly. When you migrate to a new server, the default memory limit on that server might be lower than what your site needs. When WordPress tries to load a page and runs out of memory, it fails silently and returns a white screen.

This is one of the single most common causes of the white screen after migration. The old server might have had a memory limit of 256MB, while the new server defaults to just 32MB or 64MB, which is not enough for a plugin-heavy or theme-heavy WordPress installation.

2. Plugin Incompatibility or Corruption

Plugins are one of the biggest culprits behind white screens. During migration, plugin files can sometimes become corrupted. Additionally, a plugin that worked fine on the old server (perhaps running PHP 7.4) may cause a fatal error on the new server (running PHP 8.1) because of code incompatibilities between PHP versions.

When a plugin throws a fatal error in PHP, WordPress catches it and – if debug mode is off – simply shows nothing. A blank white page is the result.

3. Theme Issues

Just like plugins, themes can also cause the white screen. If your active theme has a PHP error, uses a deprecated function that the new server does not support, or has a corrupted file, the entire page can go blank. Themes are loaded early in WordPress’s startup process, so any error there will affect every page.

4. Database Connection Errors

Every WordPress site relies on a MySQL or MariaDB database. After migration, if the database credentials in the wp-config.php file do not match the new server’s database settings, WordPress cannot connect to the database at all. Without a database connection, WordPress cannot display anything – resulting in a white screen or an “Error Establishing a Database Connection” message.

5. Incorrect File Permissions

Every file and folder on a web server has permission settings that control who can read, write, or execute them. During migration, these permissions sometimes get scrambled. If WordPress core files do not have the correct permissions, PHP cannot read them properly, which leads to errors and white screens.

6. Wrong PHP Version on the New Server

Different hosting servers run different versions of PHP. If your site was built and tested on PHP 7.x and the new server is running PHP 8.x, some functions or syntax used by your theme or plugins may no longer be valid. PHP 8 made significant breaking changes that older plugins and themes were not designed to handle.

7. Corrupted .htaccess File

The .htaccess file is a configuration file used by Apache web servers (the most common type in shared hosting). It controls URL routing, redirects, and other server-level settings. After migration, this file can become corrupted or contain rules that are incompatible with the new server, which can prevent pages from loading correctly.

8. Wrong Site URL in the Database

WordPress stores its site URL (both siteurl and home values) in the database. If you moved your site from one domain to another – or even just from http to https – without updating these values, WordPress will try to redirect all requests to the old URL. This can cause redirect loops or blank white pages because the browser ends up in a loop it cannot resolve.

9. Incomplete File Transfer

If the migration was done manually via FTP or SCP, some files may not have transferred completely. A large site can take a long time to transfer, and if the process was interrupted or some files were skipped, key WordPress core files might be missing or partially written. Even a single critical file being incomplete can cause the entire site to fail.

10. PHP Extensions Missing on New Server

WordPress and its plugins often depend on specific PHP extensions being installed on the server – such as mbstring, curl, gd, or openssl. If the new server does not have one of these extensions enabled, a plugin or even WordPress itself may fail to load, producing a white screen.

Before You Start Fixing: Enable WordPress Debug Mode

Before diving into individual fixes, the smartest first step is to enable WordPress’s built-in debug mode. This tells WordPress to display error messages instead of hiding them, which will often point you directly to the cause of the white screen.

Here is how to enable debug mode:

  1. Connect to your server using FTP (FileZilla is a free and popular option) or through your hosting control panel’s File Manager.
  2. Navigate to the root folder of your WordPress installation (usually public_html or www).
  3. Find and open the file named wp-config.php.
  4. Look for the line that says: define( ‘WP_DEBUG’, false );
  5. Change it to: define( ‘WP_DEBUG’, true ); and also add: define( ‘WP_DEBUG_LOG’, true ); and define( ‘WP_DEBUG_DISPLAY’, true );
  6. Save the file and reload your website.

Now, instead of a white screen, you should see actual PHP error messages. These messages will tell you which file and which line of code is causing the problem. Even if you do not fully understand the error, you can copy it and search for it online – or use it to guide your troubleshooting.

Important: Remember to turn debug mode off again once you have fixed the problem. Leaving it on in a live environment can expose sensitive information to visitors.

Step-by-Step Fixes for the WordPress White Screen After Migration

Now let us go through each fix in a logical order, starting with the simplest and most common solutions. Work through these one by one and test your site after each step.

Fix 1: Increase the PHP Memory Limit

This is the most common fix and often solves the problem immediately. You need to tell WordPress and your server to allow more PHP memory.

Method A: Edit wp-config.php

  1. Open wp-config.php using FTP or File Manager.
  2. Find the line that says: /* That’s all, stop editing! Happy publishing. */
  3. Just above that line, add: define( ‘WP_MEMORY_LIMIT’, ‘256M’ );
  4. Save the file and reload your website.

Method B: Edit php.ini or .htaccess

If the wp-config.php method does not work, you can also set the memory limit at the server level. Look for a file called php.ini in your hosting control panel (some hosts have this in cPanel under “PHP Settings”). If you find it, add or edit the following line:

memory_limit = 256M

Alternatively, you can add the following line to your .htaccess file:

php_value memory_limit 256M

Fix 2: Deactivate All Plugins

If the memory fix did not work, the next step is to deactivate all plugins. Since you cannot access your WordPress admin dashboard when you see a white screen, you will need to do this manually through FTP.

Here is how to do it:

  1. Connect to your server via FTP or File Manager.
  2. Navigate to wp-content/plugins.
  3. Rename the plugins folder to something like plugins_disabled. By renaming the folder, WordPress can no longer find your plugins, which effectively deactivates all of them.
  4. Reload your website. If the white screen is gone, you know a plugin was causing the problem.
  5. Rename the folder back to plugins.
  6. Now log into your WordPress admin dashboard (which should be working again) and reactivate your plugins one by one. After each activation, check if the white screen returns. When it does, you have found the problematic plugin.

Once you identify the guilty plugin, you have two options: delete it and find an alternative, or contact the plugin developer and report the incompatibility. Often, simply updating the plugin to its latest version will also resolve the conflict.

Fix 3: Switch to a Default WordPress Theme

If deactivating plugins did not help, the next suspect is your active theme. To test whether the theme is causing the white screen, you need to switch to a default WordPress theme such as Twenty Twenty-Three or Twenty Twenty-Four.

Since you cannot switch themes from the dashboard when the site is down, do it via FTP:

  1. Navigate to wp-content/themes via FTP.
  2. Rename your current active theme folder. For example, if it is called “mytheme”, rename it to “mytheme_old”.
  3. WordPress will then automatically fall back to a default theme (such as Twenty Twenty-Three) if it cannot find your active theme.
  4. Reload your website. If the white screen is gone, the theme was the problem.

If the theme is the problem, check whether an update is available for it. Alternatively, contact the theme developer to report the issue, or consider switching to a different, better-maintained theme.

Fix 4: Update the Database Credentials in wp-config.php

After migration, one of the most overlooked steps is updating the database connection details. If WordPress cannot connect to the database, it cannot display any content.

Here is how to check and update these settings:

  1. Log into your hosting control panel (cPanel is most common).
  2. Find your MySQL database details – you need the database name, database username, database password, and database host (usually localhost).
  3. Open wp-config.php via FTP.
  4. Look for these four lines and update them with the correct values from your new hosting account:

define( ‘DB_NAME’, ‘your_database_name’ );

define( ‘DB_USER’, ‘your_database_username’ );

define( ‘DB_PASSWORD’, ‘your_database_password’ );

define( ‘DB_HOST’, ‘localhost’ );

  1. Save the file and test your website.

Note: Some hosts use a different hostname than “localhost”. Check your hosting documentation or contact support if you are not sure what value to use for DB_HOST.

Fix 5: Update the Site URL in the Database

If your website moved to a new domain or changed from HTTP to HTTPS, you must update the site URL values stored in the WordPress database. If these are wrong, WordPress will keep redirecting visitors to the old URL in an endless loop.

Method A: Quick Fix via wp-config.php

Add these two lines to wp-config.php (replace the URLs with your actual new URL):

define( ‘WP_HOME’, ‘https://yournewdomain.com’ );

define( ‘WP_SITEURL’, ‘https://yournewdomain.com’ );

This forces WordPress to use the new URL and ignore whatever is stored in the database.

Method B: Update via phpMyAdmin

  1. Log into your hosting control panel and open phpMyAdmin.
  2. Select your WordPress database from the left panel.
  3. Click on the wp_options table.
  4. Find the rows where option_name is siteurl and home.
  5. Click the Edit button next to each row and update the option_value to your new website URL.
  6. Save the changes and reload your website.

Fix 6: Regenerate the .htaccess File

A corrupted or incorrect .htaccess file can cause all sorts of problems, including the white screen. The simplest approach is to delete the current .htaccess file and let WordPress regenerate it automatically.

  1. Connect to your server via FTP.
  2. Go to the root of your WordPress installation (where wp-config.php is located).
  3. Find the .htaccess file. Note: It may be hidden. In FileZilla, go to Server > Force showing hidden files.
  4. Rename it to .htaccess_old as a backup.
  5. Now log into your WordPress admin dashboard and go to Settings > Permalinks.
  6. Without changing anything, just click the Save Changes button. WordPress will automatically create a fresh, correct .htaccess file for you.

Fix 7: Fix File Permissions

Incorrect file permissions are a less obvious but real cause of white screens. The correct permissions for a WordPress installation are:

  • Files: 644 (owner can read and write; others can only read)
  • Folders/Directories: 755 (owner can read, write, and execute; others can read and execute)
  • wp-config.php: 440 or 400 (for extra security)

You can fix permissions using FTP software (right-click a file or folder and choose “File Permissions” or “Change Permissions”) or via SSH using these commands:

find /path/to/wordpress/ -type f -exec chmod 644 {} \;

find /path/to/wordpress/ -type d -exec chmod 755 {} \;

Fix 8: Check and Adjust the PHP Version

If your plugins and themes were built for an older PHP version, switching to a newer PHP version on your hosting could break things. Conversely, if your new server is running an outdated PHP version, that could also cause issues.

To check and change your PHP version:

  1. Log into cPanel (or your hosting’s control panel).
  2. Look for a section called “PHP Version”, “MultiPHP Manager”, or “Select PHP Version” depending on your host.
  3. Try switching to a different PHP version – if you are on PHP 8.1, try PHP 7.4, or vice versa.
  4. Save the change and reload your website.

As a general rule, WordPress recommends using PHP 8.1 or higher for the best performance and security. However, your plugins and themes must also be compatible with that PHP version. If your debug log reveals errors about deprecated functions or undefined function calls, that is often a PHP version mismatch.

Fix 9: Re-upload Core WordPress Files

If a critical WordPress core file was corrupted or missing during migration, re-uploading fresh core files will fix it. This process is safe and will not affect your content, theme, or plugins.

  1. Download the latest version of WordPress from wordpress.org.
  2. Unzip the downloaded file on your computer.
  3. Delete the wp-content folder from the unzipped WordPress download – you do NOT want to upload this folder, as it would overwrite your themes and plugins.
  4. Also do not upload the wp-config.php file from the download – keep your existing one on the server.
  5. Upload everything else (the remaining folders and files) to your server via FTP, overwriting the existing files. This refreshes all core WordPress files with clean, uncorrupted versions.
  6. Reload your website and check if the white screen is gone.

Fix 10: Search and Replace Old URLs in the Database

After migration, your database may contain hundreds of references to the old domain name or old URL structure. Simply updating siteurl and home in the wp_options table (as described in Fix 5) is not always enough – you also need to replace all other occurrences of the old URL throughout the database.

The best tool for this job is a free script called WP-CLI or a plugin like Better Search Replace. Here is how to use Better Search Replace:

  1. If your admin dashboard is accessible, install and activate the Better Search Replace plugin.
  2. Go to Tools > Better Search Replace.
  3. In the Search for field, enter your old URL (e.g., http://oldsite.com).
  4. In the Replace with field, enter your new URL (e.g., https://newsite.com).
  5. Select all tables in the database.
  6. First, run it with “Run as dry run?” checked to see how many replacements will be made, then run it for real.

This search-and-replace process is especially important if you switched from HTTP to HTTPS, or moved from a staging subdomain to the main domain.

Using the Error Log to Diagnose the Problem

Once you have enabled debug mode (as described earlier), WordPress will start writing error messages to a file called debug.log inside the wp-content folder. This log file is extremely valuable for diagnosing the cause of the white screen.

To read the debug log:

  1. Connect via FTP and navigate to wp-content/.
  2. Download and open the debug.log file.
  3. Look for lines that say “Fatal error” or “PHP Fatal error” – these point directly to the file and line number causing the crash.
  4. Also look for “Warning” and “Notice” messages, which may not cause white screens on their own but can indicate problems.

Common errors you might see in the log and what they mean:

  • “Allowed memory size exhausted” – You need to increase the PHP memory limit (Fix 1).
  • “Call to undefined function” – A function is being called that does not exist, often due to a missing plugin dependency or PHP version mismatch.
  • “Cannot redeclare function” – Two plugins or themes are defining the same function name, causing a conflict.
  • “No such file or directory” – A file that WordPress is trying to load does not exist, possibly due to an incomplete migration.
  • “Deprecated” notices – Functions that used to exist in older PHP versions but are being removed. These often appear in bulk when switching to PHP 8.x.

Special Situations: White Screen Only on Certain Pages

Sometimes, the white screen does not affect your entire website – only certain pages. Here is what this usually means:

White Screen Only on the Admin Dashboard

If your front-end works fine but your admin dashboard shows a white screen, the most likely culprit is a plugin that only affects the admin area, or a corrupted admin-specific file. Try disabling plugins via FTP as described in Fix 2 and focus on plugins that affect the backend.

White Screen After Clicking Update or Publish

If the white screen appears specifically after clicking the Publish or Update button when editing a post, this is often a browser-level issue or a memory problem triggered by the block editor (Gutenberg). Increasing the PHP memory limit (Fix 1) usually solves this.

White Screen Only on Specific Posts or Pages

If specific posts or pages show a white screen but others do not, the issue might be with a shortcode used in those pages, a block that relies on a broken plugin, or a page builder element that is not compatible with the new environment. Open the affected page in the WordPress editor and try removing content blocks one by one to find the culprit.

Prevention: How to Avoid the White Screen After Future Migrations

Now that you know how to fix the white screen, let us talk about how to prevent it from happening in the first place during your next migration.

Use a Reliable Migration Plugin

Manual migrations via FTP are error-prone. Instead, use a dedicated WordPress migration plugin such as All-in-One WP Migration, Duplicator, or WP Migrate DB. These plugins handle the file transfer, database export, URL replacement, and other migration tasks automatically, reducing the chance of something going wrong.

Match the PHP Version on the New Server

Before migrating, check what PHP version your old server is running and make sure the new server runs the same version (at least initially). You can always upgrade the PHP version after migration, but doing it gradually reduces risk.

Test on a Staging Environment First

Many hosting providers offer a staging environment – a private, hidden copy of your website where you can test changes without affecting your live site. Always do a trial migration to staging before migrating to production. This gives you a safe space to discover and fix any issues before real visitors are affected.

Take a Full Backup Before Migrating

Always create a complete backup of your website – including all files and the full database – before you begin any migration. If something goes catastrophically wrong, you can restore from the backup and start over. Never migrate without a backup. Popular backup plugins include UpdraftPlus and BackupBuddy.

Update All Plugins and Themes Before Migrating

Make sure all your plugins and themes are updated to their latest versions before migrating. Outdated plugins are more likely to have compatibility issues with new server environments. Running updates before migration reduces the chance of encountering a plugin-related white screen on the new server.

Verify Server Requirements Before Migrating

Check whether the new hosting server meets all WordPress requirements. This includes the minimum PHP version (7.4 or higher, ideally 8.1+), MySQL 5.7+ or MariaDB 10.3+, and required PHP extensions such as curl, gd, mbstring, and openssl. If the server does not meet these requirements, contact your host to have them enabled before migrating.

Quick Troubleshooting Checklist

If you see a white screen after migration, go through this checklist in order:

  1. Enable WP_DEBUG in wp-config.php to reveal hidden error messages.
  2. Increase the PHP memory limit to at least 256MB.
  3. Deactivate all plugins by renaming the plugins folder via FTP.
  4. Switch to a default WordPress theme by renaming your theme folder.
  5. Check and update database credentials in wp-config.php.
  6. Update siteurl and home URL values in phpMyAdmin.
  7. Regenerate the .htaccess file via Settings > Permalinks.
  8. Fix file permissions (folders: 755, files: 644).
  9. Adjust the PHP version in your hosting control panel.
  10. Re-upload fresh WordPress core files (without wp-content and wp-config.php).
  11. Run a search-and-replace on old URLs in the database.

Conclusion

The WordPress White Screen of Death after migration can feel like a total disaster, especially when you cannot see any error message to guide you. But as this article has shown, the causes are well-understood and the fixes are systematic. Every white screen has a reason – and with the right approach, you can always find and fix it.

The key takeaways from this guide are:

  • Always enable debug mode first – it turns a frustrating invisible error into a visible, actionable message.
  • Memory limit issues are the most common cause and are easily fixed in wp-config.php.
  • Plugins and themes are the next most common culprits – disable them systematically to identify the problem.
  • Database credentials, URL settings, and PHP versions all need to be verified and aligned with the new server.
  • Prevention through good migration practices – using dedicated plugins, taking backups, and testing on staging – saves you from most of these headaches.

With patience and a methodical approach, you will have your WordPress site back up and running in no time. Migration might feel intimidating at first, but each time you troubleshoot and solve a problem like this, you become a more confident and capable WordPress user.

Good luck with your migration – and may your screens never be white again!

About the Author

Jay Patel is the Founder of XSquareSEO, a full-service SEO agency with experience in on-page SEOeCommerce SEOlink buildingtechnical SEOSaaS SEO, and local SEO. For more information, feel free to contact us

Explore More Guides

Custom Robots.txt WP
Add Tags WordPress Site
SIEM Monitoring WordPress
Sitewide Google Reviews WP
Disable Directory Indexing
Tradelle Products WordPress
Latest WordPress Version
WP Boxed Page Width
Bold WP Font Styles
Fix WP Template Issues

Scroll to Top