HTTP Status Codes FAQ
Clear answers to the most common questions about HTTP status codes, errors, and troubleshooting.
Quick Jump to Topic
Most Asked Questions
Top questions from Google "People Also Ask"
All three are success codes (2xx), but they indicate different outcomes:
The request succeeded. The resource is returned in the response body. Most common success code for GET requests.
A new resource was successfully created. Used after POST requests that create new records (users, orders, posts).
Request accepted but not yet processed. The server will handle it asynchronously. Used for queued operations like sending emails, processing uploads, or batch jobs.
Quick Rule: Use 200 for reads, 201 for creates, 202 for async operations.
Both are client error codes (4xx), but they're very different:
The server cannot find the requested resource. The page doesn't exist, was deleted, or the URL is wrong.
Common causes: Deleted pages, typos in URLs, broken links, changed URL structure
Reserved for future use in digital payment systems. Indicates payment is needed to access the resource.
Note: Most payment-related access issues use 403 Forbidden instead. 402 is rarely implemented.
Key Difference: 404 = "Page doesn't exist" | 402 = "Pay to access" (rarely used)
All three are server errors (5xx). Here's how to identify and fix each:
Generic catch-all for unexpected server-side errors.
Causes: Code bugs, database errors, corrupted .htaccess, permission issues
Fix: Check server error logs for specific error messages
Your server received an invalid response from an upstream server.
Causes: Backend/app server down, proxy misconfiguration, overloaded upstream
Fix: Verify backend servers are running, check proxy/load balancer config
Server is temporarily unable to handle requests.
Causes: Maintenance mode, traffic overload, resource exhaustion
Fix: Wait for maintenance to end, or scale up server resources
Quick Reference: 500 = Code bug | 502 = Backend down | 503 = Overloaded/Maintenance
Both are 3xx codes, but they serve different purposes:
The resource temporarily lives at a different URL. The browser should follow the redirect but keep the original URL for future requests.
Use for: A/B testing, geo-location redirects, temporary maintenance pages
The cached version is still valid. No need to download the resource again - saves bandwidth and speeds up page loads.
How it works: Browser asks "has this changed?", server replies "no, use your cache"
Key Difference: 302 = "Go to this other URL temporarily" | 304 = "Use your cached version"
This distinction is critical for SEO:
- URL has permanently changed
- Search engines transfer ~90-99% of link equity (SEO value) to new URL
- Browsers cache the redirect
- Google updates index to new URL
Use for: Domain changes, URL restructuring, merging duplicate pages
- URL has temporarily changed
- Search engines keep original URL indexed
- Minimal SEO value transferred
- Browsers don't cache (check each time)
Use for: A/B testing, seasonal content, maintenance pages
2xx Success Codes
An HTTP status code is a 3-digit number returned by a web server in response to a browser's request. It indicates whether the request was successful, redirected, encountered an error, or requires additional action.
Request succeeded AND returns content in the response body.
Request succeeded but there's intentionally no content to return. Common for DELETE requests or form submissions that don't need a response.
3xx Redirects
Best practice: 1-2 hops maximum. Each redirect adds latency and search engines may stop following after 3-5 redirects.
A redirect loop occurs when URL-A redirects to URL-B, which redirects back to URL-A. Browsers detect this and show "ERR_TOO_MANY_REDIRECTS".
Common causes:
- Conflicting rules in .htaccess or nginx config
- HTTP→HTTPS redirect conflicting with HTTPS→HTTP
- www→non-www conflicting with non-www→www
- Plugin or CMS settings creating circular redirects
How to fix:
- Clear browser cookies and cache
- Review and consolidate redirect rules
- Disable conflicting plugins one by one
- Use curl -I to trace the redirect chain
4xx Client Errors
- Check if the page exists - restore if accidentally deleted
- Set up 301 redirects from old URLs to new locations
- Fix broken internal links in navigation and content
- Update XML sitemap to remove dead URLs
- Use Google Search Console to find and prioritize high-traffic 404s
- Create a helpful 404 page with search and navigation
- Contact external sites linking to deleted pages
Pro tip: Use URL Status Checker to scan your entire site for 404s.
"Who are you?" - You need to authenticate (log in). Credentials are missing, invalid, or expired.
"I know who you are, but you can't come in." - You're authenticated but don't have permission.
Analogy: 401 = "Show me your ID" | 403 = "Your ID is valid, but you're not on the VIP list"
429 means you've hit a rate limit - the server is blocking you because you've made too many requests in a short time.
Common causes:
- API rate limiting (too many API calls)
- Bot protection / DDoS mitigation
- Login attempt limits
- Aggressive web scraping
How to fix:
- Wait for the cooldown period (check Retry-After header)
- Implement exponential backoff in your code
- Request a higher rate limit from the API provider
5xx Server Errors
500 is a generic catch-all for server-side errors. The server encountered something unexpected and couldn't complete the request.
Common causes:
- Syntax errors in server-side code (PHP, Python, Node.js)
- Database connection failures or query errors
- Insufficient server resources (memory, CPU, disk)
- Incorrect file permissions (chmod issues)
- Corrupted .htaccess file
- Plugin or extension conflicts
Always check server error logs for the specific error message.
504 means your server (acting as a gateway/proxy) didn't receive a timely response from the upstream server. The backend is taking too long.
Common causes:
- Slow database queries
- Backend server overloaded
- Network issues between servers
- Large file uploads/downloads timing out
How to fix:
- Increase timeout settings in proxy/load balancer
- Optimize slow database queries
- Scale up backend server resources
- Implement request queuing for heavy operations
SEO & Status Codes
Status codes directly impact how search engines crawl, index, and rank your website:
- 200 Signals healthy, indexable pages
- 301 Passes ~90-99% of link equity to new URL
- 302 Doesn't transfer SEO value (temporary)
- 404 Wastes crawl budget, can de-index important pages
- 5xx Prevents indexing entirely, persistent errors hurt rankings
Pro tip: Monitor status codes in Google Search Console to maintain healthy indexing.
Several ways to check status codes:
- URL Status Checker - Scan up to 100 URLs at once, free
- Browser DevTools - Press F12 → Network tab → reload page
- curl command -
curl -I https://yoursite.com - Google Search Console - Coverage report shows crawl errors
Find Broken URLs
Before Your Users Do
Scan 100 URLs instantly. Detect 404s, redirects, and server errors in seconds.
Scan My URLs Free✓ No signup required • ✓ 100 URLs per scan • ✓ Instant results