# QR code opens the wrong link or a 404

> Decode the code first to see the string it actually contains. If the string is right, the problem is the destination: a deleted page, a retired shortener, a DNS filter, or a captive portal. If the string is wrong, the code was generated from wrong input or was tampered with physically.

Source: https://useqr.app/docs/troubleshooting/qr-code-opens-wrong-link · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Step one: read the string

Use our [scanner](/scan) to decode the code and display the raw text. Everything else follows
from what that string is.

## If the string is wrong

**The code was generated from wrong input.** A typo, a missing `https://`, a URL copied with
trailing whitespace or an invisible character. Regenerate from a copied link, never a typed
one.

**The code was tampered with.** A sticker over the original — the standard
[quishing](/glossary/quishing) attack, common on parking meters, payment standees and
restaurant tables. Feel the surface for a raised edge. If it is a payment code, check the
payee name your app shows against the printed one.

**A design tool mangled it.** Codes that have been traced, redrawn, mirrored or flattened
with transparency can decode to garbage. Regenerate rather than repair.

## If the string is right but nothing loads

| Symptom | Cause | Fix |
|---|---|---|
| 404 | Page deleted or site restructured | Add a redirect at the old path |
| Domain not found | Domain lapsed | Renew, or reprint |
| Shortener error page | Service retired or link pruned | Never use third-party shorteners on print |
| Blocked by network | Corporate DNS or safe-browsing filter | Use your own domain, not a shortener |
| Redirect loop | Misconfigured redirect chain | Check for a rule pointing at itself |
| A login page | Captive portal on guest WiFi | Whitelist the domain or advise cellular |
| Store page instead of the app | Store link where a deep link was intended | Use a Universal Link / App Link |

## The lesson for next time

Print codes should point at a **stable path on a domain you own**, and that path should have
a permanent redirect you have documented. The most common cause of a dead printed code is not
the QR standard failing — it is a site rebuild years later removing a redirect nobody
recognised.

## FAQ

### How do I see where a QR code goes without opening it?
Decode it with a scanner that displays the text rather than following it. Both iOS and Android also show the URL on a preview banner before you tap.

### Why does my QR code work at home but not at the office?
A corporate DNS or web filter is blocking the destination — most often a third-party link shortener, which filters commonly block wholesale. Use your own domain.

### My printed code goes somewhere I did not choose. What happened?
Either the code was generated from wrong input, or someone has physically pasted a different code over yours. Check the surface for a sticker edge, especially on payment or parking codes.

### How do I stop a printed code from 404ing later?
Point it at a stable path on your own domain and keep a permanent redirect there. Document the redirect so it survives future site rebuilds.

## Try it

- https://useqr.app/scan
- https://useqr.app/validate
- https://useqr.app/url
