12 Common WordPress Errors and How to Fix Them
Stuck on a WordPress error? Here are 12 of the most common problems—white screen, 500 error, DB issues—and exactly how to fix them.
WordPress is remarkably stable software, but every site encounters errors sooner or later. A plugin update goes wrong, a hosting account runs low on memory, or a small typo in a theme file brings down the entire front end. Most of these problems look scarier than they are. With the right approach, the majority can be resolved in minutes.
This guide walks through twelve of the most common WordPress errors, what causes each one, and step-by-step instructions for fixing it. Keep a recent backup handy before you start—if you don’t have one yet, read our guide on how to back up a WordPress site first.
1. White Screen of Death (WSoD)
The white screen of death is exactly what it sounds like: a completely blank page with no error message. It usually means PHP ran out of memory or a plugin/theme triggered a fatal error.
Fixes:
- Enable debug mode by adding
define('WP_DEBUG', true);anddefine('WP_DEBUG_LOG', true);towp-config.php. Reload the page and check/wp-content/debug.logfor the offending line. - Deactivate all plugins by renaming the
/wp-content/pluginsfolder toplugins_oldvia FTP or your host’s file manager. If the site loads, rename it back and reactivate plugins one by one. - Switch to a default theme (Twenty Twenty-Five) by renaming your active theme folder.
- If memory is the culprit, see error #6 below.
2. Error Establishing a Database Connection
This error means WordPress cannot connect to MySQL. The cause is almost always a wrong credential in wp-config.php or a database server that is temporarily down.
Fixes:
- Open
wp-config.phpand verifyDB_NAME,DB_USER,DB_PASSWORD, andDB_HOSTmatch what your hosting control panel shows. - Log in to phpMyAdmin and confirm the database exists.
- If credentials are correct, contact your host—the MySQL service may be down on the server.
- Try adding
define('WP_ALLOW_REPAIR', true);towp-config.php, then visityourdomain.com/wp-admin/maint/repair.phpto repair corrupted tables. Remove the line afterward.
3. 500 Internal Server Error
A 500 error is a catch-all that means something went wrong server-side. Unlike the white screen, the server at least responded—but it couldn’t complete the request.
Fixes:
- Check your server’s error log (usually in
public_html/logsor via cPanel → Error Logs). - Deactivate all plugins (rename the plugins folder as above).
- Re-upload a fresh copy of
wp-adminandwp-includesfrom wordpress.org to replace potentially corrupted core files. - Regenerate
.htaccess: go to Settings → Permalinks and click Save Changes without changing anything. - Ask your host whether mod_security or a WAF rule is blocking the request.
4. 404 Page Not Found
If individual posts or pages return 404s but the homepage works fine, the issue is almost always a broken permalink structure.
Fixes:
- Go to Settings → Permalinks and click Save Changes. This regenerates rewrite rules and usually fixes the problem in seconds.
- If that doesn’t work, check whether
mod_rewriteis enabled on your server (shared hosts sometimes disable it). - Verify the
.htaccessfile in your WordPress root contains the standard WordPress rewrite block. If it is missing, WordPress generated it incorrectly—saving permalinks again should recreate it.
5. “Briefly Unavailable for Scheduled Maintenance”
WordPress puts itself in maintenance mode during updates by creating a .maintenance file in the root directory. If an update fails or you navigated away mid-update, that file stays behind and locks everyone out.
Fix: Connect via FTP or your host’s file manager, find the .maintenance file in the root of your WordPress installation, and delete it. The site will return immediately.
6. Memory Limit Exhausted
Fatal error: Allowed memory size of X bytes exhausted means PHP ran out of RAM trying to execute your page.
Fixes:
- Add
define('WP_MEMORY_LIMIT', '256M');towp-config.php. - Alternatively, add
php_value memory_limit 256Mto.htaccess. - If your hosting plan caps PHP memory below what you need, you may need to upgrade your plan or switch hosts.
7. PHP Syntax Error
Parse error: syntax error, unexpected... pinpoints a specific file and line. This is almost always caused by manually editing a PHP file and introducing a typo.
Fixes:
- Open the file named in the error via FTP and fix the typo on the reported line (a missing semicolon, an unclosed bracket, or a stray character are common culprits).
- If you edited a theme file, the safest approach is to restore the original file. This is exactly why editing directly on live files is risky—use a child theme instead.
8. Mixed Content Warnings
After moving to HTTPS, browsers flag resources (images, scripts, stylesheets) still loaded over HTTP as “mixed content.” The padlock disappears and some resources may be blocked. Cloudflare can also help enforce HTTPS at the CDN layer if you need a quick network-level fix.
Fixes:
- Install the Really Simple SSL plugin, which handles most cases automatically.
- Run a search-and-replace on your database to change
http://yourdomain.comtohttps://yourdomain.comusing a tool like Better Search Replace. - Make sure
siteurlandhomein Settings → General both start withhttps://.

9. 403 Forbidden
A 403 error means the server understood the request but refuses to fulfill it—usually because of file permissions or a security rule.
Fixes:
- Correct file permissions: directories should be
755, files should be644. You can set these in bulk via FTP client or cPanel File Manager. - Check whether a security plugin (Wordfence, etc.) or your host’s firewall is blocking your IP. Temporarily disable the plugin to test.
- Look for a corrupt
.htaccessfile. Rename it to.htaccess_oldand save your permalinks to generate a fresh one.
10. Too Many Redirects
ERR_TOO_MANY_REDIRECTS means the browser is caught in a redirect loop. WordPress keeps bouncing requests back and forth, usually because of conflicting SSL settings or an incorrectly set site URL.
Fixes:
- Check Settings → General:
WordPress AddressandSite Addressmust match and should both behttps://if you use SSL. - If your site sits behind a reverse proxy or load balancer (common on managed hosts), add the following to
wp-config.phpbefore therequirestatement:
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}
- Deactivate caching and redirect plugins to isolate the cause.
11. Locked Out of wp-admin
You may be locked out because you forgot your password, your account was compromised, or a security plugin blocked your IP.
Fixes:
- Use the Lost your password? link on the login page to reset via email.
- If email isn’t working, reset the password directly in the database: in phpMyAdmin, open the
wp_userstable, click Edit next to your account, changeuser_passto a new value, and selectMD5from the function dropdown before saving. - If a security plugin blocked your IP, access your site via FTP and temporarily rename the plugins folder to regain access, then whitelist your IP in the plugin settings.
- For brute-force protection tips, see our WordPress security basics guide.
12. Failed Auto-Update
WordPress has updated itself automatically since version 3.7. Occasionally an update stalls, leaving the site partially upgraded.
Fixes:
- Delete the
.maintenancefile if it exists (see error #5). - Via FTP, delete the
wp-adminandwp-includesfolders, then re-upload fresh copies from the latest WordPress zip downloaded from wordpress.org. - Visit your dashboard—WordPress will prompt you to complete the database upgrade if needed.
- If you see
wp-content/upgradefiles left behind, it is safe to delete them.
Quick Reference Table
| Error | Most Common Cause | First Fix to Try |
|---|---|---|
| White Screen of Death | Plugin conflict or memory | Disable plugins via FTP |
| DB Connection Error | Wrong credentials in wp-config | Check wp-config.php |
| 500 Internal Error | Corrupt .htaccess or plugin | Regenerate .htaccess |
| 404 Not Found | Broken permalinks | Save Permalinks settings |
| Maintenance Mode Stuck | Failed update | Delete .maintenance file |
| Memory Exhausted | Low PHP memory limit | Raise limit in wp-config |
| PHP Syntax Error | Manual file edit typo | Fix the reported line |
| Mixed Content | HTTP resources after HTTPS move | Really Simple SSL plugin |
| 403 Forbidden | Wrong file permissions | Set 755/644 via FTP |
| Too Many Redirects | Conflicting SSL settings | Match Site Address URLs |
| Locked Out | Forgotten password or blocked IP | Reset via phpMyAdmin |
| Failed Auto-Update | Incomplete core file overwrite | Re-upload wp-core files |
General Troubleshooting Habits
Before diving into any error, a few habits save a lot of time:
- Always have a backup. Restoring is faster than debugging if things go sideways. UpdraftPlus is the most widely used free backup plugin and takes about ten minutes to configure.
- Enable WP_DEBUG to surface exact error messages instead of blank or generic pages.
- Deactivate plugins first. The majority of WordPress errors trace back to plugin conflicts, not core.
- Check your host’s error logs. Server-level logs often contain detail that WordPress itself doesn’t surface.
- Read the full error. Even cryptic messages include a filename and line number—that alone narrows the search considerably.
Most errors have been encountered by thousands of WordPress users before you. The WordPress support forums and the official documentation are good first stops when a fix here doesn’t fully apply to your setup. For a security-focused perspective on the errors that follow compromises, Sucuri’s blog is an excellent ongoing resource.
Errors are a normal part of running any dynamic website. With a systematic approach—check logs, disable plugins, verify configs—you can resolve the vast majority without developer help. Browse our free WordPress themes to start your next site on a solid, well-coded foundation that minimizes the chance of theme-related issues from day one.