The Complete Guide to WordPress Errors

If your WordPress site is showing a cryptic error message, loading a blank white page, or refusing to let you log in β you are not alone. WordPress errors are one of the most frustrating experiences a site owner can face, especially when you have no idea what went wrong or why.
This guide breaks down every major WordPress error in plain English β no coding background required. You will learn what causes each one, what you can try on your own, and when it makes more sense to hand things over to a professional.
Why WordPress Sites Break in the First Place
WordPress is built on layers: PHP code, a MySQL database, a web server, dozens of plugins, a theme, and your hosting environment. Every one of those layers can conflict with the others. A single plugin update, a change in your hosting plan, or even a spike in traffic can set off a chain reaction that brings your site down.
That is not a flaw β it is simply the nature of a flexible, open-source platform used by over 40% of all websites. The good news is that most WordPress errors are well-documented and fixable. The bad news is that fixing them without experience often means making things worse.
The White Screen of Death (WSOD)
What it looks like
You visit your website β or your WordPress admin dashboard β and see nothing. A completely blank white page. No error message, no explanation. Just white.
What causes it
The White Screen of Death is almost always caused by a PHP error that WordPress suppresses instead of displaying. Common culprits include:
- A newly installed or updated plugin that contains a code error
- A theme that is incompatible with your version of WordPress or PHP
- Running out of PHP memory β your site tries to do more than your server allows
- A syntax error introduced by editing a theme or plugin file directly
What you can try
If you still have access to your WordPress admin, go to Plugins β Installed Plugins and deactivate all plugins. If the white screen disappears, you have a plugin conflict. Reactivate them one by one to find the culprit.
If you cannot access the admin at all, you would need to connect to your site via FTP or File Manager in your hosting control panel and rename the plugins folder to temporarily disable all plugins. This is where things get technical fast.
You can also try increasing PHP memory by adding this line to your wp-config.php file:
define('WP_MEMORY_LIMIT', '256M');
When to call a professional
If deactivating plugins does not help, or if you cannot access FTP, or if the error returns after you think you have fixed it β this is a good time to get help. A developer can enable WP_DEBUG mode, read the actual error logs, and pinpoint the exact line of code that is failing. What takes a site owner hours of guessing can take an experienced developer minutes.
Error Establishing a Database Connection
What it looks like
Your site displays: “Error establishing a database connection.” Sometimes the admin at yourdomain.com/wp-admin shows a different but related message: “One or more database tables are unavailable.”
What causes it
Your WordPress site constantly communicates with a MySQL database that stores all your content β posts, pages, settings, users, everything. This error means that communication has broken down. Possible reasons:
- The database credentials in your
wp-config.phpfile are wrong (wrong username, password, database name, or host) - Your MySQL server is down β either crashed or temporarily restarted by your host
- Your database has become corrupted, which can happen after a crash, an interrupted update, or a server issue
- You have exceeded your hosting plan’s database limits
What you can try
Log in to your hosting control panel and check if MySQL is listed as running. Some hosts show server status in a dashboard. If everything looks fine on the hosting side, the credentials in wp-config.php might be the problem β but editing this file incorrectly will make things worse.
WordPress has a built-in database repair tool. You can activate it by adding this line to wp-config.php:
define('WP_ALLOW_REPAIR', true);
Then visit yourdomain.com/wp-admin/maint/repair.php. Remove that line from wp-config.php once you are done.
When to call a professional
Database errors are among the riskier WordPress problems to fix without experience. An incorrect query or a botched repair attempt can result in permanent data loss. If you do not have a recent backup β and especially if your database appears corrupted β a professional should handle this.
HTTP 500 Internal Server Error
What it looks like
Your site (or just certain pages) returns a “500 Internal Server Error” message. This is a generic server-level error with no specific explanation.
What causes it
A 500 error means something went wrong on the server but the server is not telling you what. On WordPress sites, the most common causes are:
- A corrupted
.htaccessfile β a configuration file that controls how your server handles requests - A plugin or theme conflict similar to those that cause the White Screen of Death
- PHP memory limits being exceeded
- Corrupted WordPress core files
- A bad server configuration introduced by your host or by a plugin that modifies server settings
What you can try
The most common fix is regenerating the .htaccess file. Log in to your WordPress admin and go to Settings β Permalinks and simply click Save Changes. This regenerates the .htaccess file without you having to touch it directly.
You can also temporarily rename the .htaccess file to something like .htaccess_old using FTP or File Manager. If the 500 error goes away, the old file was the problem.
When to call a professional
If the .htaccess fix does not work, or if the error is intermittent (appears sometimes but not always), the cause is likely deeper β a server misconfiguration, corrupted core files, or a PHP error requiring log analysis.
404 Page Not Found
What it looks like
Visitors clicking a link to a post or page on your site see a “404 – Page Not Found” error. Your homepage may work fine, but individual posts, product pages, or category archives return a 404.
What causes it
A 404 error means the URL the visitor is requesting does not match anything your server knows about. On WordPress, this almost always comes down to permalink settings that are not configured correctly or that got reset somehow.
Other causes include:
- A plugin that modifies URL structure was deactivated or changed
- You migrated your site to a new server and the new server does not have the correct rewrite rules
- A post or page was accidentally deleted
- A WooCommerce product or custom post type URL structure is misconfigured
What you can try
Go to Settings β Permalinks and click Save Changes without changing anything. This is the single most effective fix for 404 errors on WordPress and costs nothing.
If you recently moved your site to a new host or changed your domain, the .htaccess file may be missing the correct rewrite rules entirely.
When to call a professional
If regenerating permalinks does not work, the problem is usually in your server configuration β specifically whether mod_rewrite is enabled on your Apache server, or whether your Nginx server has the correct configuration. This varies by host and requires server-level access to fix.
403 Forbidden
What it looks like
You try to visit a page, access your admin, or upload a file, and you see “403 Forbidden.” You are being blocked from accessing something on your own site.
What causes it
This error means the server understands what you are requesting but is refusing to allow it. Common causes on WordPress include:
- Incorrect file permissions β files or folders on your server have the wrong permission settings, causing the server to refuse access
- A security plugin (such as Wordfence or iThemes Security) that has blocked your IP address or flagged your request as suspicious
- A bad
.htaccessrule that is blocking access to certain resources - Your hosting firewall detecting something that looks like an attack
What you can try
If you have been locked out of your admin by a security plugin, your best first step is to contact your host and ask them to whitelist your IP address, or to temporarily disable the security plugin via your hosting control panel’s file manager.
For file permission issues, WordPress files should generally be set to 644 and directories to 755. Some hosts let you fix this through their control panel.
When to call a professional
Security-related 403 errors can be complex. If a security plugin has gone into lockdown mode, or if your host’s firewall is blocking legitimate requests, you need someone who understands both WordPress security configuration and server-level access controls.
503 Service Unavailable
What it looks like
Visitors see a “503 Service Unavailable” error. Unlike most other errors, this one is often temporary.
What causes it
A 503 means the server is unable to handle requests right now β usually because it is overloaded or undergoing maintenance. On WordPress sites, this can happen when:
- Your site gets a traffic spike that exceeds your hosting plan’s resources
- A plugin is running a heavy background process (such as a full-site backup or an import)
- WordPress is in maintenance mode due to an interrupted update
- Your hosting server is genuinely having problems
What you can try
If WordPress gets stuck in maintenance mode after a failed update, look for a file called .maintenance in your site’s root folder and delete it. This is a common, easy fix.
If the error is intermittent and disappears after a few minutes, it was likely a temporary server resource spike.
When to call a professional
If the 503 error is persistent and your host says nothing is wrong on their end, your site may have underlying performance problems β too many plugins, unoptimized database queries, or inadequate hosting for your traffic level. A performance audit can identify the root cause.
504 Gateway Timeout
What it looks like
The site shows “504 Gateway Timeout.” Similar to 503, but with a slightly different meaning.
What causes it
A 504 error means one server (usually a reverse proxy or CDN in front of your actual hosting server) waited too long for a response from your WordPress server. Your server is too slow to respond within the allowed time limit.
Common causes:
- A plugin performing a slow operation (importing data, sending bulk emails, running a crawl)
- An unoptimized database with millions of rows that take too long to query
- External API calls your site makes (to payment gateways, social media APIs, etc.) that are timing out
- Shared hosting that is overloaded
What you can try
If you triggered this by doing something specific (like running an import or a bulk action), wait and try again. Large operations should ideally be broken into smaller batches.
When to call a professional
Chronic 504 errors usually signal a deeper performance problem. A developer can profile your site’s database queries, identify slow plugins, and either optimize your setup or recommend a hosting plan that fits your actual needs. This is closely related to Core Web Vitals optimization β a slow site hurts both user experience and search rankings.
WordPress Login Page Keeps Refreshing (Redirect Loop)
What it looks like
You go to your WordPress login page, enter your credentials, and instead of logging in, you are just redirected back to the login page. No error message, just an endless loop.
What causes it
This is almost always a cookie or session problem, often triggered by:
- A mismatch between your site URL and WordPress URL settings (both found under Settings β General)
- A site that was recently migrated to a new domain but the database still contains the old URL
- A caching plugin or server-level cache that is serving a stale version of the login page
- Browser cookies that are corrupted or blocked by browser settings
What you can try
First, clear your browser cookies for your domain and try again. If that does not work, try a different browser entirely.
Check your site URL settings. Go to wp-login.php?action=register to check if you can access any part of the admin. If your URLs are misconfigured, you may need to edit wp-config.php to force the correct URLs:
define('WP_HOME', 'https://yourdomain.com');
define('WP_SITEURL', 'https://yourdomain.com');
When to call a professional
If your site was recently migrated and all your URLs still point to the old domain in the database, you need a developer to run a proper search-and-replace on the database to update every stored URL. Doing this incorrectly can break serialized data in your database and corrupt settings.
Too Many Redirects
What it looks like
Your browser shows “This page isn’t working β yourdomain.com redirected you too many times” or ERR_TOO_MANY_REDIRECTS.
What causes it
Your site is redirecting visitors in a loop β sending them from URL A to URL B, which sends them back to URL A, which sends them back to URL B, endlessly.
Common causes on WordPress include:
- Forcing HTTPS when your SSL certificate is not installed or not working correctly
- A misconfigured CDN (such as Cloudflare) that redirects to HTTPS while your host also redirects to HTTPS, creating a loop
- A plugin conflict between a redirect plugin, an SSL plugin, and your hosting’s redirect rules
- The same site URL / WordPress URL mismatch mentioned in the login loop section
What you can try
Clear your browser cache and cookies first. Then try visiting the site in an incognito window.
If you recently enabled HTTPS or changed your domain settings, check that the WP_HOME and WP_SITEURL values in wp-config.php include https:// and match your actual domain exactly.
If you are using Cloudflare, make sure the SSL setting in your Cloudflare dashboard is set to Full (Strict) rather than Flexible, which commonly causes this loop.
When to call a professional
Redirect loops involving SSL, CDN configuration, and WordPress settings at the same time require someone who can see the full picture β what your hosting is doing, what your CDN is doing, and what WordPress is configured to do. Guessing your way through it can result in your site becoming completely inaccessible.
The WordPress Sidebar Is Below the Content
What it looks like
Your website layout looks broken β the sidebar appears below the main content instead of beside it, columns are stacked, or elements are in the wrong place.
What causes it
This is a CSS or HTML layout error, not a server error. It is almost always caused by:
- A plugin that adds content to your pages without closing its HTML tags properly, which breaks the layout of everything that comes after it
- A theme update that changed the CSS structure and is now incompatible with your customizations
- A custom code snippet added to your theme’s functions.php file or via a plugin that outputs malformed HTML
What you can try
The browser’s built-in developer tools (press F12 in Chrome or Firefox) can help identify unclosed HTML tags. Look at the HTML source of your page and check for unclosed <div> tags.
Deactivate plugins one by one to find the one causing the layout break.
When to call a professional
If the broken layout appears across your whole site after a theme update, a developer can audit the HTML output of your theme, identify where the structure is being broken, and apply a targeted fix β whether that means updating the theme safely, rolling back to a previous version, or patching the specific output issue.
Maximum Upload File Size Exceeded
What it looks like
When you try to upload an image, video, or plugin file through the WordPress Media Library or admin, you see a message like: “The uploaded file exceeds the upload_max_filesize directive in php.ini” or simply “File exceeds the maximum upload size for this site.”
What causes it
Your PHP configuration limits how large a file can be uploaded in a single request. WordPress itself is not imposing this limit β your PHP environment is, based on settings in php.ini.
The relevant PHP settings are upload_max_filesize and post_max_size.
What you can try
Many hosts let you adjust these values from your hosting control panel. Look for a PHP configuration or PHP settings option in cPanel or your host’s dashboard.
You can also try adding these lines to your .htaccess file:
php_value upload_max_filesize 64M
php_value post_max_size 64M
Note that this only works if your host uses Apache and allows PHP directives in .htaccess. On Nginx or managed hosting, this approach does not work.
When to call a professional
If you need larger uploads than your current host allows and cannot change the limits yourself, a developer can help you configure this at the server level β or advise on whether your hosting plan is appropriate for your needs. For very large media files, the right solution is usually a cloud storage integration (Amazon S3, Cloudflare R2) rather than increasing upload limits.
Briefly Unavailable for Scheduled Maintenance
What it looks like
Your site displays: “Briefly unavailable for scheduled maintenance. Check back in a minute.” And the minute never ends.
What causes it
When WordPress updates itself, themes, or plugins, it creates a .maintenance file in your site’s root directory and temporarily shows this message to visitors. If the update process is interrupted β by a server timeout, a failed file operation, or a browser tab being closed mid-update β WordPress never removes the .maintenance file, and the site stays locked in maintenance mode indefinitely.
What you can try
This one has a very simple fix. Connect to your site via FTP or File Manager in your hosting control panel, navigate to the root directory of your WordPress installation, and delete the file called .maintenance. Note that this file starts with a dot, so you may need to enable “show hidden files” in your file manager.
Your site will immediately come back online.
When to call a professional
If the maintenance mode was triggered by a failed update, there may be partially updated files that need to be restored. In that case, a developer should verify the integrity of your WordPress installation before you continue.
WordPress Memory Exhausted Error
What it looks like
You see a message like: “Fatal error: Allowed memory size of 33554432 bytes exhausted” β usually followed by a file path and line number that means nothing to a non-developer.
What causes it
Each PHP process on your server is allocated a maximum amount of RAM. When WordPress (or a plugin) tries to use more than that limit, PHP throws a fatal error and stops executing.
Modern WordPress sites with WooCommerce, page builders, SEO plugins, and caching plugins can legitimately need 256MB or more.
What you can try
Add this line to your wp-config.php file to increase the PHP memory limit WordPress requests from the server:
define('WP_MEMORY_LIMIT', '256M');
Note that this only works up to the limit your hosting account actually allows. If your host caps PHP memory at 64MB and you request 256MB, nothing will change.
When to call a professional
If increasing the memory limit does not help, or if you keep hitting the limit no matter how high you set it, there is likely a specific plugin or theme function causing a memory leak. Profiling this requires developer tools and is not something that can be guessed at from the admin panel.
Mixed Content Warnings (HTTPS Issues)
What it looks like
Your site loads over HTTPS (you have the padlock in the browser) but parts of the page look broken, images do not load, or your browser shows a warning that the page contains insecure content. In the developer console you see “Mixed Content” warnings.
What causes it
Your site has HTTPS enabled, but some resources β images, scripts, stylesheets, or iframes β are still being loaded over HTTP. Browsers block these mixed-content resources to protect users, which is why they do not appear.
This commonly happens after migrating a site to HTTPS. The content in your WordPress database (your post content, widget settings, plugin settings) still contains hard-coded http:// URLs pointing to your old domain or old protocol.
What you can try
Install and run the Better Search Replace plugin to search your database for http://yourdomain.com and replace it with https://yourdomain.com. This covers most cases.
Also check your Settings β General in WordPress and make sure both the WordPress Address and Site Address fields use https://.
When to call a professional
If your site was built with certain page builders or contains complex serialized data in the database, a simple search-and-replace can corrupt data if done incorrectly. A developer will use a proper serialization-aware replacement tool (such as WP-CLI’s search-replace with the --precise flag) that handles these edge cases safely.
Specific Plugin Conflict Errors
What they look like
These vary widely β a specific section of your site stops working, a checkout page breaks, a form stops submitting, the admin shows a JavaScript error in the console, or you see a PHP notice at the top of your pages.
What causes them
Two or more plugins (or a plugin and your theme) are trying to do conflicting things. They might be loading different versions of the same JavaScript library, or one plugin’s code is interfering with another plugin’s hooks in WordPress.
What you can try
The standard debugging process is:
- Deactivate all plugins
- Check if the problem is gone
- Reactivate them one at a time until the problem returns
- The last plugin you reactivated is likely the culprit
Then test whether you need both plugins. Sometimes the same functionality can be handled by one plugin instead of two.
When to call a professional
Plugin conflicts can be subtle. Sometimes the conflict only manifests under specific conditions β on certain page types, for logged-in users only, or when specific settings are active. Diagnosing these requires debugging tools, error logs, and knowledge of how WordPress hooks and filters work. When a conflict is causing checkout failures or payment processing issues on a WooCommerce store, every hour of lost revenue matters.
WooCommerce Errors
WooCommerce introduces its own layer of complexity and a distinct set of errors that regular WordPress site owners encounter:
Payment gateway errors β usually caused by incorrect API keys, SSL problems, or a plugin conflict interfering with the checkout JavaScript.
Order status stuck on “Pending Payment” β often caused by payment gateway webhooks not reaching your server, which can happen due to security plugins, server firewalls, or incorrect webhook URLs in your gateway settings.
Product images not showing β can be a file permission issue, an SSL mixed content problem, or a CDN caching stale images.
Checkout page redirecting incorrectly β often caused by a permalink conflict, a caching plugin that does not exclude WooCommerce pages, or a misconfigured cart/checkout page URL in WooCommerce settings.
All of these require careful diagnosis in a live store environment where making things worse directly costs you sales.
How to Prevent WordPress Errors Before They Happen
Most WordPress errors are preventable. A disciplined maintenance routine dramatically reduces the chance of your site breaking unexpectedly.
Keep WordPress, themes, and plugins updated. The majority of plugin conflicts and security vulnerabilities stem from outdated software. Updates should be tested β ideally on a staging environment first β before being applied to a live site.
Keep regular backups. A backup taken before every update is your safety net. If something breaks, you can restore to the previous state in minutes rather than hours. Use a backup plugin that stores copies off-site (not just on your own server), such as UpdraftPlus with cloud storage configured.
Use a staging environment. A staging site is a private copy of your live site where you can test updates, new plugins, and theme changes without any risk. Most managed WordPress hosts provide staging environments. If yours does not, that is worth considering when you next evaluate your hosting.
Monitor your site. Tools like UptimeRobot send you an email or text the moment your site goes down. Without monitoring, you might not know your site has been down for six hours until a customer tells you.
Minimize your plugin count. Every plugin is a potential source of conflicts, security vulnerabilities, and performance problems. A site with 40 active plugins is significantly more fragile than one with 12. Audit your plugins regularly and remove anything you do not actively use.
Use professional-grade hosting. Many errors β 503s, 504s, memory exhausted errors β are symptoms of inadequate hosting rather than WordPress problems. If your site runs on shared hosting with no room to grow, you will keep hitting resource limits.
When to Fix It Yourself vs. When to Get Help
Not every WordPress error requires a developer. Here is a simple framework for deciding:
Fix it yourself if:
- The fix is documented and reversible (like regenerating permalinks or clearing a cache)
- You have a working backup from before the problem started
- The error only affects non-critical parts of your site
- Your hosting provider’s support team can help you
Get professional help if:
- Your site is completely down and you cannot identify the cause
- The error involves the database (corruption, connection failures)
- Your WooCommerce checkout or payment processing is broken
- You have already tried two or three fixes and the problem persists
- You do not have a backup
- You need the problem solved in the next few hours, not the next few days
The cost of a professional fix is almost always less than the cost of hours of guessing β and far less than the cost of a lost backup or a damaged database.
A Note on Error Logs
Every WordPress error generates a log entry. These logs β stored in a file called debug.log in your /wp-content/ directory when debugging is enabled β are the single most valuable tool for diagnosing what went wrong. Every error message in this guide that says “the server is not telling you what went wrong” is wrong only in the sense that the server is telling you β just not through the browser. The answer is in the log.
Enabling error logging requires adding two lines to wp-config.php:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Once enabled, errors are written to /wp-content/debug.log and you can view the file to see exactly what happened. Disable debug mode once you have found the problem by setting WP_DEBUG back to false β leaving it enabled on a live site can expose sensitive information.
Summary: Quick Reference for Common WordPress Errors
| Error | Most Common Cause | First Thing to Try |
|---|---|---|
| White Screen of Death | Plugin or theme conflict | Deactivate all plugins |
| Error Establishing Database Connection | Wrong credentials or MySQL down | Check hosting control panel, run repair tool |
| 500 Internal Server Error | Corrupted .htaccess | Re-save Permalinks |
| 404 Not Found | Permalink misconfiguration | Re-save Permalinks |
| 403 Forbidden | File permissions or security plugin | Contact host or check plugin settings |
| 503 Service Unavailable | Server overload or maintenance mode | Delete .maintenance file; check server status |
| 504 Gateway Timeout | Slow database or plugin | Optimize performance; check slow queries |
| Login Redirect Loop | Site URL mismatch | Clear cookies; check WP_HOME / WP_SITEURL |
| Too Many Redirects | SSL or CDN misconfiguration | Check Cloudflare SSL settings |
| Memory Exhausted | PHP memory limit too low | Add WP_MEMORY_LIMIT to wp-config.php |
| Mixed Content | HTTP URLs in database | Run search-replace; update site URLs |
| Maintenance Mode Stuck | Interrupted update | Delete .maintenance file from root directory |
| Max Upload Size | PHP configuration limit | Adjust via hosting control panel |
Getting Professional Help
If you are dealing with a WordPress error right now, or if your site breaks regularly and you are spending hours each month troubleshooting rather than running your business β there is a better way.
Professional WordPress support covers the full range of issues described in this guide: bug fixes, plugin conflicts, database errors, performance problems, and security incidents. A proper WordPress maintenance plan keeps your site updated, backed up, and monitored so most of these errors never happen in the first place.
For sites that break regularly or load too slowly, a speed optimization audit often reveals that a handful of fixable issues β unoptimized images, bloated plugins, no caching, a slow database β are responsible for most of the problems.
If you have a specific bug or error that needs fixing today, WordPress bug fixing is available as a standalone service with fast turnaround.
And if you have reached the point where WordPress itself feels like the problem β where every update is a risk, performance is a constant struggle, and the maintenance overhead outweighs the platform’s benefits β it might be worth exploring a migration to Next.js, a modern architecture that eliminates most of the error categories described in this article by design.
Whatever your situation, the right solution starts with understanding the problem clearly β which is exactly what this guide was built to help you do.
Posted in: guides
Related Posts

guides
How Hosting Affects WordPress Speed
You installed a caching plugin. You compressed your images. You even paid someone to βoptimizeβ your site. But it still ...

guides
How to Speed Up Your WordPress Site Without Plugins
If your WordPress site feels slow, your first instinct is probably to search for βbest speed pluginβ and install whateve...

guides
How to Enable WordPress Debug Mode Safely
Something is broken on your WordPress site. Maybe the page goes blank. Maybe a plugin stops working after an update. May...