What this problem looks like
A 500 error means the web server encountered an unexpected condition. On WordPress sites the cause is usually a bad .htaccess rule, PHP fatal error, memory limit, or incompatible plugin after an update.
Unlike a white screen, some hosts show a generic 500 page. You still need server logs to find the real message. Start with .htaccess and the logs, then isolate plugins and themes until the error is gone.
Step 1: Find the real error in server logs
Log in to your hosting and open the error log. Search for entries at the time the site started returning the error. Look for PHP Fatal error, mod_security block, or AH01071 lines on Apache.
- cPanel: Metrics → Errors or File Manager → error_log in site root.
- Plesk: Logs for the domain.
- Managed WordPress hosts: Application or PHP logs in the dashboard.
Step 2: Test with a default .htaccess
Corrupt or plugin-added rewrite rules are a frequent cause. Find .htaccess in your site root, next to wp-admin and wp-content. Rename it to .htaccess.old via File Manager, SFTP, or FTP. If the site loads, the problem is in 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 Step 3: Enable debug mode in wp-config.php
If the logs point at PHP, enable WordPress debug logging. Open wp-config.php in your site root, next to wp-admin and wp-content. Search for WP_DEBUG, WP_DEBUG_LOG, and WP_DEBUG_DISPLAY first. If those lines already exist, set them to the values below instead of adding duplicates. If none of them exist, paste them above the line that says stop editing:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false ); Step 4: Deactivate plugins and switch theme
Rename wp-content/plugins to plugins.disabled. If the error is gone, rename plugins.disabled back to plugins, then activate plugins one at a time in wp-admin until the error returns. If renaming plugins did not help, rename the active theme folder in wp-content/themes/ and confirm a default theme exists.
Step 5: Raise PHP limits in hosting
A 500 error often follows memory exhausted or maximum execution time messages. In hosting PHP settings, raise memory_limit and max_execution_time. You can also set WordPress memory in wp-config.php in your site root, next to wp-admin and wp-content:
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'WP_MAX_MEMORY_LIMIT', '512M' ); When to stop DIY and hire help
If the error persists after .htaccess reset and full plugin isolation, the issue may be server configuration or corrupted core files. BugShield resolves internal server errors at a confirmed price without hourly billing surprises.