NewTry MagicWP now - first month free
WordPress troubleshooting

Fix common WordPress errors.

One page per error, written for somebody whose site is down right now. Each starts with the message as WordPress writes it, then the causes in the order worth checking them.

Errors

Find the message you are seeing.

Match the wording rather than the symptom - a blank page and a 500 look identical in a browser and are different problems underneath.

Error establishing a database connection

WordPress loaded, read wp-config.php, and could not get an answer from MySQL. Every page on the site is blank until it can.

The WordPress white screen of death

A completely blank page with no error and no HTML. PHP stopped mid-request and the message went to a log you have not read yet.

500 Internal Server Error

The web server tried to produce the page, something went wrong inside, and it returned a status code instead of a reason.

502 Bad Gateway

The web server reached PHP and PHP did not answer. Nginx or Apache is reporting a conversation that ended before it started.

504 Gateway Timeout

PHP was still working when the web server gave up waiting. Nothing crashed - it simply took longer than the timeout allows.

Allowed memory size exhausted

PHP reached the ceiling it was given and stopped. The number in the message is the limit, not the amount your site needs.

Maximum execution time exceeded

PHP stopped a script that had been running longer than it is allowed to. The limit did its job; the question is whether the job belonged in a web request.

ERR_TOO_MANY_REDIRECTS

The browser followed redirect after redirect and stopped. Two things disagree about where this URL should live, and each is confident.

There has been a critical error on this website

WordPress's own fatal error handler. It caught a crash, replaced the page with this sentence, and told nobody except the admin email.

Briefly unavailable for scheduled maintenance

WordPress writes a .maintenance file before an update and removes it after. The update did not finish, so the file is still there.

The uploaded file exceeds the upload_max_filesize directive

PHP refused the file before WordPress saw a byte of it. The number in the message is PHP's ceiling, not WordPress's.

HTTP error when uploading images

The file transferred, then something failed while WordPress was generating the thumbnails. The message is the same whatever that something was.

Mixed content warnings on an HTTPS site

The page arrived over HTTPS and then asked for something over HTTP. Browsers block the active parts and drop the padlock for the rest.

Scheduled posts show “Missed schedule”

The publish time passed and nothing happened. WP-Cron is not a clock — it runs when a request arrives, and no request arrived.

MySQL server has gone away

WordPress had a working database connection and lost it mid-request. The query is rarely at fault; the connection is.

Your site could not complete a loopback request

WordPress made an HTTP request to its own address and did not get an answer. Several features depend on that working.

The REST API encountered an error

Something answered the request that was not WordPress, or answered it with HTML. The editor stops working first, because it depends on the API for everything.

Sorry, this file type is not permitted for security reasons

The upload was rejected before anything was written. Either the extension is not on the allowed list, or the file's contents do not match the extension.

403 Forbidden on a WordPress site

The request was understood and refused. The refusal came from the web server, a firewall or a permissions rule — WordPress is rarely involved.

404 on every page except the home page

A very specific pattern with a very short list of causes. Your posts still exist; the router in front of them is not routing.

Or stop debugging your host.

Most of these are configuration rather than WordPress. Managed hosting with daily backups, one-click staging and per-site limits takes the common causes off the list.