Something’s gone wrong with your WordPress site. Maybe it’s a blank white screen. Maybe it’s a 500 error. Maybe you’ve been locked out of your own dashboard. Whatever it is, your first instinct is probably to panic.
Don’t. Most WordPress errors look far more alarming than they actually are. The vast majority follow predictable patterns and can be fixed in under 30 minutes once you know where to look. This guide works through the most common ones by severity: starting with the errors that take your whole site down, moving to partial failures, and finishing with the annoying ones that don’t break anything but need fixing.
Before You Start: Four Things That Apply to Every Error
Run through these before touching anything else. They’ll save you time on almost every WordPress problem you’ll ever encounter.
- Check what changed recently
- Most WordPress errors happen immediately after something changed: a plugin update, a theme swap, a WordPress core update, a hosting migration, or a change to wp-config.php. If you know what changed in the last 24 hours, that’s your prime suspect. Start there.
- Work out whether the error is sitewide or isolated
- If your homepage loads but individual posts return a 404, that’s a permalink issue. If everything is blank, that’s different. If only the admin is broken but the front end works, that tells you something too. The scope of the error points you toward the cause.
- Take a backup before you change anything
- Fixing an error can make things worse if a step goes wrong and you have no fallback. If you don’t have a recent backup, our guide to backing up a WordPress site covers setting one up in minutes. This habit pays for itself the first time you need it.
- Enable debug mode to see the actual error
- WordPress hides error details from visitors by default. Add this line to wp-config.php to surface them:
define('WP_DEBUG', true);
This turns the blank screen or generic message into an actual error report that tells you which file and line caused the problem. Turn it off again once you’ve fixed the issue.
Critical Errors: Site Completely Down
These are the ones that take your site offline entirely. Work through them methodically rather than trying random fixes.
The White Screen of Death
- What it looks like
- A completely blank white page, or on newer WordPress versions, “There has been a critical error on this website.” No content, no error details.
- What causes it
- Almost always a plugin or theme generating a fatal PHP error. Less commonly, hitting the PHP memory limit.
How to fix it:
- Disable all plugins via FTP or your hosting file manager. Navigate to wp-content/plugins and rename the folder to plugins_old. If the site loads, a plugin is the culprit. Rename the folder back to plugins, then log into WordPress and reactivate plugins one by one until the error returns.
- If disabling plugins doesn’t fix it, the theme may be the problem. Rename your current theme folder inside wp-content/themes. WordPress will fall back to a default theme. If the site loads, your theme was the cause.
- Still blank? Try increasing the PHP memory limit. Add this to wp-config.php:
define('WP_MEMORY_LIMIT', '256M'); - If you turned on debug mode, the actual error message will tell you exactly what to fix. That’s always faster than trying each step blind.
Error Establishing a Database Connection
- What it looks like
- “Error Establishing a Database Connection” across the entire site. Sometimes only the front end shows this while the admin still loads, which tells you the credentials are correct but the database is under strain.
- What causes it
- The database credentials in wp-config.php don’t match the actual database settings, or the database server itself is down or overloaded.
How to fix it:
Open wp-config.php and check the four database constants: DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST. Log into your hosting control panel and compare them against the actual database credentials. A single character mismatch, often introduced during a migration or a hosting move, is the most common cause.
If the credentials match, check whether you can access the database at all. Log into phpMyAdmin through cPanel or hPanel and see if the database opens. If phpMyAdmin won’t connect either, the database server itself may be down. Contact your host at that point.
If the credentials are correct and phpMyAdmin connects fine, try repairing the database. Add this to wp-config.php temporarily:
define('WP_ALLOW_REPAIR', true);
Then visit yoursite.com/wp-admin/maint/repair.php. Remove the line after the repair runs.
500 Internal Server Error
- What it looks like
- “500 Internal Server Error” or “There has been a critical error on your website.” A catch-all server response that tells you something went wrong without telling you what.
- What causes it
- Most commonly a corrupted .htaccess file. Also plugin or theme conflicts causing a fatal PHP error, or hitting the PHP memory limit.
How to fix it:
Start with .htaccess. Connect via FTP or your hosting file manager, navigate to the WordPress root, and rename .htaccess to .htaccess_old. Reload the site. If it loads, .htaccess was the problem. Go to Settings > Permalinks in your WordPress admin and click Save Changes to generate a fresh one.
If that doesn’t fix it, disable plugins the same way as for the White Screen of Death.
If neither resolves it, increase the PHP memory limit in wp-config.php as described above.
Check your error logs if you’re still stuck. In cPanel, go to Metrics > Errors. The log will usually pinpoint the exact file and line causing the problem, which makes the next step obvious.
Locked Out of WordPress Admin
- What it looks like
- You can’t access wp-admin at all. This could be a redirect loop on the login page, a security plugin blocking your IP after failed login attempts, a broken login form from a plugin conflict, or the site has been compromised.
How to fix it:
If a security plugin locked you out after too many failed login attempts, disable it via FTP by renaming its folder inside wp-content/plugins.
If you’ve forgotten your password and reset emails aren’t arriving (a separate common problem, see our SMTP guide), reset the password directly in the database. Open phpMyAdmin, find the wp_users table, locate your username, and update the user_pass field with an MD5-hashed version of your new password. MD5 hash generators are widely available online.
If the login page itself is broken, disable all plugins via FTP first. That resolves the majority of broken login pages.
Partial Errors: Site Works But Something Is Broken
These don’t take the whole site down but they need fixing promptly.
404 on Posts and Pages When the Homepage Works
- What it looks like
- The homepage loads fine but clicking into any post, page, or category returns “404 Not Found.” The content exists, WordPress just can’t find it.
- What causes it
- WordPress’s permalink rewrite rules have been flushed or corrupted. This happens regularly after plugin updates, site migrations, .htaccess edits, or moving to a new host.
- How to fix it
- Go to Settings > Permalinks in your WordPress admin and click Save Changes. You don’t need to change anything, just save. This regenerates the rewrite rules from scratch. Fixes this in under 30 seconds in the vast majority of cases.
WordPress Stuck in Maintenance Mode
- What it looks like
- “Briefly unavailable for scheduled maintenance. Check back in a minute.” This message keeps showing long after an update should have completed.
- What causes it
- WordPress creates a hidden .maintenance file in the root directory when running updates. If an update fails mid-process or you close the browser while it’s running, the file stays there and keeps the site locked in maintenance mode.
- How to fix it:
- Connect via FTP or your hosting file manager, navigate to the WordPress root directory, and delete the .maintenance file. The site comes back immediately. That’s the entire fix.
Too Many Redirects
- What it looks like
- ERR_TOO_MANY_REDIRECTS in the browser. The page never loads, just bounces between URLs indefinitely.
- What causes it
- Conflicting redirect rules. The most common trigger is an SSL setup where WordPress Address and Site Address in Settings > General don’t both use https://. WordPress sends the visitor to https://, which redirects back to http://, which redirects again, and so on. Can also come from conflicting rules in a caching or security plugin.
- How to fix it
- Go to Settings > General and check that both WordPress Address and Site Address start with https://. If that’s already correct, disable caching and security plugins one by one until the loop stops. If still looping, rename .htaccess and regenerate it via Settings > Permalinks.
Annoying Errors: Something Looks Wrong
These don’t take the site down but they create real problems if left unfixed.
PHP Memory Exhausted
- What it looks like
- “Fatal error: Allowed memory size of X bytes exhausted.” Sometimes triggers the White Screen of Death rather than displaying the message directly.
- What causes it
- The PHP memory limit set on your hosting plan is too low for what your site is running. Common on entry-level shared hosting plans that set limits at 64MB or 128MB.
How to fix it: Add this to wp-config.php:
define('WP_MEMORY_LIMIT', '256M');
If your host caps PHP memory below 128MB and won’t increase it on your plan, that’s a signal the plan is under-resourced for a site running a normal plugin load.
Changes Not Showing Up
- What it looks like
- You’ve published a post or saved an edit but the live site still shows the old version.
- What causes it
- Browser cache, a caching plugin, or a CDN serving an old version of the page.
How to fix it: Hard refresh your browser first: Ctrl+Shift+R on Windows or Cmd+Shift+R on Mac. If that doesn’t show the changes, clear the cache in your caching plugin. WP Rocket, LiteSpeed Cache, and W3 Total Cache all have a clear all cache button in the WordPress admin bar. If you’re using Cloudflare, purge the cache from the Cloudflare dashboard too.
Failed Auto-Update or Update Loop
- What it looks like
- A plugin or theme update fails partway through, leaving the plugin broken or the site in maintenance mode. Sometimes fails silently with the plugin just showing as an older version.
- What causes it
- Insufficient disk space, a file permissions error preventing new files from being written, or the server timing out mid-update.
How to fix it: Check available disk space in your hosting control panel. Check file permissions: plugin folders should be 755 and files 644. If the .maintenance file is stuck in the root, delete it via FTP. For a failed plugin update, delete the plugin folder via FTP and reinstall it fresh from WordPress.org.
When the Error Is Actually Your Hosting
Some WordPress errors are WordPress problems. Others are symptoms of hosting problems that WordPress just happens to surface first.
These patterns are worth knowing because no amount of WordPress troubleshooting fixes a hosting problem.
Memory exhausted errors on sites with a normal plugin load usually mean the hosting plan’s PHP memory allocation is too low. A WordPress site running standard plugins needs 256MB as a baseline. Entry-level shared plans sometimes set this at 64MB. If you’re hitting memory errors on a site that isn’t running anything unusual, the plan is under-specced.
Frequent 500 errors that return after .htaccess regeneration and can’t be traced to a specific plugin often indicate server instability. Overcrowded shared hosting where resources run thin produces intermittent 500 errors that are almost impossible to diagnose at the WordPress level, because the problem isn’t in WordPress.
Intermittent database connection errors where the credentials are correct and the error comes and goes point to database server instability rather than configuration. If your site worked fine yesterday and the same credentials that worked then aren’t working now, the database server is struggling under load.
If you’re regularly troubleshooting the same errors and the fixes don’t stick, the hosting environment is likely the underlying cause rather than your WordPress configuration. Our guide to what managed WordPress hosts actually manage covers how managed hosting prevents several of these issues at the infrastructure level rather than leaving them for you to fix in WordPress.
Frequently Asked Questions
What is the fastest fix for the WordPress White Screen of Death? Disable all plugins via FTP by renaming the plugins folder inside wp-content. If the site loads after that, reactivate plugins one by one until you find the culprit. This resolves the White Screen of Death in the majority of cases.
How do I access WordPress if I’m locked out of wp-admin? Connect to your site via FTP and rename the plugins folder inside wp-content to disable all plugins at once. This fixes most broken login pages. If you’ve forgotten your password and can’t receive reset emails, you can reset it directly in the database via phpMyAdmin.
Why does my WordPress site keep showing 500 errors? The most common cause is a corrupted .htaccess file. Rename it to .htaccess_old via FTP, then regenerate a fresh one via Settings > Permalinks. If the error persists, a plugin conflict or the PHP memory limit are the next most likely causes.
How do I enable WordPress debug mode? Add define('WP_DEBUG', true); to wp-config.php, just above the line that says “That’s all, stop editing.” This makes WordPress display the actual error instead of a blank screen or generic message. Remove or set it to false once you’ve fixed the problem.
What causes Error Establishing a Database Connection in WordPress? Most often a mismatch between the database credentials in wp-config.php and the actual database settings. Open wp-config.php and compare DB_NAME, DB_USER, DB_PASSWORD, and DB_HOST against the credentials shown in your hosting control panel. A single character out of place will cause this error.