301 vs 302 Redirect Guide
301 vs 302: which redirect to use, what each does to caching and SEO, and how to test the response code. Free instant header check, no sign-up.
DiagnoseGuides for HTTP status errors (403, 404, 5xx), redirect loops, connection failures, security headers, and open ports. Each guide includes a free check for your URL.
301 vs 302: which redirect to use, what each does to caching and SEO, and how to test the response code. Free instant header check, no sign-up.
Diagnose307 vs 308 redirects keep the request method — unlike 301/302, which turn POST into GET. Check which code your server returns. Free instant check.
Diagnose400 Bad Request? Separate malformed syntax from oversized headers or cookies, then see which layer rejected it. Free instant check, no sign-up.
Diagnose401 Unauthorized? Credentials are missing or rejected. Tell an expired token from a stripped header from a 403 in 3 checks. Free instant check, no sign-up.
Diagnose402 Payment Required means access is gated behind payment, not a crash. Tell a quota block from a frozen store in 3 checks. Free instant check, no sign-up.
Diagnose403 Forbidden? Find the cause in 4 checks: origin permissions, WAF rules, CDN access controls, routing. Free instant check, no sign-up.
Diagnose404 Not Found on a page that should exist? Trace it in 3 steps: deployment artifacts, rewrite rules, final route. Free instant check, no sign-up.
Diagnose405 Method Not Allowed? Read the Allow header to see valid methods, then tell a disabled route from a proxy or CORS block. Free instant check, no sign-up.
Diagnose406 Not Acceptable means the server can't produce a response matching your Accept header. Tell it from 415, then fix the header in 4 checks. Free instant check, no sign-up.
Diagnose407 Proxy Authentication Required means a proxy rejected your credentials, not the origin. Tell it from a 401 in 3 checks. Free instant check, no sign-up.
Diagnose408 Request Timeout: the server quit waiting for the request, not the reply. Separate a slow client from a reaped keepalive. Free instant check, no sign-up.
Diagnose409 Conflict means the request was valid but fought the resource's current state and lost. Tell a duplicate key from a stale ETag from a real race. Free instant check, no sign-up.
Diagnose410 Gone means a resource is intentionally, permanently removed - not 404. When to serve it, how Google treats each, verify in 3 checks. Free HTTP check.
Diagnose411 Length Required means the server rejected a request with no Content-Length. Buffer the body, set the length, resend. Free instant check, no sign-up.
Diagnose412 Precondition Failed means your If-Match ETag no longer matches the server version. Spot the stale write and CDN ETag trap. Free instant check, no sign-up.
Diagnose413 Payload Too Large means your upload crossed a size cap. Pin which layer set it — CDN, reverse proxy, or app — in 3 checks. Free instant check, no sign-up.
Diagnose414 Request-URI Too Large: the URL exceeded the server's request-line limit. Check query bloat, redirect loops, server config. Free instant check, no sign-up.
Diagnose415 Unsupported Media Type means the server rejects your body's Content-Type. Tell it from 400, 406, and 422, then fix it. Free instant check, no sign-up.
Diagnose416 Range Not Satisfiable means your Range header asked for bytes past the file's end. Find the real length in 3 checks. Free instant check, no sign-up.
Diagnose417 Expectation Failed means a proxy rejected your Expect: 100-continue. Resend without the header, find where the 417 starts. Free instant check, no sign-up.
Diagnose421 Misdirected Request? Separate HTTP/2 connection reuse from an origin SNI or certificate mismatch in 3 checks. Free instant check, no sign-up.
Diagnose422 Unprocessable Content means your body parsed but failed validation. Read the field errors, tell it from 400 and 415. Free instant check, no sign-up.
Diagnose423 Locked means a resource is locked against changes. Find the lock that's blocking you in 3 steps, then release it. Free instant check, no sign-up.
Diagnose424 Failed Dependency means your request relied on another that failed first. Find the real upstream error in 3 steps and confirm the status. Free instant check, no sign-up.
Diagnose425 Too Early means a server refused a TLS 1.3 early-data request over replay risk. See why it fires and how to retry safely. Free instant check, no sign-up.
Diagnose426 Upgrade Required means the server won't answer over this protocol. Read the Upgrade header, then check TLS and HTTP version. Free instant check, no sign-up.
Diagnose428 Precondition Required means the server refuses your PUT/PATCH without an If-Match ETag. GET the ETag, resend in 3 steps. Free instant check, no sign-up.
Diagnose429 Too Many Requests? Tell an origin rate limit from a CDN or WAF block in 3 checks: final status code, Retry-After, which layer responded. Free instant check, no sign-up.
Diagnose431 Request Header Fields Too Large: your headers exceeded the server limit. Fix in 3 checks: cookies, big token, server limit. Free instant check, no sign-up.
Diagnose444 Connection Closed Without Response means nginx dropped your request with no reply. Check 3 things: reachability, TLS/SNI, WAF rules. Free instant check.
Diagnose451 Unavailable For Legal Reasons: a legal demand blocked the resource. Read the Link rel=blocked-by header to find who blocked it, in 3 checks. Free instant HTTP check.
Diagnose494 Request Header Too Large is nginx's log code for oversized headers, usually a bloated cookie. Isolate client vs server. Free instant check, no sign-up.
Diagnose499 Client Closed Request means the caller quit before nginx replied. Tell a real user from a load balancer that timed out. Free instant check, no sign-up.
Diagnose500 Internal Server Error? Separate an application crash from a gateway fault in 3 checks: final status code, origin reachability, response path. Free instant check, no sign-up.
Diagnose501 Not Implemented means the server can't recognize the request method, not that it's blocked. Tell it from 405 and a proxy. Free instant check, no sign-up.
Diagnose502 Bad Gateway? Isolate the cause in 3 checks: proxy-to-upstream connectivity, service health, target routing. Free instant check, no sign-up.
Diagnose503 Service Unavailable? Pin down the cause in 4 checks: maintenance mode, overload, rate limiting, backend readiness. Free instant check, no sign-up.
Diagnose504 Gateway Timeout means the upstream was too slow, not broken. Fix it in 3 checks: upstream latency, port reachability, DNS target. Free instant check, no sign-up.
Diagnose505 HTTP Version Not Supported: a server refused your HTTP major version. Spot a malformed request line vs a proxy rewrite. Free instant check, no sign-up.
Diagnose507 Insufficient Storage means the server ran out of room — a full disk, blown quota, or dead inodes. Find it in 3 checks. Free instant check, no sign-up.
Diagnose508 Resource Limit Is Reached means your account blew its CloudLinux LVE cap — CPU, memory, or processes. Not a bug. Free instant check, no sign-up.
Diagnose509 Bandwidth Limit Exceeded: your host hit its monthly transfer cap, not a server bug. Tell it from 503, find the drain. Free instant check, no sign-up.
Diagnose511 Network Authentication Required means a captive portal, not the site, is blocking you. Isolate it in 3 checks. Free instant check, no sign-up.
DiagnoseCloudflare 520 means the origin replied with an empty or malformed response. Check crashes, oversized headers, and keep-alive timeout. Free instant check, no sign-up.
DiagnoseCloudflare Error 521 means your origin refused the connection. Fix it in 3 checks: server up, Cloudflare IPs allowed, port open. Free instant check, no sign-up.
DiagnoseCloudflare Error 522 means the connection to your origin timed out. Fix it in 3 checks: silent firewall drops, origin overload, routing. Free instant check, no sign-up.
DiagnoseCloudflare Error 524 means your origin connected but never finished the response in ~100s. Check slow endpoints, workers, async offload. Free instant check.
DiagnoseCloudflare Error 1033: the hostname routes to a Tunnel with no live cloudflared connector. Check the tunnel, route, connector. Free instant check, no sign-up.
DiagnoseCloudflare Error 1101 means your Worker threw an exception — not an origin failure. Tell it apart from 1102, 1027, and 5xx. Free instant check, no sign-up.
DiagnoseCloudflare Error 1102 means your Worker blew past its CPU or 128 MB memory limit — not a crash. Tell it apart from 1101, 1027, and 1015. Free instant check.
DiagnoseERR_BLOCKED_BY_RESPONSE: a COEP/CORP policy blocked a cross-origin resource. Check the page COEP and the resource CORP header. Free instant check, no sign-up.
DiagnoseERR_CONNECTION_CLOSED means a TCP FIN closed the connection mid-request. Check TLS, keep-alive, antivirus, and reachability. Free instant check, no sign-up.
DiagnoseERR_CONNECTION_REFUSED is an instant TCP RST, not a timeout. Fix it in 3 checks: listening port, bind address, firewall reject rules. Free instant check, no sign-up.
DiagnoseERR_CONNECTION_RESET is a TCP RST that drops an open connection. Fix it in 3 checks: server abort, middlebox, port mismatch. Free instant check, no sign-up.
DiagnoseERR_CONNECTION_TIMED_OUT means packets are silently dropped. Fix it in 3 checks: port reachability, network route, origin health. Free instant check, no sign-up.
DiagnoseERR_CONTENT_LENGTH_MISMATCH means the server sent fewer bytes than promised. Spot the proxy, disk, or worker fault in 3 checks. Free instant check, no sign-up.
DiagnoseERR_EMPTY_RESPONSE means the server closed the connection with no reply. Tell a crash from an HTTPS-port mix-up in 3 checks. Free instant check, no sign-up.
DiagnoseERR_HTTP2_INADEQUATE_TRANSPORT_SECURITY: TLS too weak for HTTP/2. Fix in 3 checks: TLS version, cipher suite, TLS inspector. Free instant check, no sign-up.
DiagnoseERR_HTTP2_PING_FAILED means the server ignored Chrome's HTTP/2 keep-alive ping. Fix in 3 checks: server load, proxy, network. Free instant check, no sign-up.
DiagnoseERR_HTTP2_PROTOCOL_ERROR: the HTTP/2 session broke after TLS connected. Fix in 3 checks: server config, headers, CDN. Free instant check, no sign-up.
DiagnoseERR_HTTP2_SERVER_REFUSED_STREAM: the server refused the request unprocessed. Check load balancer, HTTP/2 limits, and cookies. Free instant check, no sign-up.
DiagnoseERR_INCOMPLETE_CHUNKED_ENCODING means a chunked response ended before its final chunk. Backend crash, nginx temp, or proxy? Free instant check, no sign-up.
DiagnoseERR_INVALID_CHUNKED_ENCODING: the server's chunk framing is malformed, not truncated. Find double-chunking or stray output. Free instant check, no sign-up.
DiagnoseERR_PROXY_CONNECTION_FAILED means Chrome can't reach your proxy, not the website. Isolate proxy from server in 3 checks. Free instant check, no sign-up.
DiagnoseERR_QUIC_PROTOCOL_ERROR: Chrome's QUIC (HTTP/3 over UDP) connection broke. Fix in 3 checks: server, UDP port 443, middlebox. Free instant check, no sign-up.
DiagnoseERR_RESPONSE_HEADERS_TOO_BIG means Chrome hit its 256 KB response-header cap — usually runaway cookies. Find it in 3 checks. Free instant check, no sign-up.
DiagnoseERR_TOO_MANY_REDIRECTS? Locate the loop in 4 checks: origin rules, CDN settings, cookies, HTTPS enforcement. Free instant redirect trace, no sign-up.
DiagnoseERR_TUNNEL_CONNECTION_FAILED is your proxy refusing the CONNECT tunnel, not the site. Check 3 things: proxy, site status, DNS. Free instant check, no sign-up.
DiagnoseERR_UNSAFE_PORT means Chrome blocked the port, not the site. Confirm the port is open in 3 checks and move it off the blocklist. Free instant check, no sign-up.
DiagnoseError 1003 means a request hit Cloudflare by raw IP, not the hostname. Check the client, DNS proxy state, and origin exposure in 3 steps. Free instant check, no sign-up.
DiagnoseCloudflare Error 1015: a rate-limit rule tripped on your request volume. Tell it from 1020 and an origin 429 in 4 checks. Free instant check, no sign-up.
DiagnoseError 1027 means a Cloudflare Worker hit the Free plan's 100,000/day request cap. Fix it in 4 checks: status, source, fail-open, upgrade. Free instant check.
DiagnoseNmap port "filtered" vs "closed"? What each state means — RST, dropped packets, or ICMP unreachable — checked in 4 steps. Free instant port check, no sign-up.
DiagnoseHSTS preload is hard to undo. Verify 3 things first: HTTPS consistency, subdomain readiness, certificate coverage. Free instant check, no sign-up.
DiagnoseHTTP 463: an AWS ALB got an X-Forwarded-For header with 30+ IPs and refused the request. Trace the proxy chain in 3 steps. Free instant check, no sign-up.
DiagnoseHTTP Error 500.19 is IIS failing to read a config file, not your app crashing. The HRESULT hex points to bad XML, a lock, or permissions. Free instant check.
DiagnoseHTTP Error 502.5 means IIS ran but the ASP.NET Core Module couldn't start your app. Check the runtime, stdout log, and processPath. Free instant check.
DiagnoseHTTP security headers explained: HSTS, CSP, X-Frame-Options, and more, with copy-paste configs for each. Free instant header check, no sign-up.
DiagnoseYour HTTPS page loads but scripts or images are blocked as mixed content. Locate the http:// references, tell active from passive, and upgrade them safely.
DiagnoseNo 'Access-Control-Allow-Origin' header? Fix it in 3 checks: failed preflight, exact origin echoed back, and credentials mode. Free instant check, no sign-up.
DiagnosePort 443 closed? Trace it in 4 checks: external reachability, listener status, firewall rules, proxy forwarding. Free instant port check, no sign-up.
DiagnoseOpen ports you didn't expect? Review each in 4 steps: identify the service, judge exposure, close or restrict, re-scan. Free instant port check, no sign-up.
DiagnoseSlow TTFB, missing compression, weak caching? Check all 3 in one pass: response time, Content-Encoding, Cache-Control. Free instant check, no sign-up.
DiagnoseX-Robots-Tag: noindex blocking your pages? Find the injection point in 3 checks: server config, CDN rules, app middleware. Free instant check, no sign-up.
Diagnose