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.
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.
| Code | Name | What it means | Browser may cache it |
|---|---|---|---|
| 301 | Moved permanently | The page has a new address for good. Google treats the target as the one to index. | Yes, unless the response limits it |
| 302 | Found | The page is somewhere else for now. Many link shorteners use it so every tap reaches them; SendURL does. | Only if the response says so |
| 303 | See other | Go and GET this other address, usually after a form is sent. | Only if the response says so |
| 307 | Temporary redirect | Like 302, and the browser must keep the method (a POST stays a POST). | Only if the response says so |
| 308 | Permanent redirect | Like 301, and the method is kept. Common for http to https and for moved sites. | Yes, unless the response limits it |
| 200 | OK | A page answered. This is where the chain should end. | Not a redirect |
| 404 / 410 | Not found / Gone | Nothing there. On SendURL a disabled link is a 404, an expired one a 410. | Not a redirect |
| 5xx | Server error | The 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.
Read next
- 301 vs 302 for short links: how URL shorteners work, with real responses from snu.to.
- How to shorten a UTM link so the tags survive the redirect.
- Are short links safe? How to check one before clicking, QR codes included.
- UTM parameters: GA4 rules, examples and templates, for tags GA4 reads.
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.