Website Errors

How to Fix 500 Internal Server Error

500 Internal Server ErrorPlain English: something broke on the website's server while it tried to build the page — the server will not say exactly what, so you have to investigate.
Quick answer: A 500 Internal Server Error is a server-side failure, so the fix belongs to the site owner, not the visitor. Start by reading the server error logs to find the real cause, then increase the PHP memory limit, deactivate WordPress plugins one by one, check for a corrupted .htaccess file, and contact your host if the error persists. The full steps are below.

What the 500 Internal Server Error means

HTTP status 500 means "internal server error." The server received your request and tried to process it, but something inside the server — a script, a configuration, a resource limit — failed, and the server gave up. It is deliberately vague: the error message never says what broke, only that something did. Visitors just see a blank-ish "500" page; owners have to dig.

On WordPress sites, the usual suspects are a plugin or theme conflict, an exhausted PHP memory limit, or a corrupted .htaccess file. On custom sites, it is more often a bug in recently deployed code or a misconfigured server module. Because the error hides its cause, the reliable method is always the same: read the logs first, then fix what the logs point at.

Common causes

How to fix the 500 Internal Server Error — step by step

These steps are for site owners and developers. Visitors: the honest fix is to try again later and contact the site — you cannot repair someone else's server.

  1. Read the server error logs. The logs tell you exactly what broke. In cPanel, go to Metrics, then Errors, and look at the most recent entries — a fatal PHP error names the file and line number. If you have FTP or SSH access, check the error_log file in your site's root or the server's log directory (often /var/log/apache2/error.log or /var/log/nginx/error.log). Fix what the log names: a missing file, a syntax error, or a specific plugin. Without the logs you are guessing; with them you usually know the fix in minutes.
  2. Increase the PHP memory limit. Memory exhaustion is the most common WordPress cause. Edit wp-config.php in your site's root (via File Manager or FTP) and add this line just above the "That's all, stop editing!" comment: define('WP_MEMORY_LIMIT', '256M');. Save and reload the site. If you cannot edit wp-config.php, ask your host to raise the limit, or add php_value memory_limit 256M to .htaccess on Apache hosts that allow it. If the error disappears, a plugin was starving for memory — consider replacing the hungriest one.
  3. Deactivate WordPress plugins one by one. A single bad plugin can 500 an entire site. If you can reach wp-admin, go to Plugins, then Installed Plugins, deactivate everything, and check the site. If it loads, reactivate plugins one at a time until the error returns — the last one is the culprit. If wp-admin is also broken, connect via FTP, open wp-content, and rename the plugins folder to plugins.old. That disables all plugins at once; rename it back and then rename individual plugin folders inside it one by one to isolate the offender.
  4. Check for a corrupted .htaccess file. A damaged .htaccess breaks every request on Apache servers. Via FTP or File Manager, rename .htaccess in your site's root to .htaccess.bak and reload the site. If the 500 is gone, the file was corrupt. For WordPress, generate a fresh one: go to Settings, then Permalinks, and click Save Changes without changing anything — WordPress writes a clean .htaccess. Then re-add any custom rules you need, testing after each addition.
  5. Contact your hosting provider. If the logs are unclear, the error affects the whole server, or it started right after the host made changes, open a support ticket. Tell them the exact time the error started, the URLs affected, and paste the relevant lines from your error log. Hosts can check server-level issues you cannot see — a crashed service, a full disk, a misconfigured module — and they can raise resource limits on your plan. Ask specifically whether ModSecurity or another firewall rule is triggering the 500.

Did this fix it? Quick checklist

If the 500 appears only on one specific page — a checkout, a contact form, an admin screen — the trigger is whatever code runs on that page: a plugin shortcode, a payment gateway, a form handler. Disable the components on that page one by one. And always keep a recent backup before making changes, so a fix attempt can never make things worse than the error itself.

Frequently asked questions

What does a 500 Internal Server Error mean?

It means the web server encountered an unexpected problem while processing the request and could not complete it. The message is intentionally generic — the real cause (a script error, memory exhaustion, bad configuration) is recorded in the server's error logs.

Can a visitor fix a 500 error?

Almost never. A 500 is a server-side failure, so the fix belongs to the site owner. As a visitor, refresh once, try again later, clear your cache to rule out a stale page, and contact the site owner if it persists.

Why does my WordPress site show a 500 error after installing a plugin?

The plugin likely triggered a fatal PHP error — a conflict, a bug, or memory exhaustion. Rename its folder under wp-content/plugins via FTP to deactivate it instantly, then check for an updated version or a replacement.

How do I find what is causing a 500 error?

Read the server error logs first: cPanel under Metrics, then Errors, or the error_log file in your site root. The log names the failing file and line number, which usually points straight at the plugin, theme, or script responsible.