How to fix a WordPress 500 Internal Server Error

Table of Contents

How to Fix WordPress 500 Internal Server Error: Complete Guide

A WordPress 500 Internal Server Error can be one of the most frustrating problems to encounter because the message usually does not tell you what actually went wrong. Instead of showing a specific cause, WordPress or your web server simply reports that something prevented the request from being completed.

The good news is that a 500 error does not necessarily mean your website is permanently broken. In many cases, the problem is caused by a plugin conflict, corrupted .htaccess file, PHP memory limit, incompatible PHP version, theme issue, or a server configuration problem that can be identified and fixed.

In this complete guide, you’ll learn how to fix the WordPress 500 Internal Server Error step by step, starting with the safest and easiest solutions before moving into more advanced troubleshooting.

What Is a 500 Internal Server Error in WordPress?

A 500 Internal Server Error is a server-side error that occurs when your web server cannot successfully complete a request.

Unlike a 404 error, which usually means a specific page cannot be found, a 500 error generally indicates that something went wrong while the server was processing the request.

You might see messages such as:

  • 500 Internal Server Error
  • HTTP 500 Internal Server Error
  • The server encountered an internal error
  • This page isn't working
  • HTTP ERROR 500

The exact message depends on your hosting provider, web server, browser, and configuration.

The important thing to understand is that the 500 error itself is usually a symptom rather than the root cause.

Why Does WordPress Show a 500 Internal Server Error?

There are several possible causes of a WordPress 500 error.

The most common include:

  • A faulty or incompatible plugin
  • A theme conflict
  • A corrupted .htaccess file
  • PHP memory exhaustion
  • An incompatible PHP version
  • A PHP fatal error
  • Incorrect file or folder permissions
  • Corrupted WordPress core files
  • Server configuration problems
  • Hosting resource limitations
  • Problems caused by custom PHP code
  • Failed or incomplete updates

Because there are so many possible causes, the best approach is to troubleshoot the problem systematically rather than randomly changing settings.

Before You Start: Make a Backup

Before making significant changes to your WordPress installation, create a backup of your website.

Ideally, your backup should include:

  • WordPress files
  • wp-content
  • Plugins
  • Themes
  • Uploads
  • Database
  • Custom configuration files

If your hosting provider offers automatic backups or snapshots, create a fresh backup before troubleshooting.

This is especially important if you are going to edit .htaccess, modify PHP configuration, disable plugins manually, or change server settings.

If you regularly make changes to your WordPress website, a staging environment is also extremely useful. You can learn more about safely testing WordPress changes in our WordPress staging environment guide.

Clear Your Browser and Website Cache

Before making technical changes, determine whether the error is actually persistent.

Try:

  • Refreshing the page
  • Opening the website in an incognito/private window
  • Testing another browser
  • Testing another device
  • Clearing your browser cache
  • Clearing your WordPress caching plugin
  • Clearing your hosting cache
  • Clearing your CDN cache if you use one

If the website works in an incognito window but not in your normal browser, the problem may be related to cached browser data rather than WordPress itself.

However, if the 500 error appears consistently across different browsers and devices, continue troubleshooting.

Check Whether the Entire Website Is Down

First determine the scope of the problem.

Try opening:

https://yourdomain.com

Then test:

https://yourdomain.com/wp-admin/

and a few different pages.

If everything returns a 500 error

The problem is likely related to something global, such as:

  • .htaccess
  • PHP configuration
  • PHP version
  • server resources
  • WordPress core
  • a plugin loaded on every request
  • hosting configuration

If only one page returns a 500 error

The problem may be related to:

  • that page’s content
  • a specific plugin
  • custom code
  • a page builder
  • database data
  • a template

This distinction can significantly narrow down the troubleshooting process.

Disable WordPress Plugins

One of the most common causes of WordPress 500 errors is a plugin conflict or PHP fatal error caused by a plugin.

If you can still access the WordPress dashboard, go to:

Plugins → Installed Plugins

Deactivate all plugins temporarily.

Then test your website again.

If the website starts working

You’ve likely identified a plugin-related problem.

Reactivate the plugins one at a time, testing the website after each activation.

When the 500 error returns, the last plugin you activated is a strong candidate.

If You Cannot Access WordPress Admin

You can disable plugins manually through your hosting file manager or FTP.

Open:

/wp-content/

Find:

plugins

Rename it to something such as:

plugins-disabled

Then test the website.

If the website starts working, WordPress can no longer load the plugins, confirming that a plugin is likely responsible.

You can then restore the folder name and troubleshoot individual plugins.

Check for a Theme Conflict

If plugins are not responsible, your active theme may be causing the problem.

If you can access the WordPress dashboard, temporarily switch to a default WordPress theme.

For example, use one of the current default themes available on your installation.

Then test the website.

If the 500 error disappears, the problem may be caused by:

  • custom theme code
  • outdated theme functionality
  • an incompatible theme update
  • PHP compatibility issues
  • a theme dependency

Theme and plugin conflicts can sometimes be difficult to identify because the error may only occur on specific pages.

For a more detailed troubleshooting process, see our guide on how to diagnose and resolve WordPress plugin and theme conflicts.

Regenerate the .htaccess File

A corrupted .htaccess file is another common cause of WordPress 500 errors, especially after:

  • plugin installations
  • server migrations
  • permalink changes
  • security configuration changes
  • manual server modifications

First, access your website files through your hosting file manager or FTP.

Find:

.htaccess

Because this is an important configuration file, make a backup before changing it.

Rename it temporarily to something like:

.htaccess-old

Then try loading your website.

If the website starts working, the .htaccess file was probably responsible.

Generate a New .htaccess File

If you can access WordPress:

Settings → Permalinks

You don’t necessarily need to change anything.

Click Save Changes.

WordPress will attempt to regenerate the default rewrite rules.

Test your website again.

Increase the WordPress PHP Memory Limit

A 500 error can occur when WordPress or a PHP process runs out of available memory.

This can happen when you have:

  • large plugins
  • WooCommerce
  • page builders
  • complex themes
  • large imports
  • image processing
  • heavy database queries
  • multiple plugins running simultaneously

You may see a message such as:

Allowed memory size exhausted

If so, increasing the available PHP memory may resolve the issue.

Depending on your hosting environment, memory can be configured through:

  • wp-config.php
  • PHP configuration
  • hosting control panel
  • .user.ini
  • php.ini

For example, WordPress may use:

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

However, don’t blindly increase memory indefinitely.

If a plugin or custom script is consuming excessive resources, increasing the limit may only hide the underlying problem.

Check Your PHP Version

An outdated or incompatible PHP version can cause fatal errors that result in a 500 response.

Check which PHP version your website is currently using through your hosting control panel.

Then consider whether the error started after:

  • changing PHP versions
  • updating WordPress
  • updating a plugin
  • updating your theme
  • migrating the website

Older plugins and themes can sometimes contain code that is incompatible with newer PHP versions.

On the other hand, using an outdated PHP version can create compatibility, performance, and security problems.

Before changing PHP versions on a production website, test the change on staging whenever possible.

Enable WordPress Debugging

If the previous solutions did not identify the problem, WordPress debugging can provide much more useful information.

Open:

wp-config.php

Find:

define( 'WP_DEBUG', false );

For troubleshooting, you can temporarily change it to:

define( 'WP_DEBUG', true );

You can also log errors without displaying them publicly:

define( 'WP_DEBUG', true );define( 'WP_DEBUG_LOG', true );define( 'WP_DEBUG_DISPLAY', false );

WordPress can then record errors in:

/wp-content/debug.log

Look for messages containing:

  • Fatal error
  • Uncaught Error
  • Allowed memory size
  • plugin names
  • theme names
  • PHP file paths

For example, if the log points directly to:

/wp-content/plugins/example-plugin/

you have a strong indication that the plugin is responsible.

Important

Do not leave debugging enabled unnecessarily on a production website.

Once troubleshooting is complete, disable it again:

define( 'WP_DEBUG', false );

Check the Server Error Logs

Sometimes WordPress debugging doesn’t provide enough information.

Your hosting provider’s server logs can reveal the actual reason the server returned a 500 response.

Depending on your host, you may find logs through a hosting dashboard or server control panel.

Look for:

  • PHP fatal errors
  • memory errors
  • permission errors
  • timeout errors
  • syntax errors
  • server configuration errors
  • resource limits

The exact location of these logs depends on your hosting environment.

If you’re not sure where to find them, contact your hosting provider and ask them to check the server error logs for the exact timestamp when the 500 error occurred.

Check File and Folder Permissions

Incorrect file permissions can prevent WordPress or PHP from accessing necessary files.

Typical WordPress installations commonly use permissions similar to:

Files:

644

Directories:

755

The exact permissions can vary depending on your server configuration, so don’t change everything blindly.

If permissions were recently modified during a migration or manual file transfer, they are worth investigating.

Re-upload WordPress Core Files

If you suspect that WordPress core files have become corrupted, you can replace the core files with fresh copies.

This can happen after:

  • failed updates
  • incomplete migrations
  • corrupted files
  • interrupted installations
  • server problems

You generally want to replace the WordPress core files without overwriting:

wp-content

or:

wp-config.php

Be careful when doing this manually and always maintain a backup first.

If you’re unsure, using the WordPress dashboard’s built-in update/reinstallation functionality or asking your hosting provider for assistance may be safer.

Check Custom PHP Code and Code Snippets

Custom PHP code can also cause a 500 error.

This is especially important if the error appeared immediately after:

  • adding a code snippet
  • editing functions.php
  • modifying a custom plugin
  • changing a theme
  • adding custom functionality

A PHP syntax error can prevent WordPress from loading correctly.

If you recently added custom code, temporarily remove or disable that code and test the website again.

If you’re using a code snippets plugin, disable the relevant snippet rather than deleting it immediately.

Check Your Hosting Resource Limits

Sometimes the WordPress installation itself is not the problem.

Your hosting account may have reached a resource limit.

Depending on the hosting provider, this could include:

  • PHP workers
  • CPU
  • RAM
  • processes
  • disk space
  • inode limits
  • execution time
  • concurrent connections

This is particularly important for busy WooCommerce websites or websites with resource-intensive plugins.

If the website frequently becomes unavailable under load, increasing PHP memory alone may not solve the issue.

In that situation, review your hosting resource usage and server logs.

Check Whether the Error Started After an Update

Think about what changed immediately before the 500 error appeared.

Ask yourself:

What changed?

For example:

  • WordPress update
  • Plugin update
  • Theme update
  • PHP update
  • Hosting migration
  • DNS change
  • SSL configuration
  • New custom code
  • New caching plugin
  • Security plugin configuration

If the timing is clear, start troubleshooting that change first.

For example:

Plugin updated → website immediately shows 500 → disable plugin → website works.

That’s a much stronger diagnostic signal than randomly changing five different settings.

Restore a Backup If Necessary

If you have tried the troubleshooting steps above and the website remains broken, restoring a recent backup may be the fastest solution.

However, don’t immediately restore without understanding what caused the problem.

Otherwise, you may restore the site and then recreate the same problem when you repeat the change that caused it.

Before restoring, determine:

  • When did the error start?
  • What changed immediately before it?
  • Which backup was created before the problem?
  • Does the backup contain the latest customer/order/data information?

For WooCommerce websites especially, restoring an old database can potentially remove newer orders or customer information.

How to Find the Exact Cause of a WordPress 500 Error

If you want to troubleshoot the problem efficiently, use this sequence:

Step 1

Check whether the entire website or only one page is affected.

Step 2

Clear caches and test in an incognito browser.

Step 3

Disable plugins.

Step 4

Switch to a default theme.

Step 5

Regenerate .htaccess.

Step 6

Check PHP version and memory limits.

Step 7

Enable WordPress debugging and inspect debug.log.

Step 8

Check hosting/server error logs.

Step 9

Investigate recent changes.

Step 10

Restore a backup or contact hosting support if necessary.

This approach is much safer than changing multiple settings simultaneously because you can identify which change actually fixed the problem.

What If You Can’t Access WordPress Admin?

You can still troubleshoot a WordPress 500 error.

Use your hosting file manager or FTP to access:

/wp-content/

From there you can:

  • rename the plugins folder
  • inspect themes
  • access debug logs
  • modify .htaccess
  • inspect files
  • disable problematic code

You can also use your hosting control panel to:

  • change PHP versions
  • review resource usage
  • inspect server logs
  • create backups
  • manage PHP settings

If you have SSH access, additional diagnostic commands may also be available, but these depend heavily on your hosting environment.

WordPress 500 Error vs Other Common WordPress Errors

It’s useful to understand how a 500 error differs from other problems.

ErrorCommon Meaning
500 Internal Server ErrorServer/PHP-side problem
404 Not FoundRequested page/resource doesn’t exist
403 ForbiddenServer refuses access
502 Bad GatewayGateway/proxy received an invalid response
503 Service UnavailableServer temporarily unavailable or overloaded
504 Gateway TimeoutServer/proxy waited too long for a response

Understanding the difference can help you choose the correct troubleshooting strategy.

How to Prevent WordPress 500 Errors

You can’t prevent every server error, but you can significantly reduce the risk.

Keep WordPress Updated

Regularly update:

  • WordPress core
  • Plugins
  • Themes
  • PHP

However, don’t blindly update everything on a critical production website.

Use a staging environment when possible.

Our WordPress staging guide explains how to test updates before applying them to your live website.

Use Reliable Plugins

Avoid installing unnecessary plugins and remove plugins you no longer use.

Poorly maintained or incompatible plugins can introduce PHP errors and conflicts.

Maintain Regular Backups

Your backup strategy should include both your WordPress files and database.

A backup is especially important before:

  • major updates
  • migrations
  • PHP changes
  • theme changes
  • plugin changes
  • custom development

Monitor Website Performance

Performance problems and resource limits can sometimes contribute to server errors.

Use your hosting dashboard and WordPress performance tools to monitor resource usage.

You can also use our complete WordPress speed optimization guide to improve website performance.

Frequently Asked Questions

Can a plugin cause a WordPress 500 Internal Server Error?

Yes. A plugin can trigger a PHP fatal error, memory exhaustion, compatibility problem, or other server-side issue that results in a 500 response.

Disabling plugins is therefore one of the first troubleshooting steps you should try.

Can .htaccess cause a 500 error?

Yes. A corrupted or incorrectly configured .htaccess file can cause server configuration errors and prevent WordPress pages from loading.

Can PHP cause a WordPress 500 error?

Yes. PHP fatal errors, incompatible PHP versions, memory limits, syntax errors, and incompatible code can all cause a 500 response.

Will increasing PHP memory fix a 500 error?

Sometimes, but not always. If the problem is caused by memory exhaustion, increasing the PHP memory limit can help. If the underlying problem is a plugin, theme, or code error, increasing memory won’t fix the real cause.

What should I do if I cannot access wp-admin?

Use your hosting file manager or FTP to disable plugins, inspect .htaccess, access logs, and troubleshoot the site’s files. Your hosting provider can also help identify server-level problems.

Does a 500 error mean my WordPress website has been hacked?

Not necessarily. A 500 error has many possible causes, including plugins, themes, PHP errors, configuration problems, and resource limits.

However, if the error appeared alongside suspicious redirects, unfamiliar files, new admin users, or other unusual behavior, you should investigate your website security.

If security is a concern, see our WordPress security guide.

Final Thoughts

A WordPress 500 Internal Server Error can look serious, but in many cases it is caused by a specific configuration, plugin, theme, PHP, or server problem that can be identified with a systematic troubleshooting process.

Start with the simplest checks: clear the cache, determine the scope of the error, disable plugins, test the theme, and regenerate .htaccess. If those steps don’t solve the problem, move deeper into PHP configuration, WordPress debugging, server logs, and hosting resources.

The most important rule is to change one thing at a time. That makes it much easier to identify the actual cause instead of accidentally introducing another problem while troubleshooting.

With regular backups, staging, updates, reliable hosting, and proper WordPress maintenance, you can also reduce the chances of serious errors affecting your live website.

Want to Master WordPress?

Fixing errors is just one part of managing a professional WordPress website. WP FlowMastery: The Complete WordPress Guide gives you 160 pages of practical guidance covering WordPress setup, hosting, speed, SEO, security, WooCommerce, Elementor, backups, staging, and more.

Stop relying on scattered tutorials and learn how to build, optimize, secure, and manage WordPress websites with one complete guide.

👉 Get the WP FlowMastery WordPress eBook for $19

Written by Nemanja Stosic

WordPress Developer & Website Optimization Specialist

Nemanja helps businesses and freelancers build, optimize, and maintain professional WordPress websites focused on performance, SEO, security, and usability.

Before You Go…

Get our free WordPress guide and learn the essential strategies for building, optimizing and growing your website.

Free guide · No spam · Unsubscribe anytime

Get the Free WordPress Guide

Learn how to build, optimize and grow a professional WordPress website with practical strategies you can actually use.

No spam. Unsubscribe anytime.