Skip to main content

Redirect checker: see every hop a link takes

Paste any link, short or long, and the redirect checker follows every hop to the final page, showing each status code and whether your UTM tags are still there at the end. No sign-up.

Checked from SendURL's server, so nothing opens in your browser. The server keeps no copy.

Check a link

https:// is added if you leave it out. Follows up to 10 hops.

The link is sent to SendURL's server, which follows the redirects as SendURLRedirectChecker/1.0. The server keeps no copy.

See where a short link goes before you open it

A short link hides its destination until you open it. Paste it above and the checker expands it: it unshortens bit.ly, TinyURL, snu.to or any other short URL by following the redirects on SendURL's server, so nothing loads in your browser. You get the final address with copy and open buttons, every hop on the way, and a note when the link ends on a different domain from the one it started on.

A short link is a stored code plus a redirect. Open snu.to/spring-menu and SendURL looks up spring-menu, answers 302 Found with the destination in Location, and records the click after the response has gone. Bitly answered with a 301 that browsers may keep for 90 seconds when we checked on 15 October 2026. Why shorteners pick one or the other is in 301 vs 302 for short links.

Seeing the destination is half the check; deciding whether to trust it is the other half. Are short links safe covers reading the domain and looking it up in Google's Safe Browsing site status.

Sharing the link yourself? See the preview card the final page gets in WhatsApp, Slack and LinkedIn, and if the final address ends in fbclid, gclid or other trackers, strip them with the URL cleaner first. For a link inside a QR code, the QR code scanner reads it from a photo or screenshot and traces it the same way.

What the status codes mean

Each hop answers with a three-digit status code. A 3xx code is a redirect, with the next address in its Location header; anything else ends the chain. The difference between the redirect codes is mostly about caching: a browser may remember a 301 or a 308 and skip the request next time, while a 302 or a 307 is asked again every time.

HTTP status codes in a redirect chain, what each means and whether a browser may cache it
CodeNameWhat it meansBrowser may cache it
301Moved permanentlyThe page has a new address for good. Google treats the target as the one to index.Yes, unless the response limits it
302FoundThe page is somewhere else for now. Many link shorteners use it so every tap reaches them; SendURL does.Only if the response says so
303See otherGo and GET this other address, usually after a form is sent.Only if the response says so
307Temporary redirectLike 302, and the browser must keep the method (a POST stays a POST).Only if the response says so
308Permanent redirectLike 301, and the method is kept. Common for http to https and for moved sites.Yes, unless the response limits it
200OKA page answered. This is where the chain should end.Not a redirect
404 / 410Not found / GoneNothing there. On SendURL a disabled link is a 404, an expired one a 410.Not a redirect
5xxServer errorThe server failed. Try again later; if it lasts, the link is broken.Not a redirect

For SEO, Google reads 301 and 308 as a sign that the target is the page to index, and 302 and 307 as not (Redirects and Google Search). That matters for redirects on your own site, not for a short link in a post or an email.

Check redirects with curl

From a terminal, curl does the same job. -I asks for headers only, -L follows each redirect, and -s hides the progress bar. Keep the status lines and the location lines:

curl -sIL https://bit.ly/example | grep -iE '^(HTTP|location)'

Each HTTP/… line is a hop and each location is where it sends you; the last status line is the page. curl doesn't point out lost UTM parameters, so read the last location for them yourself. Where the tags belong in the first place is in how to shorten a UTM link and the UTM parameters guide; the free UTM builder tags the final URL for you.

Limits

The checker follows HTTP redirects only, up to 10 hops, 5 seconds per hop. It reaches public addresses on the standard web ports (80 and 443): localhost, private networks and cloud metadata addresses are refused, even behind a public domain name. Each visitor gets 10 checks a minute. It shows where a link goes; it doesn't rate the page as safe or unsafe.

The link is sent to SendURL's server, which neither stores nor logs the link or the result. The sites along the way see a request from SendURL's server with no cookies, not from you. Like curl, each check is a real request, so a shortener that counts every request (SendURL does) records it as a click.

Frequently asked questions

How do I check where a short link goes?

Paste it into the redirect checker above and press Check. It requests the link without opening it in your browser, reads the Location header the server sends back, and repeats that for each hop until a page answers, which is what a URL expander or unshorten tool does. From a terminal, curl -sIL followed by the link prints the same hops.

What is the difference between 301, 302, 307 and 308 redirects?

301 and 308 say the page has moved for good, so browsers may cache them; 302 and 307 say the move is temporary, so the browser asks again next time. 307 and 308 also keep the request method, which makes no difference for a link someone taps. More in 301 vs 302 for short links.

Why did my UTM parameters disappear?

A redirect on the way dropped the query string: an HTTP redirect doesn't carry it over unless the server writes it into the Location header. The usual causes are a forced www or https hop, an old page forwarding to a new one, or tags added to a short link instead of its destination. The checker names the hop where they went missing; tag the final URL and shorten that. More in how to shorten a UTM link.

How many redirects is too many?

One or two is normal: a short link, then perhaps an http to https hop. Each further hop is another round trip before the page starts loading, so the checker flags more than 3, and browsers give up at around 20. Link to the final URL to cut them out.

Does it follow JavaScript and meta refresh redirects?

It follows HTTP redirects, the 3xx answers. If the final page has a meta refresh tag, or a one-line JavaScript redirect near the top of its HTML, the checker points it out but doesn't follow it.

Does checking a link count as a click?

Often, yes, because the checker sends a real request to each address, as curl would. SendURL counts it: checking a snu.to link adds one click, recorded with the user agent SendURLRedirectChecker/1.0. Other shorteners decide for themselves whether to count automated requests.

Sources: RFC 9110 sections 15.4.2, 15.4.3, 15.4.8 and 15.4.9; Google Search Central, Redirects and Google Search; Google's Safe Browsing site status. Checked 15 October 2026.