
You open your website or wp-admin and you see an error message you don't understand—or nothing at all. The most common WordPress errors are critical errors, the white screen, database connection errors, server errors 500 through 504, too many redirects, mixed content, and the memory limit. Almost all of them are caused by a plugin, theme, update, or server setting.
That makes it less of a problem than it seems, because you can resolve most WordPress issues without losing any data, as long as you follow the correct steps. Troubleshooting WordPress errors starts with four standard steps, and after that, you can read about the cause of each error message and find the solution.
First things first: four steps to help with any WordPress error
For every WordPress error, you follow the same steps, no matter what message you see. I compare an error message to a warning light on your dashboard. The light tells you that something is wrong, but only the garage’s diagnostic tool can tell you exactly what it is. In WordPress, the error log is that diagnostic tool, which is why reading the actual message below comes before fixing the problem.
- Do not delete anything. Don't delete any plugins or files, and don't reinstall anything until you know what the problem is. You can undo disabling a plugin, but you can't undo deleting it.
- Make a backup or check to see if there is a recent one. Do the same even if your site is already down. With Surver, you can restore backups using JetBackup 5 in cPanel, but the current state isn't automatically saved during the process. To learn how this works, see Restore a backup.
- Display the actual error message. If a critical error occurs, WordPress will email the administrator address a link to recovery mode, which allows you to log in with the problematic plugin paused. Didn't receive an email? Then set
WP_DEBUGas described in Enable debug mode and readwp-content/debug.log, or open the server's error log. For Surver, that's the fileerror_login the folder where the error occurs, which you can open using File Manager in cPanel. - Undo the last change. Think of an update, a new plugin, a code snippet, or a setting. If you can't log in
wp-admin, then rename the plugin folder via (S)FTP or File Manager towp-content/plugins, or the entire "plugins" folder to disable everything at once. If the problem is with the theme, rename the theme folder towp-content/themes, so that WordPress falls back to a default theme. More on that in Site Down After an Update.
In practice, most errors are already resolved by step 4. If that doesn't work, step 3 at least tells you where to look next.
What WordPress error are you seeing? Overview of error messages
This table matches the most common WordPress error messages—exactly as they appear on your screen—with their meanings, the most likely causes, and the article that provides a solution. The “Self or Hosting” column indicates who usually resolves the error.
| What You See | What it means | Most likely cause | Self-hosted or hosted | Solution |
|---|---|---|---|---|
| “A critical error has occurred on this site” | WordPress catches a fatal PHP error. | Plugin or theme update, old PHP version | Usually on my own | ‘Troubleshooting ’A critical error has occurred" |
| “An error occurred while establishing a database connection” (“Error establishing a database connection”) | WordPress cannot access the database. | Data in wp-config.php, overloaded database server | Together | Troubleshooting the database connection error |
| A completely white screen | Something will go wrong if it isn't reported. | Plugin, theme, or PHP error | Usually on my own | Fixing the "White Screen of Death" |
| “Temporarily unavailable due to scheduled maintenance” | WordPress is still in maintenance mode. | Interrupted update | By myself | stuck in maintenance mode |
| Status Code 500 or “Internal Server Error” | The server cannot process the request. | .htaccess, plugin, or PHP error | Usually on my own | status code 500 |
| Status code 502, 503, or 504 | The server is slow to respond or isn't responding at all. | Overloading, demanding processes, maintenance | Mostly hosting | status code 502, 503, 504 |
| Status Code 403 or “Forbidden” | The server is denying access. | The firewall is blocking your IP address, .htaccess, file permissions | Together | status code 403 |
“This page isn't working; I'm being redirected too often” (ERR_TOO_MANY_REDIRECTS) | Addresses are constantly being passed back and forth. | Site URL, duplicate HTTPS redirects, CDN | Usually on my own | Fixing too many redirects |
| No padlock icon or “not fully secure” message after switching to HTTPS | Parts are still being uploaded via http://. | Old references in the database | By myself | Resolving mixed content |
| “Allowed memory size exhausted” | A script is using too much PHP memory. | Resource-intensive plugin or low limit | Together | Increase the memory limit |
| “The uploaded file exceeds the `upload_max_filesize` limit” | The file is too large for the server. | Upload Limit in PHP | By myself | Increase the maximum upload size |
| “cURL error 28” in Site Diagnosis | An outgoing connection is timing out. | Slow external service or firewall | Together | cURL error 28 |
Your site isn't loading or is showing a blank screen
These are the errors that can cause your entire site or wp-admin is obvious, and thus the mistakes that cause the most fear.
The Critical Error
The critical error means that WordPress has caught a fatal PHP error and is displaying a general message instead. The actual cause is listed in the recovery mode email or the error log, where you can usually see exactly which plugin or theme is causing the error. In most cases I encounter, the issue is related to a plugin or theme update, or a plugin that isn’t compatible with your PHP version. If you’ve just pasted a piece of code, you’ll often see a parse error with the filename and line number. You can remove that snippet using File Manager. If WordPress’s core files are corrupted, upload fresh folders wp-admin and wp-includes, but never overwrite wp-content, because that's where your themes, plugins, and uploads are located. The complete step-by-step guide can be found in ‘Resolving ’A critical error has occurred'.".
The White Screen
The white screen (white screen of death) is an error with no message, where the page remains blank because error display is disabled or WordPress is out of date. It’s actually similar to a critical error—with the same causes—except that WordPress doesn’t show you anything. So start here as well by checking the debug mode or the error log. You can read about the approach in “Fixing the White Screen of Death.”.
The database connection error
The database connection error means that WordPress cannot access the MySQL database; in English, this is called “Error establishing a database connection.” There are three common causes. The data in wp-config.php are no longer correct, often after a move or a password change. The database server is overloaded or down. Or some tables are corrupted. I want to be honest here, because you can’t fix every error on your own. If the database server is down, that’s your hosting provider’s responsibility. To find out which of the three is the cause, read the guide on troubleshooting database connection errors.
Stuck in maintenance mode
Stuck in maintenance mode means that an interrupted update has caused the file to .maintenance left in the root folder. Delete that file and then check to see if the update has actually completed. More on this in maintenance mode.
Do you see “This site is unavailable” or DNS_PROBE_FINISHED_NXDOMAIN, then there’s something else going on. That’s not a WordPress error, but a domain that isn’t yet properly pointing to the server—often right after a migration. At Surver, the default TTL—the time a DNS response is cached—is 600 seconds. See also What is DNS?.
Server errors, status codes, and redirects
A status code is the response code that the server returns with every request, and a WordPress error with a code starting with a 4 or 5 indicates a problem.
- 5xx, the problem is on the server side. Status code 500 is often caused by an error in the .htaccess file, a plugin, or incorrect file permissions. Errors 502 and 504 mean that the server is too slow or not responding, and error 503 means it is temporarily unavailable.
- 4xx: The request is denied or the page does not exist. Status code 403 means "Access Denied,", 404 not found and 429 too many requests.
- cURL error 28 is not a status code, but a timeout for connections that WordPress establishes itself, such as during updates. You'll see it under Extras > Site Diagnosis. Learn more about cURL error 28.
I often see a 403 error after too many failed login attempts or after changing file permissions. Normally, directories are set to 755, files to 644, and wp-config.php stricter, set to 440 or 400. All of Surver’s shared hosting plans include a ModSecurity firewall with automatic IP blocking, so if you get a 403 error, support can check whether your IP address has been blocked. If all pages suddenly return a 404 error, try resaving your permalinks. As a rule of thumb, 4xx errors are usually on your end or related to your settings, while 5xx errors are more often caused by the server or a plugin that’s causing the server to crash. The more detailed step-by-step guide can be found in WordPress Website Offline.
Too many redirects and mixed content
A redirect is an automatic redirection to another address, with status code 301 for permanent and 302 or 307 on a temporary basis. You can read about how that works in what are redirects. Too many redirects mean that URLs keep redirecting to one another endlessly, creating a redirect loop. The three most common causes are an incorrect site URL, duplicate HTTPS redirects in .htaccess or in a plugin, or a CDN with a different SSL setting. A login page that keeps reappearing is usually part of such a loop as well. The solution is described in “Fixing Too Many Redirects.”.
Mixed content means that your page loads via HTTPS, while images or scripts are still being served via http://. In this case, you won’t see a padlock icon or a message indicating that the connection isn’t fully secure. Convert the site URL and the links in the database to https://, as described in “Resolving Mixed Content.”.
Server Limits: Memory and Uploads
Some errors occur because a PHP limit on the server has been reached, and that is a server setting, not a WordPress setting. “Allowed memory size exhausted” means that a script is requesting more PHP memory than is allowed. With Surver, you can increase memory_limit yourself via cPanel > Select PHP Version > Options, and also php_value in .htaccess or WP_MEMORY_LIMIT in wp-config.php work. My advice, though, is to remain skeptical. If the error reappears after you increase the limit, the problem lies in a plugin that’s using too much memory, and you’re just raising the ceiling. See “Increasing the memory limit.” For “Maximum execution time of 30 seconds exceeded,” make the adjustment in the same place max_execution_time on.
Two different values apply to uploads, upload_max_filesize and post_max_size, which you can also adjust via Select PHP Version. An “HTTP error” when uploading images or a 413 status code is often caused by this limit, but can sometimes be due to the permissions of the uploads folder or a plugin that modifies the file. See “Increase the maximum upload size.”.
Glitch or hack?
A hack sometimes looks like a simple mistake, but requires a completely different approach. Watch out for unknown administrator accounts in WordPress, visitors being redirected to spam sites, strange files in the root directory, or a warning from Google or your browser. If you notice any of these signs, don’t just disable a few plugins and wait to see what happens. That will only mask the symptom, while the intruder retains access. In that case, follow the steps in WordPress website hacked, now what? and, if necessary, leave the repair to us via WordPress hacked.
How to Avoid Most WordPress Errors
Most of the errors we see are the result of an update that was applied directly to the live site. Therefore, you should first test updates on a staging environment, a copy of your site where any errors won't affect visitors. With Surver, you can create one by cloning your installation in Installatron.
Also, make sure you always have a recent backup. On shared hosting, Surver automatically creates daily, weekly, and monthly backups, but I also make my own backup before making any major changes. Keep your PHP version up to date with Update PHP Version and remove any plugins you don't use, because every plugin increases the risk of conflicts. Never paste code snippets directly into functions.php on your live site. A single missing semicolon is enough to cause a critical error. If you'd rather have updates tested and deployed, that falls under WordPress maintenance.
Asking for help: Here's what to include
The more complete your request for help is, the faster you'll get a solution, because support won't have to ask you for more details first. Be sure to include the following information.
- The exact error message, preferably as a screenshot.
- The URL where the error occurs.
- The time when it began.
- What you last changed.
- The rule from
debug.logor the error log.
At Surver, we routinely monitor the servers. If there’s a server-side issue—such as an overloaded database server—that’s our job, and you can see any outages at status.surver.nl. On our Managed WordPress Hosting you'll have the tools at your fingertips. In cPanel, you can use JetBackup 5 to restore individual files, databases, or email accounts; change the PHP version via "Select PHP Version"; and find PHP errors in the file error_log. Access logs are located under Raw Access. If you can't figure it out, our support team will take a look—via email on weekdays and Saturdays, via chat on weekdays, and by phone for urgent matters on weekdays. With us, a real person will always answer your question. If the error is in a custom theme or your own code, then our webmaster service picking it up.
Frequently Asked Questions
How do I find out which plugin is causing an error?
Check the file path in the recovery mode email or the error log, as it contains the name of the plugin folder. If no path is listed, rename the "plugins" folder so that all plugins are disabled, and then re-enable them one by one. As soon as the error reappears, you've found the culprit.
Can I fix a WordPress error by restoring a backup?
Yes, if you know the error occurred after a certain point in time. Any changes made after that will be lost—and in the case of a WooCommerce online store, that includes orders. Therefore, first revert to the last change and consider the backup as a last resort.
Can a WordPress error hurt my visibility on Google?
A brief error won’t last long. If pages consistently return a 5xx or 404 status code, Google may lower their ranking or remove them from the index. So fix the error quickly and then check in Search Console to make sure everything is being crawled properly again.
Does Surver fix WordPress errors for me?
Surver handles server errors related to managed WordPress hosting. Errors in plugins, themes, or customizations are covered under WordPress maintenance and management or the webmaster service. Support always reviews the issue to determine the cause of the error.