Use HTTP Status Code Checker

Enter your data below to use the HTTP Status Code Checker

📌 Try these examples:
RESULT

Last updated

HTTP Status Code Reference

The HTTP Status Code Checker tests URLs and returns their status codes. Here is a complete reference of all status code categories:

/* 2xx — Success */
200 OK              → Request succeeded, response body contains the resource
201 Created         → Resource created successfully (POST/PUT)
204 No Content      → Success, no response body (DELETE, some PUT)
206 Partial Content → Partial resource returned (range requests)

/* 3xx — Redirection */
301 Moved Permanently  → Permanent redirect — passes link equity (SEO)
302 Found              → Temporary redirect — does NOT pass link equity
303 See Other          → Redirect to GET after POST (form submission)
304 Not Modified       → Cached version is still valid (conditional request)
307 Temporary Redirect → Temporary redirect, preserves HTTP method
308 Permanent Redirect → Permanent redirect, preserves HTTP method

/* 4xx — Client Errors */
400 Bad Request        → Invalid request syntax or parameters
401 Unauthorized       → Authentication required
403 Forbidden          → Authenticated but not authorized
404 Not Found          → Resource does not exist
405 Method Not Allowed → HTTP method not supported for this endpoint
409 Conflict           → Request conflicts with current state
410 Gone               → Resource permanently removed (better than 404 for SEO)
422 Unprocessable      → Validation errors in request body
429 Too Many Requests  → Rate limit exceeded

/* 5xx — Server Errors */
500 Internal Server Error → Unhandled server exception
502 Bad Gateway           → Upstream server returned invalid response
503 Service Unavailable   → Server temporarily down (maintenance/overload)
504 Gateway Timeout       → Upstream server timed out

Checking Redirect Chains

The checker follows all redirects and shows each step in the chain. Here are common redirect patterns:

/* HTTP to HTTPS redirect (correct) */
Step 1: GET http://example.com/page
        → 301 Moved Permanently
        → Location: https://example.com/page

Step 2: GET https://example.com/page
        → 200 OK
        → Total redirects: 1 ✓

/* www to non-www redirect (correct) */
Step 1: GET https://www.example.com/page
        → 301 Moved Permanently
        → Location: https://example.com/page

Step 2: GET https://example.com/page
        → 200 OK

/* Redirect chain (too many hops — bad for SEO) */
Step 1: GET http://www.example.com/old-page
        → 301 → https://www.example.com/old-page

Step 2: GET https://www.example.com/old-page
        → 301 → https://example.com/old-page

Step 3: GET https://example.com/old-page
        → 301 → https://example.com/new-page

Step 4: GET https://example.com/new-page
        → 200 OK
        → ⚠ 3 redirects — consolidate to 1 for better performance

/* Redirect loop (error) */
Step 1: GET https://example.com/a → 302 → /b
Step 2: GET https://example.com/b → 302 → /a
Step 3: GET https://example.com/a → 302 → /b
        → ✗ Redirect loop detected — browser will show ERR_TOO_MANY_REDIRECTS

SEO Implications of Status Codes

Different status codes have different effects on search engine indexing and link equity:

/* 301 vs 302 — critical SEO difference */

301 Permanent Redirect:
  URL: /old-page → /new-page
  Effect: Link equity (PageRank) passes to /new-page
  Indexing: Search engines update their index to /new-page
  Use when: Page has permanently moved

302 Temporary Redirect:
  URL: /sale → /products?discount=true
  Effect: Link equity stays on /sale
  Indexing: Search engines keep /sale in index
  Use when: Redirect is genuinely temporary

/* 404 vs 410 — removal signals */

404 Not Found:
  Effect: Search engines continue crawling periodically
  Removal: Slow — may take weeks/months to deindex
  Use when: Page might come back

410 Gone:
  Effect: Search engines stop crawling immediately
  Removal: Fast — deindexed quickly
  Use when: Page is permanently removed

/* Soft 404 — common problem */
Status: 200 OK
Content: "Page not found" or "No results"
Problem: Search engines index the error page as real content
Fix: Return 404 or 301 redirect to relevant page

Batch URL Status Check Results

The checker can test multiple URLs at once. Here is a sample batch check output for a site migration:

/* Batch check results — post-migration audit */
URL                                    Status  Redirect Target                    Time
-------------------------------------  ------  ---------------------------------  -----
https://example.com/                   200     -                                  245ms
https://example.com/about              200     -                                  198ms
https://example.com/old-blog           301     https://example.com/blog           89ms
https://example.com/products/widget-1  200     -                                  312ms
https://example.com/products/widget-2  404     -                                  156ms  ⚠
https://example.com/contact            200     -                                  201ms
https://example.com/old-contact        302     https://example.com/contact        78ms   ⚠
https://example.com/sitemap.xml        200     -                                  134ms
https://example.com/admin              401     -                                  167ms

Issues found:
⚠ /products/widget-2 returns 404 — check if redirect needed
⚠ /old-contact uses 302 (temporary) — should be 301 (permanent)

API Status Code Best Practices

RESTful APIs should return semantically correct status codes for each scenario:

/* GET /users/123 */
200 OK          → User found, returned in body
404 Not Found   → User 123 does not exist
401 Unauthorized → No auth token provided
403 Forbidden   → Token valid but no permission to view this user

/* POST /users */
201 Created     → User created, Location header points to new resource
400 Bad Request → Missing required fields or invalid format
409 Conflict    → Email address already registered
422 Unprocessable → Validation failed (email format invalid, etc.)

/* DELETE /users/123 */
204 No Content  → Deleted successfully
404 Not Found   → User 123 does not exist
403 Forbidden   → Cannot delete this user (e.g., last admin)

/* Common mistakes */
❌ Returning 200 for all responses including errors
❌ Using 404 for "no results" in a list endpoint (use 200 with empty array)
❌ Using 403 when 401 is correct (not authenticated vs not authorized)
❌ Using 500 for validation errors (use 400 or 422)

/* Response time benchmarks */
< 100ms  → Excellent
100-300ms → Good
300-1000ms → Acceptable
> 1000ms  → Needs optimization (check database queries, caching)

Frequently Asked Questions

Simply enter your data, click the process button, and get instant results. All processing happens in your browser for maximum privacy and security.

Yes! HTTP Status Code Checker is completely free to use with no registration required. All processing is done client-side in your browser.

Absolutely! All processing happens locally in your browser. Your data never leaves your device, ensuring complete privacy and security.