A WordPress 500 error means that the server could not complete the request, but the response does not reveal the exact cause. In practice, the problem is usually linked to a failed plugin, an incompatible theme, corrupted .htaccess rules, a PHP fatal error, exhausted memory, or incorrect file permissions.
The fastest way to make the problem worse is to change several settings at once. Start with a backup, check the server error log, and test each possible cause in a controlled order.
Quick Answer
For a controlled WordPress 500 Internal Server Error check in cPanel:
- Create a backup of the website files and database.
- Check the cPanel error log for the exact PHP or server error.
- Undo the most recent plugin, theme, or configuration change.
- Disable all plugins through File Manager.
- Test the active theme.
- Temporarily rename the
.htaccessfile. - Check PHP compatibility and memory limits.
- Enable WordPress debug logging temporarily if the cause is still unknown.
The exact cause can be different on each website. Check the error log before changing PHP, plugin, theme, or server settings.

1. Back Up the WordPress Site
Before changing plugins, themes, PHP settings, or configuration files, create a backup of the website. This is not a formality: a simple folder rename or configuration edit can create a second problem while you are trying to fix the first one.
At minimum, back up:
- The WordPress files inside
public_htmlor the domain document root. - The WordPress database through phpMyAdmin or the hosting backup system.
- The existing
wp-config.phpand.htaccessfiles.
2. Check the Error Log Before Fixing the WordPress 500 Error
A 500 response is a general server error. In cPanel troubleshooting, the error log is the first place I check because it can identify the failing plugin, theme, PHP function, file path, or resource limit before any settings are changed.
- Log in to cPanel.
- Look for Errors, Error Log, Metrics → Errors, or a PHP error log option.
- Open the affected WordPress page again to reproduce the error.
- Return to the error log and inspect entries created at the same time.
Look for messages containing terms such as:
PHP Fatal errorAllowed memory size exhaustedUncaught ErrorParse errorPermission denied
A log entry may include the path of the plugin, theme, or PHP file that caused the failure. When the same component appears repeatedly, test that component first instead of changing unrelated PHP or server settings.
3. Undo the Most Recent Change
Before opening every cPanel setting, check what changed immediately before the error appeared. This often shortens the troubleshooting process more than any generic fix. Common triggers include:
- A WordPress core update.
- A plugin installation or update.
- A theme installation or update.
- A PHP version change.
- Changes to
wp-config.php. - Changes to the
.htaccessfile. - A migration or domain configuration change.
If the error began immediately after one of these actions, reverse that specific change or restore the previous version before modifying anything unrelated.
4. Disable All WordPress Plugins in cPanel
A plugin conflict or PHP fatal error is one of the most common causes of a WordPress 500 error. When the WordPress dashboard is unavailable, I disable the plugins through cPanel File Manager instead of trying to recover dashboard access first.
- Open cPanel → File Manager.
- Open the WordPress installation directory.
- Go to
wp-content. - Find the folder named
plugins. - Rename it to
plugins-disabled. - Reload the website.
If the website opens, one of the plugins is causing the error.
Identify the Failed Plugin
- Rename
plugins-disabledback toplugins. - Open the WordPress dashboard.
- Activate the plugins one at a time.
- Test the website after each activation.
When the error returns, the most recently activated plugin is the likely cause. Leave it disabled, confirm the error log, and then check for an update, rollback, or replacement.
5. Test the Active WordPress Theme
If disabling plugins does not fix the error, the active theme is the next logical component to test for a PHP or compatibility failure.
- Open cPanel → File Manager.
- Go to
wp-content/themes. - Find the folder belonging to the active theme.
- Rename the folder by adding
-disabledto its name. - Reload the website.
If the site opens with the default theme, restore the original folder name but leave that theme inactive until it has been updated or repaired.
6. Reset the WordPress .htaccess File
A damaged or incompatible .htaccess file can trigger an Internal Server Error on Apache or compatible servers. I test this by renaming the file first, never by deleting it without a backup.
- Open cPanel → File Manager.
- Open the WordPress document root, usually
public_html. - Open File Manager settings and enable Show Hidden Files if necessary.
- Find the file named
.htaccess. - Download a backup copy.
- Rename the server copy to
.htaccess-old. - Reload the website.
If the site opens, log in to WordPress and go to:
Settings → Permalinks → Save Changes
WordPress can then regenerate the standard rewrite rules if the file is writable and the server supports them.
For more information, see the official WordPress .htaccess documentation.
You can also review our WordPress HTTPS redirect using .htaccess guide before restoring custom redirect rules.
7. Check the PHP Version in cPanel
A PHP version change can fix a compatibility problem, but it can also create a new one. I do not treat a PHP upgrade as the automatic first solution unless the error log or recent change history points to version compatibility.
- Open cPanel → MultiPHP Manager.
- Find the affected domain.
- Record the currently selected PHP version.
- Check whether the error began after that version was changed.
- Verify that WordPress, the active theme, and all active plugins support the intended version.
- Apply the change only after creating a backup.
- Test the homepage, WordPress dashboard, forms, menus, and important plugins.
WordPress recommends PHP 8.3 or greater as a modern baseline. However, the correct version also depends on the versions supported by your hosting provider, theme, and plugins.
Review the official WordPress requirements and the cPanel MultiPHP Manager documentation before changing a production website.
8. Check the PHP Memory Limit
Only increase the memory limit when the error log actually points to memory exhaustion, for example:
Allowed memory size exhausted
Open wp-config.php and add the following line before the stop-editing comment:
define( 'WP_MEMORY_LIMIT', '256M' );
The stop-editing comment normally looks similar to:
/* That's all, stop editing! Happy publishing. */
The hosting provider may enforce a lower server-level limit. If the value does not change, check cPanel → MultiPHP INI Editor or contact the host.
9. Enable WordPress Debug Logging Temporarily
If the cPanel log does not reveal the cause, WordPress debug logging can provide the missing application-level detail. Enable it only for the troubleshooting period.
Open wp-config.php and add or update the following definitions before the stop-editing comment:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );
Reload the affected page and then check:
wp-content/debug.log
Search the newest entries for the name of a plugin, theme, function, or PHP file.
After identifying the problem, disable debugging:
define( 'WP_DEBUG', false );
Do not add duplicate WP_DEBUG definitions. Replace the existing value if it already exists.
See the official WordPress debugging documentation for additional configuration options.
10. Check WordPress File Permissions
Incorrect permissions can prevent the web server from reading or executing required files. However, changing permissions should come after checking the log and recent changes, not as a blind first step.
Common permission values are:
| Item | Common Permission |
|---|---|
| Directories | 755 |
| Files | 644 |
These are common values, not universal requirements. Ownership and server configuration also matter. Contact the hosting provider when permissions repeatedly reset or when files are owned by the wrong account.
11. WordPress 500 Error vs 503 Service Unavailable
A 500 error and a 503 error are not the same problem.
| Error | Meaning | Common Causes |
|---|---|---|
| 500 Internal Server Error | The server encountered an unexpected failure while processing the request. | PHP fatal errors, plugin or theme failures, invalid configuration, corrupted .htaccess rules, permissions, or memory exhaustion. |
| 503 Service Unavailable | The service is temporarily unable to handle the request. | Maintenance mode, exhausted server resources, overloaded PHP workers, temporary hosting outages, or application failures. |
Some troubleshooting steps overlap, but a persistent 503 error should be investigated separately through resource usage, maintenance mode, PHP worker, and hosting availability checks. Treating every server error as the same problem usually wastes time.
12. When to Contact Your Hosting Provider
Contact the hosting provider when the problem moves beyond WordPress-level troubleshooting, especially when:
- The cPanel error log is unavailable or empty.
- The server returns a 500 error for non-WordPress files as well.
- PHP-FPM, Apache, LiteSpeed, or another server service is failing.
- File ownership is incorrect and cannot be changed in cPanel.
- The account has reached CPU, memory, process, or input/output limits.
- The website continues to fail with all plugins disabled and a default theme active.
- The error started after a hosting-side migration or configuration change.
When opening a support request, include:
- The affected domain and page.
- The approximate time when the error occurred.
- The actions already tested.
- The relevant error log entries.
- The active PHP version.
Frequently Asked Questions
What causes a WordPress 500 error?
A WordPress 500 error can be caused by a PHP fatal error, failed plugin, incompatible theme, corrupted .htaccess file, memory exhaustion, invalid server configuration, or incorrect permissions. Check the error log to determine the actual cause.
Will updating PHP fix the WordPress 500 error?
Only when the existing PHP version is unsupported or incompatible with the current WordPress installation. A PHP update can also create errors when an older plugin or theme does not support the new version. Back up the site and verify compatibility first.
Can I disable WordPress plugins without the admin dashboard?
Yes. Open cPanel File Manager, go to wp-content, and rename the plugins folder. Rename it back after testing.
Is it safe to delete the .htaccess file?
Do not permanently delete it before creating a backup. Rename it temporarily, test the website, and regenerate the rewrite rules through Settings → Permalinks if the site opens.
Where is the WordPress debug log?
When WordPress debug logging is enabled, the default log location is wp-content/debug.log. Disable debugging and remove or protect the log after troubleshooting.
Does a WordPress 500 error damage the database?
The error itself does not automatically mean that the database is damaged. However, failed updates, migrations, imports, or incomplete operations can create database-related problems. Create a backup before making repairs.
Summary
The safest way to fix a WordPress 500 error is to identify the underlying server or PHP failure before changing settings. In real troubleshooting, I start with a backup and the cPanel error log, then move through recent changes, plugins, the active theme, the .htaccess file, PHP compatibility, memory limits, debug logs, and file permissions in that order.
Do not assume that updating PHP will automatically solve the problem. Change the PHP version only when the logs or recent change history indicate a compatibility issue, and test the entire website after applying the change.
For additional WordPress troubleshooting articles, visit the SupportSolved WordPress guides.