Tutorials

WordPress 500 Internal Server Error: 6 Fixes Ordered by Probability (2026)

By Daniel Reyes•October 2, 2026•4 min read

Disclosure: some links on this page are affiliate links. We may earn a commission at no extra cost to you. How we test and rate hosts.

Our top pick for most WordPress sites
Bluehost: free domain, free SSL, 24/7 support, 30-day money-back guarantee.
Check Bluehost Deal →

The error: "500 Internal Server Error" — a generic Apache/Nginx crash before WordPress loads. The #1 cause: corrupted .htaccess. The diagnostic shortcut: try yoursite.com/wp-admin — if it loads but the frontend doesn't, it's almost certainly .htaccess and takes 30 seconds to fix. Here are all 6 fixes in probability order.

Fix 1: Regenerate .htaccess (Most Common Cause)

Two paths depending on what loads:

  • If wp-admin works → Settings → Permalinks → just click Save. WordPress regenerates .htaccess; the 500 clears.
  • If nothing works → FTP or File Manager → rename .htaccess to .htaccess-old in the site root → reload. If the site returns, go to Settings → Permalinks → Save to regenerate it.

A malformed rule, a stray character, or a plugin writing bad directives corrupts .htaccess and crashes the frontend on every request. This is the first thing to check.

Fix 2: Deactivate Plugins (Second Most Common)

A plugin fatally erroring produces 500 on every page. Without wp-admin access, rename wp-content/plugins to plugins-off via FTP. If the site loads, a plugin is the culprit — rename back, disable them one at a time to isolate. If wp-admin works, use Plugins → deactivate each from the dashboard.

Fix 3: Increase PHP Memory Limit

Exhausted memory crashes PHP before the page renders — presenting as 500. Add to wp-config.php:

define( 'WP_MEMORY_LIMIT', '256M' );

If it doesn't help, your host's PHP memory_limit is below it — contact them or see our memory limit guide. On shared hosting with tight limits, memory-related 500s are routine, not occasional.

Fix 4: Check the PHP Version

A plugin written for PHP 7.x fatals on PHP 8.2; a modern plugin fatals on PHP 7.4. Check your host's PHP version vs your plugins' requirements. In your hosting panel, try switching PHP version — if the site returns on a different version, that's the incompatibility to fix by updating the offending plugin.

Fix 5: Re-upload WordPress Core Files

Corrupted core files (bad update, FTP interruption, malware) produce 500. Download a fresh WordPress zip, extract, and re-upload wp-admin and wp-includes folders via FTP — this replaces core files without touching wp-content (your themes, plugins, uploads) or wp-config.php. Your site files and database stay intact.

Fix 6: Check Server Error Logs

If none of the above worked, the error log names the exact failure. In cPanel → Errors, or your host's log viewer, look for the most recent entries at the timestamp of your last reload. The log line names the file and line that crashed — usually a specific plugin, theme function, or PHP directive. Fix that specific thing rather than guessing.

The wp-admin Diagnostic That Saves an Hour

Before trying anything: load yoursite.com/wp-admin. Works = .htaccess or frontend-specific plugin issue. Fails = deeper server/plugin problem. This 10-second test routes you to the right fix instead of trying all six.

Why Cheap Hosting Causes More 500s

Low PHP memory limits on oversold shared servers produce memory-related 500s under normal plugin loads. Hosts that throttle under traffic produce them intermittently. If 500s are routine, not rare, the fix isn't debugging — it's hosting with proper PHP limits and headroom. Bluehost's WP Cloud tiers run WordPress on isolated infrastructure with sane defaults — the class of 500 error caused by undersized shared hosting disappears.

Fewer 500s, More Headroom

Bluehost managed WordPress: isolated containers, proper PHP limits, automatic backups before updates — so errors are rare and recoverable, not routine.

Get Bluehost Managed WP →

Related: critical error fix, white screen of death, database connection error, memory limit fix.

Find Your Perfect Hosting Plan

What are you building?

Tell us about your project so we can match the perfect hosting plan.

Question 1 of 425% complete
Interactive Tool

Hosting Cost Calculator

See exactly how much you'll spend on hosting over time. Compare Bluehost vs popular alternatives and discover your potential savings.

Used to calculate transaction fees (Shopify charges 2% on sales)

Shopify Basic (3yr)
$1,044
Bluehost (3yr)
$444
You Save
$600
58% less than Shopify Basic

Frequently Asked Questions

What causes a 500 internal server error in WordPress?

The #1 cause is a corrupted .htaccess file — a malformed rewrite rule crashes Apache before WordPress even loads. After that: plugin/theme fatal errors, exhausted PHP memory limit, incompatible PHP version, or corrupted WordPress core files.

How do I fix the 500 error fast?

Test wp-admin first: if /wp-admin loads but frontend doesn't, it's almost certainly .htaccess — regenerate it via Settings > Permalinks > Save. If everything is down, rename .htaccess to .htaccess-old via FTP. That single test identifies the problem in most cases.

Why does wp-admin work but the site shows 500?

Classic .htaccess signature — the corrupted rules break frontend rewrites but wp-admin uses different routing and survives. The fix is regenerating .htaccess, nothing else.

Is the 500 error a data loss problem?

No — it's a server-side crash before page generation. Your content, database, and files are intact; the server is just failing to execute code.

Can a plugin update cause the 500 error?

Yes — a plugin update incompatible with your PHP version or another plugin produces fatal errors that surface as 500. If it appeared right after an update, that plugin is the culprit.

How do I prevent 500 errors?

Update plugins one at a time, test on staging, keep PHP current but compatible, use automatic backups, and pick a host with enough memory headroom — cheap shared hosting's low PHP limits cause memory-related 500s.

Ready to launch?

Get Bluehost from $3.99/month with a free domain, free SSL, and 30-day money-back guarantee.

Start for $3.99 →

Related Articles