Key takeaways
- Self-hosted WordPress has no central server that can go down. If your site fails, the cause is your site, your host, your domain or your network.
- Plugin and theme incompatibility after an update is the most common trigger. Some conflicts only appear when two specific plugins are active together, so disabling everything at once can hide the cause.
- Patchstack counted 11,334 new WordPress ecosystem vulnerabilities in 2025. 91% were in plugins and 46% had no developer fix at disclosure.
- Read the error log before you raise the memory limit, change PHP or restore a backup. Each of those can hide the real cause or overwrite new orders.
- On a stuck WooCommerce checkout, check WooCommerce > Orders before you retry, because the order may already exist. A staging copy can still charge real payments.
When a WordPress site breaks today, WordPress itself is rarely the cause. The cause is usually one plugin, one theme, the PHP version, a cache or the host, and each of these fails in its own way. Patchstack’s report on 2025 found 91% of new WordPress vulnerabilities in plugins. Everyday breakage follows the same pattern: the trouble is in the layers around core.
This matters because your first move decides how long the fix takes. Find the failing request or component before you change any settings. Our guide to fixing WordPress issues without guessing covers the method in depth. This page matches today’s common symptoms to the first safe step for each.
Is WordPress down, or is it just your site?
It is almost always just your site. Self-hosted WordPress has no central server that can go down for everyone. WordPress.com is a separate hosted service with its own status page, and that page tells you nothing about a site on your own hosting.
Rule out the cheap explanations before you touch plugins:
- Load the site on mobile data instead of your office Wi-Fi.
- Confirm the domain hasn’t expired and the hosting bill is paid.
- Check your host’s status page.
Each of these can produce the same blank page or timeout as a broken plugin, and no amount of plugin testing will fix them.
Which problems turn up most, and what to do first
Nobody publishes a reliable count of which WordPress problems are most common. The table below follows the order that WordPress.org’s documentation, WooCommerce’s docs and the support forums consistently point to. Find your symptom before you change anything.
| Symptom | Usual cause | First safe step |
|---|---|---|
| Something broke right after an update | Plugin or theme incompatibility | Roll back or disable that one component, on staging if you can |
| “There has been a critical error on this website” | PHP fatal error in a plugin, theme or custom code | Recovery Mode email, or the error log |
| White screen or 500 error | PHP fatal error, .htaccess or memory | Read the error log |
| “Allowed memory size … exhausted” | The process named in the error | Fix that process before you raise the limit |
| Changes not showing | A cache layer still serving the old copy | Purge every layer and test in a private window |
| Checkout stuck on a spinner | A failed background request | Browser Network tab, then check Orders |
| “Error establishing a database connection” | Wrong wp-config.php details, or the database server | Check the credentials, then ask the host |
| Every post 404s, homepage loads | Stale rewrite rules | Save Settings > Permalinks |
The site broke after an update
This is the problem people hit most often. WordPress.org’s Recovery Mode documentation says fatal errors often come from an incompatible or faulty plugin, theme or custom code, and updates are when those incompatibilities show up. An update can break the whole site, only wp-admin, or a single feature such as checkout, a form or a layout.
Start with what changed. If one plugin updated this morning and checkout broke this afternoon, roll back or deactivate that plugin first. If nothing obvious changed, run a conflict test the way WooCommerce documents it:
- Switch to a default theme.
- Disable all plugins.
- Turn them back on one at a time, and repeat the exact action that failed after each one.
The common trap is disabling everything and calling the site fixed. Some conflicts only happen when two specific plugins run together. A blanket disable brings the site back but hides which pair caused the problem.
One store owner on the WordPress.org forums handled this well. They updated a cookie consent plugin and a few others on staging, and guest checkout stopped working. Testing showed the consent plugin was blocking a WooCommerce script. A settings exception worked around it until the plugin’s author released a fix. The live store never saw the failure.
If WordPress said the update itself failed, that’s a different problem. See why WordPress updating failed.
“There has been a critical error” means PHP stopped
This message means a PHP fatal error, almost always from a plugin, theme or code snippet. WordPress emails the admin address a Recovery Mode link, which pauses the failing component for your login session only. Visitors still see the error until you deactivate or fix that component. WordPress’s documentation calls deactivation a temporary fix, not the real one.
The email often never arrives, especially when the admin address is an inbox nobody reads anymore. In that case, open your host’s file manager or connect over SFTP and rename the suspect plugin’s folder in wp-content/plugins. WordPress then treats that plugin as deactivated. The error log names the file that failed, which tells you which folder to rename. Our guide on how to fix a WordPress fatal error shows how to read that log.
A white screen or a bare 500 is often the same failure with error display turned off. WordPress’s common-errors handbook lists .htaccess, plugins, the theme and memory limits as causes of a 500. The log tells you which one it is. See fixing a server error 500 on WordPress.
Memory errors: fix the process, not the limit
When the log shows “Allowed memory size of … bytes exhausted”, visitors usually see a critical error, a blank page or a 500. Kinsta’s documentation advises fixing the process named in the error rather than simply raising the limit. Raising WP_MEMORY_LIMIT in wp-config.php only helps when the limit really is the problem. Your host may also enforce a lower ceiling than WordPress requests, so the edit can do nothing at all.
If the error names a plugin file, that plugin is your first suspect. Before you edit anything, ask your host what memory limit your plan actually allows.
Changes not showing usually means a cache is still serving the old page
A WordPress site can have five caches: a caching plugin, the host’s server cache, an object cache, a CDN and the browser. Clearing one doesn’t clear the others. Purge each layer you have, then check the page in a private window.
Stores have a second cache problem. WooCommerce’s documentation says the Cart, Checkout and My Account pages usually need to be excluded from page caching because their content is specific to each shopper’s session. If they get cached, those pages can display incorrectly or stop working.
A stuck checkout spinner means a request failed
WooCommerce’s documentation says the spinner alone doesn’t tell you the cause. To find it:
- Open your browser’s developer tools and go to the Network tab.
- Filter by Fetch/XHR.
- Place a test order and find the request that failed.
The failed request points to the layer at fault:
- 403: a firewall, security rule or authorization check rejected the request.
- 500: a PHP fatal error or server failure. Check the error log.
- HTML or a redirect where JSON should be: a cache, security layer, proxy, redirect or PHP warning changed the response.
The same document gives three warnings:
- Check WooCommerce > Orders before you retry “Place order”. The order may already exist.
- A staging copy can still charge real payments, send email and fire webhooks unless you turn those connections off.
- Don’t switch between the Checkout block and classic checkout as a first step. The switch can hide the original incompatibility.
“Error establishing a database connection”
WordPress’s handbook gives two kinds of cause:
- A wrong database name, user, password or host in wp-config.php.
- A problem at the host, such as a database server that is down or over its quota.
If you haven’t changed the credentials and the error comes and goes, suspect the database server.
Extreme cases exist. One site on the WordPress.org forums had intermittent connection errors on shared hosting. Replies traced them to a wp_options table that had grown to about 32 GB, which caused table locking. The right fix in a case like that has three parts: find the plugin writing the data, back up, and have the host look at the database. A cleanup plugin that removes the data but leaves the plugin writing it only buys a few weeks.
Every post 404s but the homepage loads
This usually means the rewrite rules are stale. Go to Settings > Permalinks and click Save Changes without changing anything. That rebuilds the rules.
If that doesn’t help, check two things. The server may not have Apache’s mod_rewrite module enabled, which WordPress.org’s troubleshooting FAQ lists as a cause. Or a page and a custom post type may share a slug. If you aren’t comfortable editing .htaccess, ask your host.
Why the plugin security problem keeps getting bigger
Patchstack counted 11,334 new vulnerabilities in the WordPress ecosystem in 2025, 42% more than in 2024:
- 91% were in plugins and 9% in themes. Only six were in core, all low priority.
- 46% had no fix from the developer by the time they were made public.
Treat these numbers with care. Patchstack sells security products. Other security companies count vulnerabilities differently and get different totals. Some of the growth comes from more researchers looking. A vulnerability count is not a count of hacked sites. What every source agrees on is that the risk is in plugins, so an up-to-date core does not mean an up-to-date site.
Site owners feel this too. In WordPress.org’s 2023 Annual Survey, the top frustration was “too many plugins (finding the right one)” at 18.6%. Security followed at 16.4%, slow performance at 16.2%, and maintenance and updates at 12.3%.
The practical response is routine work:
- Delete plugins you don’t use.
- Keep the rest updated.
- If a plugin has a publicly known flaw and no fix, deactivate or replace it.
If you suspect a hack, WordPress security issues and how to fix them explains how to tell a compromise from an ordinary error.
Which quick fixes make things worse
Each of these feels like progress and often isn’t:
- Raising the memory limit before reading the log. It hides a faulty plugin, and the host may ignore the new value anyway.
- Clearing one cache and assuming the job is done. The CDN or server cache can still serve the old page.
- Disabling the security plugin to see if it helps. Confirm that it blocked the request first. Otherwise you have removed protection and learned nothing.
- Disabling plugins on a live store at a busy hour. Customers lose the features those plugins provide while you test.
- Changing PHP because the site is slow. A PHP change is a compatibility project, not a speed fix. Test it on staging.
- Restoring a full backup first. A restore overwrites every order, form entry and edit made since the backup was taken. Rolling back one plugin keeps them. If you do need a restore, how to restore a WordPress site from backup covers what to protect first.
- Changing several things at once. If the site comes back, you won’t know which change fixed it.
When to stop and get help
Stop doing it yourself in any of these situations:
- You are locked out of both wp-admin and your hosting files.
- A live checkout is failing and you have no staging copy you can safely test payments on.
- There are signs of a compromise: redirects you didn’t add, admin users you don’t recognise, or browser warnings.
- Database errors continue even though the credentials are correct.
Whoever takes the job needs the same information either way:
- the URL;
- the exact action that fails;
- when it last worked;
- what changed in between;
- the relevant lines from the error log.
Get the scope and any extra charges in writing before work starts. “Investigation” means different things to different providers.
If you’d rather describe the symptom in chat than trace it yourself, SiteSelf’s agent can do WordPress troubleshooting and bug fixes on your existing site, using hosting access for file and code work, and reports what it changed and checked.
Frequently asked questions
How do I find which plugin is causing the problem?
Disable all plugins, then turn them back on one at a time, repeating the exact action that failed after each one. Switch to a default theme too if the problem survives. Do this on staging for a store, because disabling plugins on the live site removes features customers rely on.
Does updating WordPress fix every security issue?
No. Core updates cover core. Plugins and themes update separately. PHP is updated on the server by your host. A dashboard that says everything is up to date tells you nothing about the PHP version running your site.
Should I turn on automatic plugin updates?
For well-maintained plugins on a simple site, auto-updates close security holes faster than you would by hand. On stores and sites with custom layouts, an update can break checkout or a template without warning, so test those updates on staging first. Either way, keep a backup you know you can restore.
Why did my site suddenly slow down?
“Slow” is a symptom with several possible causes: a plugin, large images, the host, caching, the theme, external scripts or the database. Measure the page with PageSpeed Insights before you change anything or pay for optimisation. Turning plugins off doesn’t always reveal the cause.
Can two plugins that work fine on their own break the site together?
Yes. Some conflicts only appear when two specific plugins, or a plugin and a theme, are active at the same time. That’s why the conflict test turns plugins back on one at a time instead of judging each plugin alone.
Can my host fix it?
Hosts handle server problems: database outages, memory ceilings, PHP versions and missing server modules. Most won’t debug a plugin conflict, and some charge for investigation. Ask your host to confirm your account’s limits and check the server logs, then take that information to whoever fixes the site.



