← All guides

Developers · 7 min read · Updated August 23, 2026

301 vs 302 Redirects: How URL Shorteners Actually Redirect

Every short link is a redirect, yet almost nobody who shares one could say which kind. That would not matter except that the status code behind a redirect quietly decides real things: whether the browser ever contacts your server again, whether you can change the destination later, whether every click gets counted, and how search engines interpret the move.

This guide walks through what actually happens between a click and the destination, the four status codes worth knowing, why a tracking short link should use a 302 rather than the 301 that folklore recommends, and how to inspect any redirect yourself in a few seconds.

A redirect is not a special technology, just a small HTTP conversation. The browser requests the short URL. The server does not return a page; it returns a three-digit status code in the 3xx range plus a Location header naming another URL. The browser reads that header and requests the new URL, and the visitor lands on the destination. The whole exchange is one round trip and typically takes a few tens of milliseconds.

That brief stop at the server is where everything a short link does actually happens: the click gets logged, rules like scheduling or geo-routing get evaluated, and the current destination gets chosen. Which is why the status code matters, because one of them tells the browser it never needs to make that stop again.

The four status codes worth knowing

The main HTTP redirect status codes and how browsers treat them.
CodeMeaningCached by browsers?Typical use
301Moved permanentlyYes, aggressively and long termA page that has moved for good
302Found (temporary)No, checked on every visitTracking links, A/B routing, anything editable
307Temporary, method preservedNoLike 302, but POST stays POST
308Permanent, method preservedYesLike 301, but POST stays POST

The 307 and 308 variants exist because browsers historically converted POST requests to GET when following a 301 or 302. For ordinary links that people click, the method is always GET, so the practical choice collapses to 301 versus 302, and the real difference between those two is not permanence as a concept. It is caching.

You may also meet redirects done with a meta refresh tag or JavaScript. Both work, but they require downloading and rendering a page first, so they are slower, and crawlers treat them less reliably than a proper HTTP status code. Use them only where you cannot control the server response.

Caching: the difference that actually bites

When a browser sees a 301, it is allowed to remember the answer indefinitely. The next time that visitor uses the link, the browser skips your server entirely and goes straight to the remembered destination. That is the desired behavior for a genuinely moved page, and a trap for everything else: the redirect has left your control for that visitor, with no reliable way to undo it short of them clearing their cache.

Two concrete consequences for short links. First, edits stop working: repoint a 301-cached link at a new destination and returning visitors keep landing on the old one. Second, counting breaks: clicks that never reach your server cannot be logged, so a 301 short link quietly undercounts every repeat visitor.

This is why ReSlug deliberately returns a 302 for every destination redirect. Each click, first or fiftieth, makes the stop at the server, so each click is counted, and a destination edit takes effect for everyone on the very next click. The two headline features of a managed short link, accurate analytics and an editable destination, both depend on the redirect staying uncached.

The same reasoning covers dynamic QR codes: the pattern printed on the poster never changes, so the link inside it must remain the movable part. A 301 would freeze it in every phone that ever scanned it.

What it means for SEO

The old rule of thumb said 301 passes link equity and 302 does not, which made marketers nervous about anything temporary. Google has stated for years now that all 30x redirects pass PageRank, so the equity argument is largely obsolete. The remaining difference is about signals: a 301 tells search engines to index the destination and forget the old URL, while a 302 says the original URL still stands and the move may reverse.

  • Moving your own pages? Use a 301 (or 308). You want the old URL dropped from the index and its signals consolidated onto the new one.
  • Sharing short links to your pages? The 302 is correct and harmless. Search engines follow it and credit the destination; the short URL itself is not something you want ranking anyway.
  • Worried short links hide your domain? They only mask it in the address bar until the redirect resolves. Crawlers and preview bots see the final destination, and a custom domain keeps even the visible part yours.

Redirect chains: keep it to one hop

Each redirect is a full round trip, so hops stack up as visible latency, and search engines lose patience with long chains. Chains usually grow by accident: a short link points at an http:// URL that redirects to https://, which redirects to the www host, which redirects to a trailing-slash version. That is four requests to deliver one page, on every single click.

The fix is simply to shorten the final URL, not the start of the chain: paste the destination into your browser, copy the URL it settles on, and make that the target. One hop from short link to page is the healthy shape.

Inspect any redirect in ten seconds

You never have to guess what a link does. Ask for the headers and read the answer:

$ curl -sI https://go.acme.com/launch | head -3
HTTP/2 302
location: https://example.com/launch?utm_source=newsletter
cache-control: no-store

The status line tells you the kind of redirect and the location header tells you where it goes. Add -L to follow the chain to the end, counting the hops as they print. If the terminal is not your habitat, a redirect checker traces the full chain with status codes in the browser, and an HTTP header checker shows everything else the server said alongside.

Frequently asked questions

Is a 301 or a 302 redirect better for SEO?

Neither passes more ranking credit; Google treats all 30x redirects as passing PageRank. Choose by intent instead: 301 when the old URL is gone for good and should leave the index, 302 when the original URL remains the canonical one or the redirect needs to stay editable, which is the short link case.

Why does my short link return a 302 instead of a 301?

Because a 301 would be cached by browsers, letting repeat visitors skip the redirect server entirely. Clicks would go uncounted and destination edits would never reach returning visitors. A 302 keeps every click observable and every link editable, which is why ReSlug uses it for all destination redirects.

Do redirects slow down my links?

Each hop adds one network round trip, typically tens of milliseconds on a decent connection, which is imperceptible for a single hop. Chains are what hurt: three or four stacked redirects add noticeable delay on mobile networks. Point short links at the final resolved URL so the chain stays at one hop.

Are short links bad for SEO?

No. Crawlers follow the redirect and attribute the destination normally, and redirects of every 30x flavor pass PageRank. The genuine considerations are trust and continuity: a recognizable custom domain earns more clicks than a generic one, and the link should live on a domain you control.

How many redirects are too many?

Browsers give up somewhere around 20, but quality degrades far earlier. Googlebot follows up to 10 hops before flagging a redirect error, and every hop costs latency. Treat one hop as the target, two as acceptable when unavoidable, and anything longer as a chain worth flattening.

Keep reading