Auditing an SEO migration
Each redirect hop loses a little authority and adds latency. Chains of three or more usually mean rules were layered over time rather than consolidated.
Follows an HTTP redirect chain and shows every hop with status and location.
—Follows an HTTP redirect chain and shows every hop with status and location.
https://yas.sh/abc
1. 302 → /r/xyz 2. 301 → https://site.example Final: 200
Each hop is listed with its status.
Every 3xx hop plus the final status reveals the full path.
Your input is sent to YAS infrastructure because the tool requires server-side processing or public network queries. Input is not stored.
curl -X POST "https://yas.sh/api/v1/tools/redirect-tracer" \
-H "Content-Type: application/json" \
-d '{"url":"https://example.com"}'const res = await fetch("https://yas.sh/api/v1/tools/redirect-tracer", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"url": "https://example.com"
}),
});
const data = await res.json();import requests
r = requests.post("https://yas.sh/api/v1/tools/redirect-tracer", json={"url":"https://example.com"})
data = r.json()| Field | Type | Required | Description |
|---|---|---|---|
| url | string | Yes | http/https URL |
{ "hops": [{ "hop":1, "status":302, "url":"...", "location":"..." }], "finalUrl": "...", "finalStatus": 200, "redirectCount": 1 }Follow an HTTP redirect chain and report each hop's status and URL.
400 VALIDATION_ERROR — invalid input or unsupported option.413 PAYLOAD_TOO_LARGE — input exceeds the 64 KB limit.429 RATE_LIMIT_EXCEEDED — rate limit exceeded (60 req/min).The tracer issues a request and follows each Location header in turn, recording the status code, target and headers at every hop until it reaches a non-redirect response or a hop limit. Status codes carry distinct semantics: 301 and 308 are permanent, 302 and 307 temporary, and the difference between the 30x pairs is method preservation — 301/302 historically allowed a POST to become a GET, while 307/308 require the original method and body to be preserved.
Beyond HTTP redirects, a chain can continue through mechanisms the tracer reports differently or not at all: a meta refresh in the HTML, a JavaScript location assignment, or an HSTS upgrade applied by the browser before any request is made. A chain that looks short from the server side can therefore be longer in a real browser.
Each redirect hop loses a little authority and adds latency. Chains of three or more usually mean rules were layered over time rather than consolidated.
A loop between www and apex, or between HTTP and HTTPS, produces an error page that gives users no useful information. The trace shows the cycle.
The correct order is HTTP→HTTPS on the same host, then any host canonicalisation. The reverse sends one request in cleartext unnecessarily.
Marketing links often pass through several trackers, each adding latency and each a potential point of failure.
What this tool deliberately does not do, and where it will disagree with other implementations.