Quick answer: A WordPress 500 Internal Server Error means the server could not complete a request, but the message does not identify the cause. Check recent changes, PHP error logs and account resource limits. Take a restorable backup before making changes, and test one reversible fix at a time.
Related Hex Hosting resources: WordPress hosting and migration guide.
What causes a WordPress 500 error?
The error can result from a PHP fatal error, a plugin or theme conflict, incorrect server rules, incompatible PHP versions, file permissions or hosting resource limits. The cause is not necessarily WordPress itself, and upgrading your hosting package will not repair broken code.
1. Record exactly what is broken
Try the homepage, a normal blog post and /wp-admin/ separately. Check whether the error happens only during checkout, login or form submission. Note the approximate time and any recent updates, plugin installations, imports or configuration changes. This information makes the next steps more accurate.
2. Check PHP and server error logs
In cPanel, your host may provide Metrics → Errors, PHP error logs or similar diagnostic information. Look for entries that match the affected time. A fatal error mentioning a plugin file, memory exhaustion or a permissions problem is much more useful than the generic 500 page. Keep logs private; they can expose server paths and other details.
3. Check recent plugins and theme changes
If the problem started immediately after a plugin update, test that change first. If the WordPress dashboard works, deactivate the suspected plugin temporarily and check the affected page. If the dashboard cannot load, an experienced administrator may rename the specific plugin folder through SFTP or File Manager, recording the original name first. Do not delete plugins or disable essential security and payment features casually.
For ecommerce and membership websites, use staging if possible and protect live orders and registrations. The goal is to isolate the cause, not reset the entire site.
4. Confirm the PHP version is supported
Check compatibility between WordPress, your theme, plugins and PHP. A plugin may fail after a PHP upgrade because it relies on removed or changed functions. Do not switch permanently to an unsupported PHP release merely to hide the problem. Ask your host or developer for a supported fix.
5. Investigate resource limits
If your hosting account offers cPanel Resource Usage, review CPU, memory, entry-process and I/O limits during affected times. A single spike is not proof you need a more expensive package. Our cPanel resource usage guide explains how to distinguish occasional spikes from persistent bottlenecks.
6. Check server rules and permissions carefully
A malformed .htaccess rule can trigger server errors on some configurations. Back up the file before making a targeted change, and preserve custom redirects and security directives. Avoid unsafe blanket permission changes such as setting all files to 777. Permissions and web-server configurations vary by provider.
Should you turn on WordPress debugging?
Debug logging can help locate a fault, but publishing full PHP errors to visitors can reveal sensitive system details. If you enable logging, keep the results private and disable unnecessary debugging once the problem is resolved. Ask your host for guidance if you are unsure how to configure it safely.
When should you restore a backup?
A backup is useful when a specific change is known to have broken the site and targeted recovery is not possible. Before restoring the database, account for orders, form submissions or member updates received since that backup. For a busy website, a full rollback can lose important data. See our WordPress backup guide.
Frequently asked questions
Does a 500 error mean the website has been hacked?
No. It is a general server-side response. A security problem is one possibility, not a diagnosis.
Will clearing my browser cache resolve HTTP 500?
Usually not if the server is genuinely returning 500. Server logs and recent changes are more useful.
Should I increase PHP memory immediately?
Only when logs and application requirements support it. A memory increase does not fix infinite loops or incompatible code.
What details should I send hosting support?
Share the affected URL, time of failure, recent changes, relevant error text and whether admin access works. Never send passwords.
Summary
Check the scope of the error, read logs, investigate recent changes and confirm PHP and resource compatibility. Make reversible fixes rather than several changes at once, and contact support when evidence points to a server-side restriction.
When the logs point to PHP compatibility, see how to change your PHP version in cPanel.