Every WordPress site owner has been there. You load your website and instead of your beautiful homepage, you see a blank white screen, a cryptic error message, or a page that refuses to load. Your stomach drops. Is my site hacked? Did I break everything?
Take a deep breath. These common WordPress errors look scary, but they are almost always fixable — often in just a few minutes. WordPress powers over 40% of all websites on the internet, and these errors have been encountered and solved millions of times before you.
In this guide, we walk through the 10 most common WordPress errors, explain exactly what causes each one, and give you clear step-by-step instructions to fix them. Whether you are a complete beginner or a seasoned site owner, you will find practical solutions you can apply right away. We also note where screenshots would be helpful as visual reference points throughout your troubleshooting process.
1. White Screen of Death (WSoD)
The White Screen of Death is one of the most alarming WordPress errors because it gives you absolutely no information. You visit your site and see a completely blank white page — no error message, no clue about what went wrong. Sometimes it only affects the front end while the admin dashboard still works, and sometimes it locks you out entirely.
What Causes It
- A plugin conflict or a recently updated plugin that is incompatible with your WordPress version
- A theme that contains a fatal PHP error
- Exhausted PHP memory limit on your hosting server
- A corrupted WordPress core file
How to Fix It
Step 1: Increase the PHP memory limit. Connect to your site via FTP or your hosting file manager. Open the wp-config.php file and add this line before the “That’s all, stop editing” comment:
define('WP_MEMORY_LIMIT', '256M');
Step 2: Disable all plugins. If you cannot access the dashboard, use FTP to navigate to wp-content/ and rename the plugins folder to plugins_disabled. If your site loads after this, rename the folder back and reactivate plugins one at a time to find the culprit.
[Screenshot placeholder: FTP client showing the plugins folder being renamed]
Step 3: Switch to a default theme. Rename your active theme folder in wp-content/themes/ via FTP. WordPress will automatically fall back to a default theme like Twenty Twenty-Four. If you need guidance on choosing a theme that plays well with your setup, our guide on how to choose and install a WordPress theme safely covers what to look for.
Step 4: Enable debug mode. Add these lines to wp-config.php to see the actual error message:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
Check the wp-content/debug.log file for the specific error. The WordPress Developer Resources documentation on debugging in WordPress provides additional guidance on reading debug logs and tracing errors back to their source.
When to contact your host: If none of these steps restore your site, the issue may be server-side. Contact your hosting provider and ask them to check the PHP error logs for your account.
2. Error Establishing a Database Connection
This error means WordPress cannot connect to your MySQL database, which stores all your content, settings, users, and everything else that makes your site work. You will see a plain white page with the message “Error establishing a database connection.”
What Causes It
- Incorrect database credentials in
wp-config.php(often after a migration or hosting change) - A corrupted database that needs repair
- Your database server is down or overloaded
- Your hosting account has exceeded its resource limits
How to Fix It
Step 1: Verify your database credentials. Open wp-config.php and check these four values against your hosting control panel (cPanel, Plesk, or similar):
define('DB_NAME', 'your_database_name');
define('DB_USER', 'your_database_user');
define('DB_PASSWORD', 'your_password');
define('DB_HOST', 'localhost');
[Screenshot placeholder: cPanel showing database name and user details for comparison with wp-config.php values]
Step 2: Test the database connection. Create a temporary PHP file called testdb.php in your WordPress root with a simple mysqli connection test. If the test fails, the issue is definitely with your credentials or the database server itself.
Step 3: Repair the database. Add this line to wp-config.php:
define('WP_ALLOW_REPAIR', true);
Then visit yoursite.com/wp-admin/maint/repair.php and click “Repair Database.” Make sure to remove the line from wp-config.php when you are done, as the repair page does not require authentication.
When to contact your host: If your credentials are correct and the repair tool does not help, your database server may be down. This is a hosting-level issue that needs your provider immediate attention.
3. 500 Internal Server Error
The 500 Internal Server Error is frustratingly vague. It simply means “something went wrong on the server,” without telling you what. This error can affect your entire site, just the admin area, or only specific pages.
What Causes It
- A corrupted
.htaccessfile (the most common cause) - PHP memory limit being exceeded
- A broken plugin or theme that triggers a fatal error
- Corrupted WordPress core files
- Incorrect file permissions on server directories
How to Fix It
Step 1: Check and regenerate .htaccess. Use FTP to rename your .htaccess file to .htaccess_backup. Then try loading your site. If it works, go to Settings > Permalinks in your WordPress dashboard and click “Save Changes” to generate a fresh .htaccess file.
[Screenshot placeholder: WordPress Permalinks settings page with the Save Changes button highlighted]
Step 2: Increase the PHP memory limit using the same method described in the WSoD fix above. Add define('WP_MEMORY_LIMIT', '256M'); to wp-config.php.
Step 3: Deactivate plugins and switch themes following the same FTP-based approach from the WSoD section to isolate the conflict.
Step 4: Re-upload WordPress core files. Download a fresh copy of WordPress from wordpress.org, then upload the wp-admin and wp-includes folders via FTP, overwriting existing files. Do not touch wp-content — that folder contains your themes, plugins, and uploads.
When to contact your host: If re-uploading core files and resetting .htaccess does not fix it, ask your host to check the server error log. The 500 error is often logged with more detail in the server error_log file that you may not have direct access to.
4. 404 Not Found Error on Posts and Pages
Your site is working, your homepage loads fine, but when you click on any blog post or page you get a 404 Not Found error. This is almost always a permalink issue, not a sign that your content has been deleted.
What Causes It
- Corrupted or missing
.htaccessfile - A recent server migration that changed mod_rewrite settings
- A plugin that modified your permalink structure unexpectedly
- Hosting server does not have the Apache mod_rewrite module enabled
How to Fix It
Step 1: Regenerate permalinks. Go to Settings > Permalinks and click “Save Changes” without changing anything. This forces WordPress to rewrite the .htaccess rules for your chosen permalink structure.
Step 2: Manually check .htaccess. If the above does not work, verify that your .htaccess file contains the standard WordPress rewrite rules:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
[Screenshot placeholder: .htaccess file contents in a text editor showing the standard WordPress rewrite rules]
Step 3: Check file permissions. The .htaccess file should have 644 permissions. Your hosting file manager or an FTP client can show and change file permissions.
When to contact your host: If saving permalinks does not regenerate the file and you cannot write to .htaccess manually, ask your host to enable mod_rewrite and verify Apache is configured to allow .htaccess overrides with AllowOverride All.
5. Memory Exhausted Error
This error displays a message like: Fatal error: Allowed memory size of 67108864 bytes exhausted. It means a PHP script on your site tried to use more memory than your server allows. The number shown is the current limit in bytes (67108864 bytes equals 64 megabytes).
What Causes It
- A poorly coded plugin that consumes excessive memory during execution
- A large number of active plugins all running simultaneously on each page load
- Your hosting plan has a very low PHP memory limit (32MB or 64MB is common on budget hosting)
- Uploading or processing very large images or media files
How to Fix It
Step 1: Increase the WordPress memory limit. Add this to your wp-config.php file:
define('WP_MEMORY_LIMIT', '256M');
Step 2: Increase the PHP memory limit on the server. If your host allows it, edit your php.ini file or add this to .htaccess:
php_value memory_limit 256M
Step 3: Identify the memory-hungry plugin. Deactivate all plugins, then reactivate them one by one while monitoring memory usage. The Query Monitor plugin is an excellent free tool for tracking which plugins and database queries consume the most resources on your site.
When to contact your host: If you cannot increase the memory limit because your hosting plan caps it, you may need to upgrade to a plan with higher resource allocations. Budget shared hosting plans often have strict 64MB or 128MB memory limits that cannot be overridden.
6. Connection Timed Out Error
When your site takes too long to respond, the server gives up and displays an “ERR_CONNECTION_TIMED_OUT” error. This usually means your server is overwhelmed and cannot process requests quickly enough to meet the timeout threshold.
What Causes It
- Your site is on shared hosting and the server is overloaded by other sites on the same box
- A plugin is running a very heavy operation like large database imports or full-site backups
- Your site is receiving a sudden traffic spike or a DDoS attack
- A PHP script is stuck in an infinite loop consuming server resources
- DNS issues between your domain registrar and hosting server
How to Fix It
Step 1: Increase the PHP max execution time. Add this to your .htaccess file or php.ini:
php_value max_execution_time 300
Step 2: Deactivate all plugins using the FTP method to rule out plugin conflicts. Heavy plugins like backup utilities, page builders running background tasks, or social media auto-posters can trigger timeouts during their scheduled operations.
Step 3: Check if your site is under attack. Look at your hosting access logs for unusual traffic patterns — thousands of requests from the same IP addresses within minutes may indicate a brute force or DDoS attack. Install a security plugin like Wordfence or Sucuri to add rate limiting and firewall rules.
Step 4: Switch to a faster DNS provider. If the issue is DNS-related, consider switching to Cloudflare, which provides free DNS hosting along with caching and DDoS protection as additional benefits.
When to contact your host: Frequent timeout errors on shared hosting usually mean you have outgrown your plan. Ask your host about upgrading to VPS or managed WordPress hosting where you get dedicated resources instead of sharing with hundreds of other sites.
7. “Are You Sure You Want to Do This?” Nonce Error
This confusing message appears when WordPress security tokens (called nonces) cannot be verified. You might see it when trying to upload a plugin, install a theme, save settings, or perform other admin actions. It is WordPress protecting you from unauthorized actions, but sometimes it triggers incorrectly.
What Causes It
- A plugin or theme is not using WordPress nonce verification correctly in its forms
- Your browser session has expired after being idle for too long
- A plugin upload file exceeds the maximum upload size allowed by the server
- Corrupted WordPress core installation files
How to Fix It
Step 1: Clear your browser cookies and cache. Log out of WordPress completely, clear your browser data for your site domain, then log back in to generate fresh session tokens.
Step 2: Deactivate plugins. This error frequently comes from a plugin that is generating forms or processing actions without proper nonce verification. Use the FTP rename method on the plugins folder, then reactivate plugins one by one to find the offender.
[Screenshot placeholder: Browser clear cache dialog showing cookies and cached data options selected for the specific domain]
Step 3: Increase the upload limit. If the error appears specifically during file uploads, your file might be too large. Add these lines to .htaccess:
php_value upload_max_filesize 64M
php_value post_max_size 64M
Step 4: Replace core files. Download a fresh WordPress copy from wordpress.org and re-upload the wp-admin and wp-includes directories via FTP, leaving wp-content untouched.
When to contact your host: If this error persists after clearing cache and deactivating plugins, it may be related to server-level caching or a Web Application Firewall (WAF) that is stripping nonce tokens from form submissions.
8. Syntax Error
A syntax error displays a message like: Parse error: syntax error, unexpected token in /home/user/public_html/wp-content/themes/yourtheme/functions.php on line 23. The good news is this error tells you exactly which file and line number caused the problem, making it one of the easier errors to diagnose.
What Causes It
- A code snippet was pasted into functions.php with incorrect syntax
- A missing semicolon, bracket, or quotation mark in custom code you added
- Copying code from a blog or website that converted straight quotes to curly (smart) quotes
- Editing a theme or plugin file and accidentally deleting part of the existing code
How to Fix It
Step 1: Read the error message carefully. It tells you the exact file path and line number where PHP encountered the problem. Write these details down before proceeding.
Step 2: Access the file via FTP. Navigate to the file mentioned in the error and open it in a text editor. Go to the line number specified and look for obvious issues like missing semicolons, unclosed brackets, or curly quotes that should be straight quotes.
[Screenshot placeholder: Code editor showing a syntax error on a specific line with the missing semicolon highlighted in red]
Step 3: If you added code recently, remove it. If you just added a code snippet to functions.php or another file, undo that change entirely. Use FTP to either edit the file directly or restore the file from your most recent backup.
Step 4: Use a proper code editor going forward. For future edits, always use a code-aware text editor like VS Code, Sublime Text, or Notepad++ that highlights syntax errors in real time. Never paste PHP code directly from blog posts without first checking for curly quotes and other formatting artifacts.
| Common Syntax Mistakes | Example |
|---|---|
| Missing semicolon | echo "Hello" instead of echo "Hello"; |
| Curly quotes from blogs | Smart quotes in define statements |
| Unclosed bracket | Opening { without a matching } |
| Wrong PHP opening tag | Using short tags instead of full php tags |
When to contact your host: You typically do not need to contact your host for syntax errors since they are always caused by code changes. However, if you cannot access FTP to fix the file, your host support team can edit the file for you.
9. WordPress Stuck in Maintenance Mode
When WordPress runs updates, it creates a temporary .maintenance file in your root directory that displays a “Briefly unavailable for scheduled maintenance. Check back in a minute.” message. If an update gets interrupted, this file stays behind and your site remains stuck showing the maintenance notice to all visitors.
What Causes It
- A WordPress core, theme, or plugin update was interrupted (browser closed, server timeout, lost internet connection)
- Multiple plugins were being updated simultaneously and one of them failed partway through
- The server ran out of memory or hit its execution time limit during the update process
How to Fix It
Step 1: Delete the .maintenance file. Connect to your site via FTP or your hosting file manager. Navigate to the WordPress root directory (the same folder that contains wp-config.php) and delete the .maintenance file. Your site should load immediately after this single step.
[Screenshot placeholder: FTP file manager showing the .maintenance file in the WordPress root directory ready to be deleted]
Step 2: Complete the interrupted update. After deleting the file, go to your WordPress dashboard and check Dashboard > Updates to see if any updates are still pending. Run them again, but this time update plugins one at a time rather than selecting “Update All.”
Step 3: Prevent future occurrences. Always update plugins individually rather than in bulk. If you manage a large site with many plugins, consider using a staging environment to test updates before applying them to your live site. The WordPress documentation on upgrading recommends backing up your site before every update.
When to contact your host: If the .maintenance file keeps reappearing after deletion, it could indicate a stuck cron job or a partially completed core update. Your host can check the server processes and help clear any stuck operations.
10. Login Page Redirect Loop
You enter your correct username and password on the WordPress login page, hit “Log In,” and the page simply refreshes and shows the login form again. No error message, no access — just an endless redirect back to wp-login.php. This is particularly frustrating because you cannot even access the dashboard to troubleshoot from inside WordPress.
What Causes It
- WordPress Address URL and Site Address URL settings do not match (HTTP vs HTTPS, www vs non-www)
- Corrupted browser cookies for your domain preventing session persistence
- A plugin conflict interfering with the WordPress authentication and session handling
- Incorrect
wp-config.phpURL settings or hardcoded URLs that mismatch the actual domain
How to Fix It
Step 1: Clear your browser cookies. Specifically clear cookies only for your domain. This is the most common and fastest fix for login redirect loops because it forces your browser to create new session cookies.
Step 2: Verify your WordPress URL settings. Add these two lines to wp-config.php to force the correct URLs (replace with your actual domain):
define('WP_HOME', 'https://yoursite.com');
define('WP_SITEURL', 'https://yoursite.com');
Step 3: Deactivate plugins via FTP. Rename the plugins folder and try logging in again. Security plugins that modify the login URL and caching plugins that serve stale pages are the most common culprits for login redirect issues.
Step 4: Check for mixed content. Make sure your site is consistently using either HTTP or HTTPS, not a mix of both. If you recently installed an SSL certificate, update both the WordPress Address and Site Address to use https:// in your database or wp-config.php.
[Screenshot placeholder: wp-config.php file open in a text editor with WP_HOME and WP_SITEURL constants highlighted]
When to contact your host: If forcing URLs in wp-config.php does not resolve the loop, ask your host to check whether there is a server-level redirect (in the virtual host configuration or behind a load balancer) that conflicts with your WordPress URL settings.
Prevention Tips: Stop These Errors Before They Happen
Dealing with errors is part of running a WordPress site, but you can significantly reduce how often they happen by building a few good habits into your regular maintenance workflow.
Keep Regular Backups
This is the single most important thing you can do. Use a reliable backup plugin like UpdraftPlus or BlogVault to create automatic daily backups of both your files and database. Store backups off-site (Google Drive, Dropbox, or Amazon S3) so you always have a clean copy to restore from even if your server is compromised. The WordPress documentation on backups emphasizes that a complete backup must include both your files and your database.
Use a Staging Environment
Never test updates or code changes directly on your live site. Most managed WordPress hosts like Cloudways, SiteGround, and WP Engine offer one-click staging environments. Test all updates, plugin installations, and code changes on staging first. If something breaks there, your live site remains completely untouched and your visitors never see a problem.
Update Wisely
- Update plugins and themes one at a time, never all at once in a bulk operation
- Read the changelog before updating to check for known issues or breaking changes
- Wait 2-3 days after a major WordPress core release before updating, unless it is a security patch
- Check plugin compatibility with your current WordPress version before hitting the update button
Monitor Your Site
Set up uptime monitoring with a free tool like UptimeRobot or Jetpack Monitor. If your site goes down, you will be notified immediately by email or SMS instead of finding out from a frustrated visitor or customer. WordPress also has a built-in Site Health tool under Tools > Site Health in your dashboard that flags potential issues before they become full-blown errors. Make sure you have also configured your essential WordPress settings correctly to avoid common misconfigurations.
Choose Quality Hosting
Many of these errors are far less common on quality managed WordPress hosting. Budget shared hosting at two or three dollars a month often means overcrowded servers, low memory limits, and slow support response times. Investing in a reputable WordPress-optimized host can prevent the majority of server-related errors from ever occurring in the first place. Not sure where to start? Read our comparison of hosting options for WordPress to find the right fit for your needs.
Quick Reference Troubleshooting Checklist
| Error | First Thing to Try | Time to Fix |
|---|---|---|
| White Screen of Death | Increase PHP memory limit | 5-15 minutes |
| Database Connection Error | Check wp-config.php credentials | 5-10 minutes |
| 500 Internal Server Error | Rename .htaccess file | 5-10 minutes |
| 404 on Posts | Re-save permalinks | 2 minutes |
| Memory Exhausted | Increase WP_MEMORY_LIMIT | 5 minutes |
| Connection Timed Out | Deactivate heavy plugins | 10-20 minutes |
| Nonce Error | Clear browser cache and cookies | 5 minutes |
| Syntax Error | Undo the code change via FTP | 5-10 minutes |
| Stuck in Maintenance | Delete .maintenance file | 2 minutes |
| Login Redirect Loop | Clear cookies, force URLs in wp-config | 5-10 minutes |
You Can Fix This
Here is the reassuring truth that experienced WordPress developers know: every single one of these errors is normal. They are not a sign that WordPress is broken or that you did something catastrophically wrong. They are part of running a dynamic, database-driven website, and they all have clear, well-documented solutions that have been tested by millions of site owners before you.
The key is to stay calm, follow the troubleshooting steps methodically, and always have a recent backup you can restore from if needed. Bookmark this guide so you can reference it quickly the next time an unexpected error appears on your screen. With experience, you will start recognizing these errors instantly and fixing them almost on autopilot.
For deeper exploration of WordPress troubleshooting, the WordPress Advanced Administration Handbook is the definitive resource maintained by the WordPress community and updated with every major release. And remember, your hosting provider support team has seen all of these errors thousands of times. Never hesitate to reach out to them when the self-service steps do not resolve the problem.
What WordPress error have you encountered most often? And more importantly, which one took you the longest to figure out the first time? Share your experience in the comments below — every troubleshooting story helps the whole community learn faster.
Beginner WordPress Tips White Screen of Death WordPress Error Fix WordPress Errors WordPress Troubleshooting
Last modified: March 11, 2026








