A "500 Internal Server Error" is a generic message that means something on your website stopped the server from completing the request — but it does not say what. This article walks you through the most common causes and how to fix each one.
What a 500 error means
The 500 error is the server's way of saying "something went wrong, but I can't be more specific." The detail you need is in your error log, not on the screen the visitor sees. On shared hosting, the usual culprits are a broken .htaccess file, a bad file permission, a PHP problem, or a misbehaving plugin or theme.
You can often fix it yourself by working through the causes below in order.
Before you begin
- cPanel access, to view logs, edit files, and check permissions.
- A note of what changed recently. A 500 error almost always follows a change — a new plugin, an edited file, a settings update. That is your best clue.
Step 1: Read the error log
The error log usually tells you the exact cause.
- Sign in to cPanel.
- In the Metrics section, open Errors.
- Look at the most recent entries for messages mentioning a file name, a PHP error, or a permissions issue.
Tip: Match the timestamp of the error to when you last changed something. That usually points straight at the cause.
Step 2: Check your .htaccess file
A corrupted or misconfigured .htaccess file is one of the most common causes.
- In File Manager, open the folder for your site (usually public_html). Make sure hidden files are shown so .htaccess is visible.
- Rename .htaccess to .htaccess_old.
- Reload your site. If it works, the problem was in that file.
- For WordPress, regenerate a clean .htaccess by visiting Settings > Permalinks in the dashboard and saving.
Step 3: Check file and folder permissions
Incorrect permissions can trigger a 500 error.
- Folders should generally be set to 755.
- Files should generally be set to 644.
In File Manager, right-click a file or folder and select Change Permissions to review and correct them.
Warning: Never set files or folders to 777. It is a common "fix" suggested online, but it is a security risk and can itself cause the server to reject the request.
Step 4: Look at PHP
PHP issues are another frequent cause.
- PHP version. Software that needs a newer (or older) PHP version can fail. Check your version — see the PHP version article.
- Memory limit. A script that runs out of memory can produce a 500 error. The error log will mention a memory limit if this is the cause.
Step 5: Rule out a plugin or theme (WordPress and similar apps)
If your site runs WordPress or another application, a faulty extension is a likely cause.
- In File Manager, go to wp-content and rename the plugins folder to plugins_old. This deactivates all plugins.
- Reload your site. If it works, a plugin was the cause.
- Rename the folder back, then disable plugins one at a time to find the culprit.
- If plugins are not the cause, switch to a default theme to test the theme.
Step 6: Still not resolved?
If you have worked through the steps above and the error persists:
- Restore from a backup taken before the error started — see Restoring Your Site from a Backup.
- Contact us with the exact error log entry from Step 1 — it greatly speeds up diagnosis.
Next steps
- A database-specific error instead? See Troubleshooting 'Error Establishing a Database Connection'.
- Hit a resource ceiling? See Understanding Resource Limits & '508 Resource Limit Reached'.
- Suspect a compromise? See My Website Was Hacked: Cleanup & Recovery.
Questions? Contact Exact Hosting Support.
How helpful was this article?
Thanks for your feedback!
Do you still need help? If so please submit a request here.