Most of the WordPress problems I get asked about don't have one cause. "The site is broken" could mean a blank white page, a 500 error, a login that won't accept the right password, or a page that loads but looks visually wrong. Each of those points somewhere different, so the useful first step isn't a fix โ it's narrowing down which category you're actually dealing with.
This is how I approach a broken WordPress site before touching anything, based on the same WordPress and WooCommerce project work I do for clients.
Start with what changed
Before diagnosing anything, ask what happened right before the site broke. In order of likelihood, it's usually one of:
- A plugin or theme updated (automatically or manually)
- WordPress core updated
- Someone edited a file, a menu, or a setting
- The hosting provider changed something (PHP version, a server migration)
- Nothing you're aware of โ which usually points to an automatic update or a scheduled task
If you know what changed, you already have your first suspect. If you don't, checking the hosting control panel's update log or your host's activity log is often faster than guessing.
The site won't load at all, or shows a 500 error
A 500 error most often means a PHP fatal error โ a plugin or theme trying to run code that's no longer compatible with the current PHP version, or two plugins conflicting โ though a server-level misconfiguration can produce the same error page.
What I'd check, in order:
- Enable debug mode (
WP_DEBUGandWP_DEBUG_LOGinwp-config.php) to see the actual PHP error instead of a generic 500 page. - Check the server's PHP error log directly if you have hosting access โ it usually names the exact file and line.
- Deactivate all plugins via FTP or file manager (rename the
pluginsfolder, or rename individual plugin folders one at a time) if you can't reach wp-admin. If the site comes back, reactivate plugins one at a time to isolate the culprit. - Switch to a default theme (like Twenty Twenty-Four) the same way, if a theme is the suspect.
White screen with nothing on it
A blank white page with no error text is usually the same underlying cause as a 500 error โ a fatal PHP error โ just with error display turned off. The fix is the same: turn on WP_DEBUG_LOG, check the log, and work from there.
Elementor editor not loading, or a layout broken
Elementor issues are usually one of: a JavaScript conflict with another plugin, an outdated Elementor or Elementor Pro version against a newer WordPress/PHP version, a caching plugin serving old CSS/JS, or a corrupted _elementor_data entry on a specific page after a bad edit.
I'd clear all caching first (site cache, browser cache, and any CDN/Cloudflare cache), then check the Elementor version against WordPress and PHP compatibility, then test with other plugins deactivated. A layout broken on one specific page, rather than the whole site, usually points at that page's own saved data rather than a global conflict.
Can't log into wp-admin
This is rarely "I forgot my password." Common real causes: a security plugin locking out the IP after failed attempts, a redirect loop caused by mismatched Site URL/Home URL settings, a .htaccess rule gone wrong, or a session/cookie issue after an SSL change. Resetting the password from the database (via phpMyAdmin or WP-CLI) rules out the "forgot password" case quickly; if that doesn't fix it, the cause is usually one of the others.
SSL, HTTPS, or redirect loops
Redirect loops after adding or renewing SSL are usually a mismatch between what the server thinks the protocol is and what WordPress's Site URL setting says, or โ if the site sits behind Cloudflare or another proxy โ a mismatch between Cloudflare's SSL mode and the origin server's certificate. I run my own infrastructure behind a Cloudflare Tunnel for self-hosted projects, so this is territory I'm comfortable working through from the server side, not just inside the WordPress dashboard.
DNS and Cloudflare-related issues
If a domain was recently pointed at new hosting, or Cloudflare's proxy status changed, symptoms can include intermittent loading, SSL warnings, or the site pointing at an old server. DNS propagation, the proxy on/off toggle, and SSL mode (Flexible/Full/Full Strict) are the first three things worth checking.
Caching showing you an old version of the site
If changes aren't showing up, or an old error keeps reappearing after you thought you fixed it, there's usually a caching layer still serving the old version โ page cache, object cache, a CDN, or even your own browser. Clear each layer individually rather than assuming one "clear cache" button gets all of them.
Database connection errors
"Error establishing a database connection" after a migration or hosting change is most often wrong database credentials in wp-config.php, though it can also be a genuinely overloaded or down database server. Double-checking the DB name, username, password, and host against what the current hosting environment actually uses solves this more often than not.
If the problem is specifically WooCommerce checkout
A checkout that stops accepting orders is different enough from a general site outage that it deserves its own troubleshooting path โ payment gateways, webhooks, and sandbox-versus-live credentials each behave differently from a plugin conflict. I've written that up separately in WooCommerce checkout and payment troubleshooting.
If it looks like more than a bug
Sudden unfamiliar redirects, new admin users you didn't create, or spam pages showing up in Google are a different situation from a broken update โ that's worth reading what to check first if a WordPress site looks hacked before assuming it's an ordinary bug.
Before you change anything: back up first
Whatever the cause turns out to be, take a full backup โ files and database โ before making changes. If a fix makes things worse, you want a way back to where you started.
FAQ
Can every WordPress problem be fixed without losing data?
Do I need hosting access to fix this, or just wp-admin?
How long does diagnosing a broken WordPress site usually take?
Related expertise
- First checks after a WordPress hack
- WooCommerce checkout troubleshooting
- WordPress and WooCommerce speed optimization
- Freelance WordPress and Laravel services
If you already have a WordPress site and something has stopped working, you can send me the URL and describe what changed. I can take a first look and tell you honestly whether it looks like a WordPress, plugin, hosting, SSL, or configuration issue โ see my freelance developer page or get in touch.
About the author
Ashiq S is a Full Stack Developer based in Dubai, working with Laravel, PHP, WordPress, WooCommerce, APIs, Docker and Linux. See his projects and experience. Hiring? See freelance Laravel development or full-stack roles in the UAE.