Published September 2, 2026

301 against 302 for short links

A permanent redirect is cached by the browser and can strand a printed link on an old destination. What a 302 with no-store costs, what it buys, and where a short link sits in a site's SEO.

The two status codes look interchangeable in a routing table and are not interchangeable in a browser.

A 301 says the move is permanent. A browser is entitled to remember it and to stop asking: a later visit to the same short address can go straight to the remembered destination without a request reaching the shortener at all. A 302 says the move is for now, and the browser asks again next time.

For a shortener, that difference decides whether a link is an address or a decision.

What a cached permanent redirect actually breaks

Three things, all of them silent.

An edited destination never reaches anyone who followed the link before the edit. The dashboard shows the new destination, the link works correctly for anyone new, and a whole cohort of earlier visitors keeps arriving at the old page with no request that anyone here could see.

A paused or expired link keeps working for those same visitors. Switching a link off cannot reach a browser that has stopped asking.

And the click stops being countable. A redirect served out of a local cache is not a request, so it appears in no report. The number quietly drifts down while the traffic does not.

None of these produce an error. That is what makes them expensive: there is nothing to notice, and nothing to fix afterwards for the visitors already affected.

What uhm.co sends

Every live short link answers 302 Found with Cache-Control: no-store. The status code says the destination may change; the header says do not keep a copy of this response at all. Together they mean every visit asks again.

The click record is written before that response is sent, not by a script on the destination page. The order in that figure is the product's own rule: nothing is deferred until after the response, because a process that has already replied has no obligation to still be alive.

The cost of this design is one request per click, forever. That is also the thing being bought. A destination that can be edited after publication and a click that can be counted at all are the same property seen from two sides.

Preview without following

A short link hides its destination, which is a real objection to the whole category and not one a shortener can answer by asking to be trusted.

Adding + to the end of any short link on this service shows where it goes without going there. It works for anyone holding the link, not only for the account that created it, which is the only version of the feature that is worth anything: the person who needs to check a link is rarely the person who made it.

Where a short link sits in SEO

A short link is not a canonical URL and should not be used as one.

The destination page is the thing search engines should index, and the canonical tag on that page is what settles it. A short link is for sharing, for print, for a channel with a character limit, and for measuring what arrived. Substituting one for the destination's own address in a sitemap, in internal navigation, or in a canonical tag creates an unnecessary hop for both people and crawlers.

That is not an argument against short links in public places. It is an argument for keeping the two jobs separate: the destination address is the page's identity, and the short link is a labelled door into it.

For the exact rules on what counts as a click once someone comes through that door, the methodology page has them in full.

All posts