Common Hosting Errors Explained:500, 503, 508 and 403
What 500, 503, 508 and 403 errors mean on a hosted website, the usual causes of each, and a step-by-step way to diagnose and fix them from your control panel.

Table of Contents
HTTP error codes tell you which part of the request failed. On hosted websites, the four you will meet most often are:
- 500 Internal Server Error: the server hit an error while running the site's code or configuration.
- 503 Service Unavailable: the server, or a part of it, is temporarily unable to handle the request.
- 508 Resource Limit Is Reached: the hosting account hit a resource limit (common on CloudLinux shared hosting).
- 403 Forbidden: the server understood the request but refuses to serve it, usually because of permissions or a security rule.
Below, each error is explained with its typical causes and the order in which to check them.
First, find the error log
Almost every fix starts with the log, which records the real reason behind a generic error page:
- cPanel → Metrics → Errors shows recent web server errors.
- An
error_logfile may appear in the site's folder, written by PHP. - WordPress can log errors to
wp-content/debug.logwhenWP_DEBUG_LOGis enabled.
Note the exact time you saw the error, then look for log entries at that time.
500 Internal Server Error
A 500 means something went wrong on the server, but the server did not say what. Common causes:
| Cause | How to recognise it | Fix |
|---|---|---|
Bad rule in .htaccess |
Appears right after editing .htaccess or installing a plugin |
Rename .htaccess to test; restore a working version |
| PHP fatal error | Log shows "PHP Fatal error" with a file path | Update or disable the plugin/theme named in the path |
| Memory exhausted | "Allowed memory size … exhausted" | Raise memory_limit modestly, find the heavy plugin |
| Wrong file permissions | Log mentions permissions or "Premature end of script" | Files usually 644, folders 755 |
| Incompatible PHP version | Started after a PHP change | Switch back, then update the incompatible code |
For WordPress-specific fatal errors, see how to fix the WordPress white screen of death. For .htaccess, see the WordPress .htaccess file.
503 Service Unavailable
A 503 means the service cannot respond right now. On hosting it usually points to:
- The PHP process pool is busy or crashed, often because of too many slow requests at once.
- Resource limits being reached (some setups return 503 rather than 508).
- Maintenance mode: WordPress shows a 503 while updating; a stuck
.maintenancefile in the site root keeps it there. - A backend service is down, such as the database server or an upstream proxy.
What to do: check whether it is constant or intermittent. Intermittent 503s under traffic point to resource or process limits; see hosting resource limits explained. A constant 503 after an update often means a leftover .maintenance file, which you can delete. If neither applies, contact your host with the time of the error.
508 Resource Limit Is Reached
This error is specific to hosting platforms that enforce per-account limits, most commonly CloudLinux. It almost always means the entry process limit was reached: too many requests were being processed by PHP at the same moment.
Typical causes and fixes:
- No page caching, so every visit runs PHP. Enable a page cache; see website caching explained.
- Slow pages that hold processes open. Find the slow plugin or query; see why is my website slow.
- Bots or attacks hitting login, search or
xmlrpc.php. Block or rate-limit them; see brute-force attack prevention. - WP-Cron running on page loads on busy sites. Replace it with a real cron job.
- Legitimate growth: if all of the above are done, you need a larger plan or cloud hosting.
Check Resource Usage in cPanel to see which limit was hit and when.
403 Forbidden
A 403 means access is refused. Common causes:
- File or folder permissions that are too strict (or too open, on some servers that refuse world-writable files).
- A missing index file, with directory listing disabled, so the server refuses to show the folder.
.htaccessrules that deny access, sometimes added by security plugins.- A web application firewall (ModSecurity or similar) blocking a request that looks like an attack, for example when saving content with code snippets.
- IP blocks in cPanel's IP Blocker or a security plugin.
- The site was suspended or a folder was locked by the host.
What to do: check permissions (files 644, folders 755 are typical), confirm index.php or index.html exists, test with .htaccess temporarily renamed, and look for a firewall rule ID in the error log. If a firewall rule blocks a legitimate action, send the rule ID and URL to your host rather than disabling the firewall.
A quick triage order
- Did anything change just before the error? Undo it first.
- Read the error log at the exact time of the error.
- Check Resource Usage for limit faults.
- Test with
.htaccessrenamed and plugins disabled (on a copy if possible). - Check permissions and PHP version.
- Contact support with the URL, time, error code and log lines.
Frequently Asked Questions
Are these errors bad for SEO?
Short, occasional errors are not a problem. Errors lasting hours or days can cause search engines to crawl less and eventually drop affected pages, so fix persistent errors quickly.
Why do I see the error but my colleague does not?
Caching, different IP addresses (one blocked by a firewall), or being logged in versus logged out can all produce different results. Test in a private window and from another network.
Should I increase the PHP memory limit to fix a 500 error?
Only if the log shows a memory exhaustion error, and only modestly. A very high limit hides inefficient code and can make resource limits worse.
Related reading
For hosting fundamentals, see what is web hosting. To catch errors before customers do, set up website uptime monitoring. If an error persists on ServerNeed hosting, contact support with the details above.
Sources
Last updated 7 October 2026



