Troubleshooting · Practical guide

How to troubleshoot a 500 Internal Server Error

Work through error logs, PHP compatibility, permissions and recent website changes.

Quick answer

Work through error logs, PHP compatibility, permissions and recent website changes.

Start with the checks below. Each step explains what to look for and what to try next.

What a 500 error means

A 500 Internal Server Error means the server could not complete the request. The cause may be an application exception, a misconfigured rewrite rule, incompatible PHP code, file permissions or exhausted resources.

Work from the evidence

Work from the evidence

Error after a plugin or code change

Temporarily roll back the recent change using a backup or safe deployment method.

Error follows a PHP change

Check PHP compatibility and the application error log.

Only one path fails

Inspect the relevant rewrite rules and file permissions.

The entire account is affected

Check resource limits and hosting status, then contact support.

Before you continue: Keep debugging details private. Displaying raw stack traces or secrets on a public website is unsafe.

Diagnose safely

  1. Record the exact page URL and time the error occurred.
  2. Check your hosting error logs or application logs for a matching error.
  3. Review the most recent plugin, theme, code or configuration changes.
  4. Confirm that the selected PHP version and extensions meet your application’s requirements.
  5. Check file and directory permissions against your host’s recommended settings.
  6. Restore the last known good version only after backing up the current state.

Do not expose errors publicly

Avoid enabling verbose debugging on a production site. Detailed error output can reveal file paths and sensitive information. Use protected logs instead.

Getting help

Provide the timestamp, affected URL, error-log excerpt with private values removed, and changes you recently made.

How to confirm the issue is resolved

  1. Repeat the original action that produced the issue.
  2. Check the result in a second browser or network when relevant.
  3. Review logs or status messages for remaining errors.
  4. Keep a short record of what changed so it can be reversed if necessary.

If the issue persists, contact support with the exact error, time, affected domain and actions already tried—never include passwords or secret keys.

Isolate a 500 error without making it worse

Before changing plugins, permissions or configuration files, note the exact URL, time and last successful action. Check the hosting error log at the corresponding time: it often distinguishes a PHP fatal error from a permissions problem.

  • After a plugin or theme update: Consider a reversible rollback from a verified backup, or use a staging environment.
  • After changing PHP: Compare the site's application requirements with the active PHP version and extensions.
  • After moving hosting: Check the document root and configuration paths, then verify database connectivity.

Never set files or folders to world-writable permissions as a quick fix. For related symptoms, see database connection errors and changing PHP versions in cPanel.

Guidance may vary by plan, control panel version and enabled features. Review the settings available to your account before changing live services.