What are HTTP status codes and how do browsers and search engines interpret the 5 classes (1xx–5xx)?
Every HTTP response starts with a status line. The first digit is the class, and the other two name the case. Browsers treat 2xx as a page they can show, 3xx as a request for another URL, and 4xx or 5xx as a failure. Search engines read the same line. The class does not name the broken line of code.
| Class | Meaning | What a browser does | What it means for indexing |
|---|---|---|---|
| 1xx | Informational | Almost never shown. 100 Continue and 101 Switching Protocols are handshake notes | Not a page you expect in search results |
| 2xx | Success | 200 OK is the normal page. 201 Created and 204 No Content are API-style replies | 200 on the canonical URL is what you want stored |
| 3xx | Redirect | The browser requests the Location URL. 304 means the cached copy is still fresh | The target can be indexed. 304 is not a move |
| 4xx | Client error | The request was refused or the URL is wrong. The visitor sees an error page | Google may drop the URL, faster for a real 410 |
| 5xx | Server error | The site failed while handling a valid request | A short outage can be temporary. A long one can drop URLs |
Read the code on the exact URL, not on a pretty error template that still returns 200. That mismatch is a soft error: the visitor sees a failure and the status line says success. This hub summarises the classes. The fix for a single code lives on the guide linked under that code.
How do 301 permanent redirects, 302/307 temporary redirects, and 304 Not Modified responses affect SEO?
A 301 says the URL has moved for good, so signals should settle on the target. A 302 or 307 says the move is temporary, and the original URL may stay indexed. A 304 is not a redirect. It says the cached copy is still valid, so the body is not sent again. They only describe the URL.
| Code | Intent | SEO effect when used honestly |
|---|---|---|
| 301 | Permanent move | Signals settle on the target. Update internal links so the hop is not permanent clutter |
| 302 | Temporary move | The original URL can remain indexed. A 302 left in place for months fights that story |
| 307 | Temporary, and the HTTP method stays the same | Same indexing idea as a 302. Use it when a POST must not become a GET |
| 304 | Not modified | Repeat fetches stay cheap. The URL is not removed and not redirected |
Google can treat a long-lived 302 as a permanent move, which is why the code you send should match the real plan. Chains of three or four hops waste crawl. Point the old URL straight at the final one. The line-by-line file change for a permanent move is how to create a 301 redirect in .htaccess. This page does not repeat that procedure.
What causes 4xx client errors (400, 401, 403, 404, 410, 429) and how do you fix them?
A 4xx code means the server will not complete this request. The URL, the login, the permission, or the request rate is the problem, not a dead PHP process. Fix the request or the rule that refuses it. Do not restart the whole server. The full fix, where one exists, is on the linked guide.
| Code | Usual cause | First check |
|---|---|---|
| 400 Bad Request | Malformed syntax, a broken cookie, or a header that is too large | Retry without extra headers. Shrink a huge cookie |
| 401 Unauthorized | The URL requires a login and none was accepted | Send valid credentials. Do not hide a public page behind this |
| 403 Forbidden | Permissions, a deny rule, or a firewall refused an otherwise valid request | Check file mode and any deny rule before you blame DNS |
| 404 Not Found | Nothing exists at that path | Restore the page or redirect it if the move was intentional |
| 410 Gone | The URL was removed on purpose | Leave it only when you want the address dropped |
| 429 Too Many Requests | A rate limit tripped | Slow the client. Do not treat it as a missing page |
Permission and firewall cases for 403 are in the 403 Forbidden error fix. A WordPress permalink or slug problem that returns 404 is in WordPress 404 errors. Other platforms still use the same 404 meaning. A 410 is stronger than a 404 because it says the removal is deliberate. A pretty 404 template that returns 200 is still a soft 404.
What causes 5xx server errors (500, 502, 503, 504) and when is your web host or PHP worker limit to blame?
A 5xx code means the server failed on a request. A 500 is often the application, a PHP fatal or a bad rewrite. A 502 or 504 is often a proxy waiting on a slow or dead upstream. A 503 means the service is unavailable. When every PHP worker is busy, new requests queue and the edge can time out.
| Code | Usual cause | Host or workers? |
|---|---|---|
| 500 Internal Server Error | PHP fatal, broken .htaccess, or permissions the script cannot use | Usually the site. Read the error log before you change plans |
| 502 Bad Gateway | The proxy got an invalid reply from PHP or another upstream | Often a crashed PHP process. A full worker pool can look the same |
| 503 Service Unavailable | Overload, maintenance, or an explicit Retry-After | Short overload can be the pool. A deliberate maintenance page is not |
| 504 Gateway Timeout | The upstream did not answer before the proxy gave up | Yes, when workers or a slow database hold every slot |
On cPanel hosting, start a 500 from the 500 internal server error in cPanel log steps. A dead upstream is the 502 Bad Gateway fix. An intentional or overloaded outage is the 503 Service Unavailable fix. A proxy that waited too long is the 504 Gateway Timeout fix. Those guides hold the procedure. A sale that fails only at peak, while quiet hours return 200, points at workers or the database, not at a missing permalink.

