Originally published: May 2, 2025 · Last reviewed and updated: October 2026
Most WordPress problems come from a small set of causes: a plugin or theme conflict, a PHP version or memory limit, a bad .htaccess file, wrong site URLs, or caching. Once you know where to look, most of them can be fixed in minutes without a developer.
This guide lists 15 common WordPress issues, what usually causes each one, and the quickest safe fix. Where Jackober has a full guide on one issue, we link to it.
The Short Answer
Before you fix anything, take a backup. Then work through these steps in order:
- Turn on logging. Set
WP_DEBUGandWP_DEBUG_LOGinwp-config.phpand readwp-content/debug.log. - Rule out plugins and the theme. Deactivate all plugins, or switch to a default theme, and check again.
- Check the server: PHP version, memory limit, disk space, and the error log in your hosting panel.
- Clear every cache layer: plugin, server, CDN, and browser.
If you can’t reach the dashboard at all, you can do every step above through your host’s file manager, SFTP, or phpMyAdmin.
Before You Start: Tools You Need
- A recent backup. See our guide on how to back up a WordPress site.
- File access through your host’s file manager or SFTP, so you can edit
wp-config.phpand rename folders. - Debug logging. The official Debugging in WordPress guide explains the constants. A safe setup for troubleshooting a live site is:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
Turn debugging off again when you finish, and delete the log file, because it can reveal file paths.
- Recovery mode. Since WordPress 5.2, a fatal error in a plugin or theme triggers a “critical error” message, and WordPress emails the admin a special link. That link opens the dashboard with the faulty plugin or theme paused.
15 Common WordPress Issues and Their Fixes
| # | Issue | Most likely cause | Quick fix |
|---|---|---|---|
| 1 | “There has been a critical error” / white screen | Plugin or theme PHP error | Use the recovery email link, or rename the plugin folder via SFTP |
| 2 | Error establishing a database connection | Wrong credentials in wp-config.php or database server down | Check DB_NAME, DB_USER, DB_PASSWORD and DB_HOST; ask your host |
| 3 | 500 Internal Server Error | Corrupt .htaccess, PHP error, or memory limit | Rename .htaccess, then re-save permalinks; read the error log |
| 4 | Too many redirects | Mismatched URLs, HTTPS settings, or proxy/CDN SSL mode | Check Site URL and Home, and the CDN’s SSL setting |
| 5 | 404 errors on posts | Permalink rules not written | Settings → Permalinks → Save Changes |
| 6 | Can’t log in / login page reloads | Cookies, wrong site URL, or a security plugin | Clear cookies; rename the security plugin folder |
| 7 | WordPress not sending emails | Host blocks or filters PHP mail | Send through SMTP with an authenticated provider |
| 8 | Memory exhausted error | PHP memory limit too low for your plugins | Raise WP_MEMORY_LIMIT, or ask your host to raise the PHP limit |
| 9 | Upload failed / file too large | Upload size limits or folder permissions | Increase upload_max_filesize and post_max_size; check wp-content/uploads permissions |
| 10 | Stuck in maintenance mode | An interrupted update left a .maintenance file | Delete .maintenance from the site root, then rerun the update |
| 11 | Changes don’t show up | Page, server, or CDN cache | Purge every cache layer, then check in a private window |
| 12 | Slow site | Heavy plugins, large images, no caching | Measure first, then fix the biggest issue |
| 13 | Scheduled posts missed | WP-Cron depends on site visits | Use a real server cron job |
| 14 | Plugin conflict after an update | Two plugins, or a plugin and the theme, clash | Deactivate plugins one by one on staging; roll back the update |
| 15 | Site broken after a PHP upgrade | Old plugins or themes use removed PHP functions | Switch back to the previous PHP version, then update or replace the plugin |
Fixes for the Most Common Issues
Critical error and white screen
Open the email WordPress sent to the admin address and use the recovery link. If there’s no email, connect with SFTP and rename wp-content/plugins to plugins-off. If the site loads, rename the folder back and disable plugins one at a time to find the faulty one. Our white screen of death guide covers this in detail.
500 errors and broken permalinks
Rename .htaccess to .htaccess-old and reload the site. If it works, go to Settings → Permalinks and click Save Changes to generate a clean file. If the error remains, the PHP error log will name the file and line that failed.
Redirect loops
A redirect loop usually means WordPress and your server or CDN disagree about HTTPS or the main domain. Our ERR_TOO_MANY_REDIRECTS guide walks through each cause.
Emails not arriving
Many hosts limit the PHP mail() function, and messages that are not authenticated often end up in spam. An SMTP plugin connected to a proper mail service, along with SPF, DKIM and DMARC records, fixes most cases. See WordPress not sending emails.
Missed scheduled posts
WP-Cron only runs when someone visits the site, so quiet sites miss scheduled events. Switching to a server cron job makes them reliable; see WP-Cron vs a real cron job.
Problems after a PHP update
New PHP versions remove old functions. If the site breaks right after an upgrade, switch back to the previous PHP version in your hosting panel. Then update or replace the plugin named in the log before you try again. Our guide on updating the PHP version safely shows how to test first.
Common Mistakes
- Fixing a live site without a backup. A wrong edit in
wp-config.phpor the database can make things worse. - Leaving debug mode on.
WP_DEBUG_DISPLAYshows errors to visitors, and an olddebug.logcan leak paths. - Deleting plugins to troubleshoot. Renaming the folder is enough and keeps the plugin’s settings.
- Changing several things at once. Make one change, test, then make the next, so you know what fixed it.
- Forgetting the CDN. Many “the fix didn’t work” moments are just a cached page.
FAQ
What does “There has been a critical error on this website” mean?
A plugin, theme, or custom code caused a PHP fatal error. WordPress caught it and sent a recovery link to the admin email. The debug log or server error log names the file that failed.
How do I fix WordPress if I can’t access wp-admin?
Use your host’s file manager or SFTP to rename the plugins folder or the active theme folder. You can also use phpMyAdmin to check the siteurl and home values in the wp_options table.
Is it safe to enable WP_DEBUG on a live site?
Only with WP_DEBUG_DISPLAY set to false, so errors go to the log rather than the page, and only for as long as you need it.
Why does my site still look broken after I fixed it?
Usually because of caching. Purge the caching plugin, the server cache, and the CDN, then check in a private browser window.
When should I call my host or a developer?
Call your host when the database server, disk space, or PHP limits are the cause. Call a developer if the error points to custom code or a plugin that has no update.
The Bottom Line
Most WordPress issues can be fixed with the same routine: back up, read the logs, isolate plugins and the theme, check server limits, and clear caches. Fix one thing at a time and keep debugging off on a live site when you’re done. Bookmark the linked guides for the issues you meet most often.
Sources & Further Reading
- WordPress Developer Resources: Debugging in WordPress
- WordPress Developer Resources: Editing wp-config.php
- Learn WordPress: The built-in WordPress debugging options
- Learn WordPress: Troubleshooting plugin and theme conflicts
- WordPress.org: Requirements
Articles are editorially reviewed by Jackober and factual claims are checked against cited sources.









2 comments
Wow that was unusual. I just wrote an extremely long comment but after I clicked submit my comment
didn’t show up. Grrrr… well I’m not writing all that over again. Anyhow, just wanted to say superb blog!