Common WordPress errors: how to fix them (2026)

A guide to the most common WordPress errors and how to fix each one: white screen, 500 error, database connection, 404 and more. Technical steps by Pixelize.

Most WordPress errors come from a plugin conflict, a PHP memory limit, wrong file permissions or a corrupted file (.htaccess, wp-config.php). Before fixing anything, take a backup, enable WP_DEBUG and identify the exact message.

A site that’s down is money on hold. And the worst WordPress errors rarely show the cause — just a white screen, a bare 500, or an “error establishing a database connection”. This guide is the map: how to diagnose any error, the direct fix for the most common ones, and the honest sign of when the problem isn’t you — it’s the server.

Before you touch anything: 3 steps that save the site

Rushing breaks sites. Before any fix:

  1. Take a backup of files and database. Always. It’s the difference between a scare and a loss.
  2. Enable debug mode. In wp-config.php, before /* That's all, stop editing! */:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );      // logs to wp-content/debug.log
define( 'WP_DEBUG_DISPLAY', false ); // don't expose the error to visitors
  1. Test on staging, not production. If your host offers a test environment, reproduce the error there first.

How to diagnose any WordPress error

Before memorizing fixes, follow the flow. It isolates the cause in minutes:

  1. Does the site load? No → fatal error (white, 500, database). Yes, but broken → CSS/JS or a plugin.
  2. Does wp-admin load? If the dashboard works and only the front-end breaks, the problem is a theme/plugin or .htaccess.
  3. What’s the message? Check debug.log or the server error log. No message (white screen) → almost always a fatal PHP error or memory.
  4. Isolate: deactivate all plugins (rename wp-content/plugins). Back up? Reactivate them one by one until you find the culprit. Not back? Switch to a default theme (Twenty Twenty-*).
  5. Still broken with everything off? The problem is the server/host — jump to the final section.

Key tool: WP-CLI handles most of this from the command line (wp plugin deactivate --all, wp theme activate), without depending on the dashboard.

Screen and execution errors

White screen of death (WSOD)

Symptom: a fully white page, no message, front-end and/or admin. Root cause: a fatal PHP error — almost always a plugin conflict, a broken theme or exhausted memory. Quick fix: on WordPress 5.2+, check the admin email — recovery mode sends a link. No email? Enable WP_DEBUG above and reload to see the real error. If it persists, rename wp-content/plugins to plugins_old via FTP; if the site returns, a plugin is the culprit — reactivate one by one.

500 Internal Server Error

Symptom: a generic “500 Internal Server Error”, no detail. Root cause: a corrupted .htaccess, blown PHP memory, an incompatible PHP version or a plugin causing a server-level error. Quick fix: rename the root .htaccess to .htaccess_old and reload. Back? Go to Settings → Permalinks and click Save to generate a clean .htaccess. If not, raise the memory (below) and deactivate plugins.

Exhausted PHP memory

Symptom: “Allowed memory size of X bytes exhausted” or a white screen on heavy pages. Root cause: the site exceeded the PHP memory limit. Quick fix: in wp-config.php, raise the limit:

define( 'WP_MEMORY_LIMIT', '256M' );

If that doesn’t help, the real limit is on the server (php.ini / host) — that’s where to escalate.

Database and connection errors

Error establishing a database connection

Symptom: “Error establishing a database connection” — site and admin fully down. Root cause: wrong credentials in wp-config.php, an overloaded/down database or corrupted tables. Quick fix: confirm that DB_NAME, DB_USER, DB_PASSWORD and DB_HOST in wp-config.php exactly match what the host set up. Correct and still failing? The database may be down (contact the host) or corrupted — repair it with:

define( 'WP_ALLOW_REPAIR', true );

Then visit yourdomain.com/wp-admin/maint/repair.php and remove the line when done.

HTTP errors (403 / 404 / 429 / 502 / 504)

404 on all posts (but the home loads)

Symptom: the home works, every post/page returns 404. Root cause: a corrupted permalink structure or an .htaccess missing the rewrite rules. Quick fix: go to Settings → Permalinks and click Save Changes (without changing anything) — this regenerates the rules. If it persists, confirm the .htaccess has the # BEGIN WordPress block and that mod_rewrite is active.

403 Forbidden

Symptom: “403 Forbidden — you don’t have permission to access”. Root cause: wrong file/folder permissions, a restrictive .htaccess or a security plugin blocking. Quick fix: confirm permissions — folders 755, files 644. Rename .htaccess to test. If a security plugin (firewall) is blocking your IP, deactivate it via FTP.

Content and operation errors

Stuck maintenance mode

Symptom: “Briefly unavailable for scheduled maintenance” that never clears. Root cause: an update was interrupted and left the .maintenance file in the root. Quick fix: connect via FTP, delete the .maintenance file in the site root. Reload — the site comes back instantly.

Scheduled posts miss their schedule

Symptom: scheduled posts stay stuck as “scheduled” and never publish. Root cause: wp-cron.php isn’t firing — common on low-traffic sites or with cron disabled. Quick fix: disable the virtual cron and use a real server cron. In wp-config.php:

define( 'DISABLE_WP_CRON', true );

Then set up a server cron job calling wp-cron.php every 5–15 minutes.

Images won’t load or appear broken

Symptom: images disappear, turn into a broken icon, especially after a migration. Root cause: old URLs in the database (after a domain change) or wrong permissions on wp-content/uploads. Quick fix: confirm 755 permissions on uploads. After a migration, update the URLs in the database with WP-CLI:

wp search-replace 'https://old-domain.com' 'https://new-domain.com' --skip-columns=guid

Security: when an “error” is a hack

Not every “error” is a bug. A redirect to a strange site, an admin you didn’t create, Japanese spam on Google or a “this site may be hacked” warning in Chrome are not configuration faults — they are malware signs. If that’s the case, the flow is different: diagnosis and removal. See the dedicated guide: how to identify malware in WordPress.

When it’s not you (it’s the host/server)

The honest point tutorials avoid. If the error persists with all plugins deactivated, a default theme active and .htaccess regenerated, the problem isn’t in your WordPress. It’s probably:

  • An incompatible PHP version (too old or too new for a plugin)
  • Resource limits of the hosting plan exceeded (memory, CPU, processes)
  • A database that’s down or overloaded on the server
  • Server configuration (php.ini, upload limits, timeouts)

How to confirm: the server error log (in the host panel) shows the low-level error. With it in hand, the hosting support fixes it fast — or it’s time to consider better hosting. When the diagnosis requires server access, PHP version and fine configuration, that’s the kind of work Pixelize does through its WordPress Specialist service.

Frequently asked questions

What are the most common WordPress errors?

The most frequent are the white screen of death, the 500 Internal Server Error, the error establishing a database connection, the 404 on all posts (permalinks), the stuck maintenance mode and exhausted PHP memory. Most come from a plugin conflict, PHP limits, permissions or a corrupted file.

How do I know which error my WordPress has?

Enable WP_DEBUG in wp-config.php to log errors to wp-content/debug.log, or check the server error log in your hosting panel. The exact message (or its absence, as in the white screen) shows whether the problem is PHP, database, server or a permission.

How do I fix an error without access to wp-admin?

Use FTP/SFTP or your host's file manager. Rename the wp-content/plugins folder to deactivate every plugin at once, rename .htaccess to rule out corruption, or edit wp-config.php to raise memory and enable debug. WP-CLI, if available, does it all from the command line.

Is the error from WordPress or the hosting?

If the error persists with all plugins deactivated, a default theme active and .htaccess regenerated, it is probably the server: PHP version, resource limits, a database that is down or the host configuration. The server error log confirms it and the hosting support is the path.

How do I prevent WordPress errors?

Keep core, plugins and themes updated, use a staging environment to test changes, run automatic backups, limit the number of plugins and monitor Site Health. Most critical errors come from untested updates and too many plugins.