WordPress errors look frightening because they appear without warning and say very little. The good news: almost every one of them has a short list of causes, and the first thing to try is usually safe and quick. This guide is organised by the exact message you are looking at, so you can find yours, understand what it means in plain words, and try the first fix without making things worse.
We refreshed this guide on 18 October 2026 against WordPress 7.1.3. Every message below is quoted exactly as WordPress 7.1.3 shows it, and we caused a real critical error on a test site to show what visitors and administrators each see.
Before you try anything: three safe first steps
- Do not panic-delete. An error almost never means your content is gone. Posts, pages and images live in the database and the uploads folder, which errors do not touch.
- Write down the exact message and what you did just before. “I updated a plugin and now I see a critical error” points straight at the cause.
- Check you have a recent backup, and do not restore yet. Most errors are fixed in minutes without a restore, but knowing a backup exists takes the pressure off. Our guide to restoring WordPress from a backup is there if you need it.
Find your message
Match the words on your screen to the first column, then jump to that section for the full steps. If you see something not listed here, the error log routine further down still applies.
What you see | What it usually means | First thing to try |
|---|---|---|
There has been a critical error on this website. | A plugin or theme hit a fatal PHP error | Check your admin email for the recovery link; otherwise deactivate the last plugin you changed |
A completely blank white page | The same kind of fatal error, with the message hidden | Same as above |
HTTP ERROR 500 / 500 Internal Server Error | The server could not finish the request | Undo the last change; check the error log |
Error establishing a database connection | WordPress cannot reach its database | Check whether your host has a database outage |
Briefly unavailable for scheduled maintenance. Check back in a minute. | An update was interrupted | Wait 10 minutes, then re-run the update |
The link you followed has expired. | A security token expired, or an upload was too large | Reload the page and try again; check upload limits |
Allowed memory size ... exhausted | PHP ran out of memory | Find what used the memory before raising the limit |
Login page is blank, or keeps sending you back to log in | A plugin error on the login page, or cookie and address settings | See the login section below |
“There has been a critical error on this website.”
This is the message you will see most often since WordPress started catching fatal errors instead of showing a blank page. It means some PHP code, almost always a plugin or theme, crashed while building the page.
What we saw on a test site
We installed a small plugin that deliberately crashes and loaded the site with WordPress 7.1.3:
Where the crash happened | What a visitor saw | What the administrator saw |
|---|---|---|
Front of the site only | “There has been a critical error on this website. Learn more about troubleshooting WordPress.” (the page returned HTTP status 500) | The dashboard still worked, so the plugin could be deactivated from the Plugins screen |
Every page, including the dashboard | The same message | “There has been a critical error on this website. Please check your site admin email inbox for instructions. If you continue to have problems, please try the support forums.” |
WordPress has four versions of this message. The one telling you to check your admin email means WordPress has tried to send a recovery mode link to the site’s administration email address. That link lets you log in with the broken plugin paused, so you can deactivate it from the dashboard.
First thing to try
- Try the dashboard. Go to
yoursite.com/wp-admin/. If it loads, go to Plugins and deactivate the plugin you installed or updated most recently. Reload the site. - Check the admin email inbox (and spam) for an email from your site about a technical issue. Use its link to enter recovery mode, then deactivate the plugin or switch the theme it names.
- No email and no dashboard? Open your host’s file manager (or FTP), go to
wp-content/plugins, and rename the folder of the last plugin you changed, for examplecontact-formtocontact-form-off. In our test, this brought the site straight back, and WordPress marked the plugin as inactive. - Still broken? Do the same for the theme folder in
wp-content/themes; WordPress falls back to another installed theme.
Why the recovery email sometimes never arrives: on our test site the email could not be sent because the server had no working mail, which is common on cheap hosting. If you never receive WordPress emails (password resets, form notifications), fix email delivery once things are working again; our guide to checking whether your WordPress emails arrive shows how.
A blank white screen (the “white screen of death”)
A blank page is the same problem as the critical error, with the message switched off by your host or an older setup. The fixes are identical: dashboard, recovery email, then renaming the plugin folder.
Two variations are worth knowing:
- White screen straight after an update. Almost always the item you just updated. Our step-by-step white screen after an update guide covers the four ways back in.
- Only the login page is blank. See why the login page shows a blank screen; a security or login plugin is the usual cause.
“HTTP ERROR 500” or “500 Internal Server Error”
This one comes from the server or the browser rather than WordPress itself. It means the server started handling the request and failed. A WordPress critical error also returns status 500, so the two often have the same cause.
First thing to try
- Undo the last change. A plugin, theme, PHP version switch at your host, or an edit to
.htaccess. - Look at the error log. Your hosting control panel has an “Errors” or “Error log” section. The newest line names the file that failed, which names the plugin or theme.
- If you edited
.htaccess(or a plugin did), rename it to.htaccess-oldand reload. If the site comes back, go to Settings, Permalinks in the dashboard and click Save Changes; WordPress writes a fresh file. - If nothing changed on your side, ask your host. A 500 error on every site on the account points to the server.
“Error establishing a database connection”
WordPress shows this when it cannot talk to the database where your posts and settings live. The content is not lost; WordPress just cannot reach it.
First thing to try
- Check your host’s status page or support chat. A database server outage is the most common cause and is fixed on their side.
- Did you just move the site or change the database password? Then the details in
wp-config.php(database name, user, password and host) no longer match. Your host’s database section shows the correct values. - Is the site busy? A traffic spike or a runaway plugin can use up the allowed database connections. If the error comes and goes, ask your host whether you hit a connection limit.
“Briefly unavailable for scheduled maintenance. Check back in a minute.”
WordPress shows this message to visitors while an update runs, and takes it down when the update finishes. If the update is interrupted (you closed the tab, the connection dropped), the message can stay up for a while.
First thing to try
- Wait ten minutes. We checked WordPress 7.1.3’s code: it treats maintenance mode as over after 10 minutes, so the message clears on its own.
- Re-run the update that was interrupted, from Dashboard, Updates, so nothing is left half-updated.
- Still showing after that? Ask your host to take a look; it usually means the update could not finish writing its files.
“The link you followed has expired.”
This message has two very different causes:
When it appears | Cause | Fix |
|---|---|---|
After leaving a screen open for a long time, then clicking save or a button | The security token on the page expired | Reload the page and do it again |
When uploading a theme, plugin or large file | The file is bigger than the upload limit your server allows | Upload a smaller file, or ask your host to raise the upload and post size limits |
Older versions of WordPress showed “Are you sure you want to do this?” for the first case. WordPress 7.1.3 still contains that wording, but the message you will normally see is “The link you followed has expired.”
“Allowed memory size of ... bytes exhausted”
PHP gives each page a fixed amount of memory. When a plugin, theme or import needs more, PHP stops. On a normal site you will usually see the critical error message rather than this text; the memory wording appears in error logs, or on screen when debugging is switched on.
First thing to try
- Find what used the memory. The error log line names the file. A single plugin using far more memory than everything else is a bug or a setting to fix, not a reason to raise the limit forever.
- Raise the limit if the job genuinely needs it. Your host’s PHP settings usually have a “memory_limit” option. A large import or a big online store can reasonably need more than a small blog.
- Repeated memory errors on a growing site are a sign the hosting plan has been outgrown. Our guide to choosing hosting for your budget and traffic helps you size the next one.
Login problems: blank login page or a login loop
Two different problems share the same feeling of being locked out:
- Blank or broken login page: usually a plugin (often security, login customisation or caching) crashing on the login screen. Rename that plugin’s folder as described above.
- You log in and land back on the login page: usually cookies or addresses. Clear your browser’s cookies for the site and try a private window. If it continues, check that the “WordPress Address” and “Site Address” in Settings, General match the address you use (including https and www). A caching plugin or CDN caching the login page can also cause it.
If you are locked out because of a password or lost access rather than an error, our guide to who holds the keys to your website lists six ways back in.
Errors that are not WordPress errors
Message | Where it comes from | What to do |
|---|---|---|
404 Not Found on posts that exist | WordPress cannot match the address to a post, often after a move or a permalink change | Settings, Permalinks, click Save Changes without changing anything |
403 Forbidden | The server or a firewall refused the request | Check your security plugin and your host’s firewall log |
502 Bad Gateway / 504 Gateway Timeout | A server or CDN in front of WordPress gave up waiting | Usually temporary; if it repeats, ask your host about server load |
“Your connection is not private” | The SSL certificate has expired or does not match | Renew or reissue the certificate in your hosting panel |
Too Many Requests (429) | A server or security rule is limiting traffic, often because of bots |
When an update caused it
Most errors appear right after an update. If yours did, the quickest route is to undo that one update rather than troubleshoot everything: deactivate or roll back the plugin or theme you updated, then update again later once its developer has released a fix. Our recovery playbook for when an update breaks your site walks through that in order, and how to undo changes in WordPress covers the other undo buttons you have.
How to see the real error message
The friendly messages hide the detail on purpose, so visitors do not see technical information. When you need the detail to find the cause, you have three options, from easiest to most technical:
- Your host’s error log. Look in the control panel for “Errors”, “Error log” or “Logs”. This is the safest place to look.
- Site Health. If the dashboard works, Tools, Site Health shows problems WordPress has detected, and its Info tab lists your versions, which a developer will ask for.
- Debug logging. WordPress can write errors to a file called
debug.loginsidewp-content. It is switched on with these lines inwp-config.php, added above the line that says “That’s all, stop editing!”:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );The third line keeps errors off the screen so visitors never see them. Remove the lines (or set the first to false) when you are done, because the log file can grow large and may contain details about your site.
How to read an error log line
Error logs look intimidating, but you only need one part of each line. This is the real line our test crash wrote to the server’s error log:
PHP Fatal error: Uncaught Error: Call to undefined function undefined_function_for_test() in /var/www/html/wp-content/plugins/test-fatal/test-fatal.php:3Part | What it tells you |
|---|---|
| The kind of problem. “Fatal” is the one that stops the page; “Warning” and “Notice” lines are usually harmless background noise. |
| What went wrong, in programmer’s terms. You do not need to understand it; a developer will. |
| The part that matters to you: the folder name after |
| The line number in that file, useful when you report the bug to the plugin’s developer. |
So the line above says: the plugin in the test-fatal folder crashed. Deactivate or rename that one plugin and leave the rest alone. If the path shows wp-includes or wp-admin instead, the error is surfacing inside WordPress itself, but the cause is still usually a plugin or theme further down the log entry; send the full entry to your host or developer.
A five-minute routine for any error
- Write down the exact message and the time.
- Note what changed in the last hour: updates, new plugins, settings, host changes.
- Check whether the dashboard still loads.
- Check the admin email inbox for the recovery link.
- Read the newest line of your host’s error log and find the folder name.
- Undo the one change that matches, by deactivating, rolling back or renaming that folder.
- Reload the site in a private browser window, so you are not looking at a cached copy.
Most errors end at step 6. If yours does not, you now have exactly what your host or developer needs.
Prevent the next one
- Keep a backup that you have tested. A backup you have never restored is a hope, not a plan.
- Update one thing at a time and check the site after each, so you always know what caused a problem.
- Test big updates on a staging copy first. Many hosts include one; see our staging site guide.
- Make sure your admin email works, so the recovery mode link reaches you when it matters.
- Remove plugins you do not use. Each one is code that can fail.
When to ask for help
Ask your host first if the error affects every page and nothing changed on your side, mentions the database, or comes with 502, 503 or 504 status codes. Ask the plugin or theme developer if renaming their folder fixes the site; send them the error log line. Ask a WordPress developer if the error keeps returning, if custom code is involved, or if you are not comfortable working with files. Whoever you ask, give them the exact message, when it started, what changed just before, and the error log line: that turns hours of guessing into minutes.
Frequently asked questions
What does “There has been a critical error on this website” mean?
A plugin or theme crashed with a fatal PHP error. WordPress catches it, shows this message, and where it can, emails the site administrator a recovery mode link to log in with the broken item paused.
Will I lose my content?
Almost never. Errors stop pages from being built; they do not delete posts, pages or images. Avoid restoring a backup or reinstalling until you know the cause, because those steps can undo recent work.
How do I fix a WordPress error if I cannot log in?
Use the recovery link from the admin email if WordPress sent one. Otherwise open your host’s file manager and rename the folder of the plugin you changed last, inside wp-content/plugins. In our test this brought the site back immediately and WordPress marked the plugin inactive.
Is HTTP error 500 a WordPress problem?
Sometimes. WordPress’s critical error page returns status 500, so a plugin crash shows up as a 500 error. A 500 error on every site on your hosting account, or with no recent changes, usually points to the server.
Why does my site say it is in maintenance mode?
An update was interrupted. WordPress ends maintenance mode by itself after 10 minutes; then re-run the update from Dashboard, Updates.
Why do I see the error but my visitors do not, or the other way round?
Caching. Your browser, a caching plugin or your host may be showing a saved copy of the page from before or after the problem. Check in a private window, and clear your caching plugin’s cache after any fix.
Should I reinstall WordPress to fix an error?
Rarely. Reinstalling the core files does not touch plugins or themes, which cause most errors. Find the plugin or theme from the error log first. Reinstalling core only helps when the log points at WordPress’s own files after a failed update.
Should I raise the PHP memory limit?
Only once you know what is using the memory. Raising the limit hides a misbehaving plugin; it is the right fix for genuinely heavy jobs such as large imports or busy stores.





No comments yet