Blog · WebJi® India

HTTP status codes

Quick answer: An HTTP status code is the three-digit line a server sends before the page body. Codes sit in five classes: 1xx informational, 2xx success, 3xx redirect, 4xx client error, and 5xx server error. Browsers follow redirects or show an error from that line. Google uses it to decide whether to index a URL or pass signals on.
Indian seller taping a packed parcel in a warehouse beside a laptop of product photos

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.

ClassMeaningWhat a browser doesWhat it means for indexing
1xxInformationalAlmost never shown. 100 Continue and 101 Switching Protocols are handshake notesNot a page you expect in search results
2xxSuccess200 OK is the normal page. 201 Created and 204 No Content are API-style replies200 on the canonical URL is what you want stored
3xxRedirectThe browser requests the Location URL. 304 means the cached copy is still freshThe target can be indexed. 304 is not a move
4xxClient errorThe request was refused or the URL is wrong. The visitor sees an error pageGoogle may drop the URL, faster for a real 410
5xxServer errorThe site failed while handling a valid requestA 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.

CodeIntentSEO effect when used honestly
301Permanent moveSignals settle on the target. Update internal links so the hop is not permanent clutter
302Temporary moveThe original URL can remain indexed. A 302 left in place for months fights that story
307Temporary, and the HTTP method stays the sameSame indexing idea as a 302. Use it when a POST must not become a GET
304Not modifiedRepeat 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.

CodeUsual causeFirst check
400 Bad RequestMalformed syntax, a broken cookie, or a header that is too largeRetry without extra headers. Shrink a huge cookie
401 UnauthorizedThe URL requires a login and none was acceptedSend valid credentials. Do not hide a public page behind this
403 ForbiddenPermissions, a deny rule, or a firewall refused an otherwise valid requestCheck file mode and any deny rule before you blame DNS
404 Not FoundNothing exists at that pathRestore the page or redirect it if the move was intentional
410 GoneThe URL was removed on purposeLeave it only when you want the address dropped
429 Too Many RequestsA rate limit trippedSlow 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.

CodeUsual causeHost or workers?
500 Internal Server ErrorPHP fatal, broken .htaccess, or permissions the script cannot useUsually the site. Read the error log before you change plans
502 Bad GatewayThe proxy got an invalid reply from PHP or another upstreamOften a crashed PHP process. A full worker pool can look the same
503 Service UnavailableOverload, maintenance, or an explicit Retry-AfterShort overload can be the pool. A deliberate maintenance page is not
504 Gateway TimeoutThe upstream did not answer before the proxy gave upYes, 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.

Need help with this?

WebJi® support does it for you — free. Talk to our Jaipur team →