The QR longevity stack
Treat a working QR code as a chain of six dependencies. Every one of them must hold. When someone says a code “expired,” they have almost always observed one specific layer failing — and which one determines whether you reprint, edit, or call your registrar.
- 1The printed patternDamage, cropping, undersizing, weak contrast, ink spread, difficult surfaces
- 2The camera reading itDistance, lighting, glare, angle, a quiet zone crowded by other artwork
- 3The managed redirectDynamic codes only — paused, deactivated, or the service unavailable
- 4The domain and its routingDomain expiry, DNS changes, a restructured URL path
- 5The destination page404, deleted content, a login wall, a redirect loop, a mobile failure
- 6Provider, account and plan stateDynamic codes only — account status and the provider's current terms
Do static QR codes expire?
No — not because time passed. A static code stores its final data inside the pattern. If it encodes https://example.com/menu, it will encode exactly that string for as long as the ink survives.
What ends is everything the string depends on. The domain can lapse. The path can be deleted in a site migration. The server can go offline. The page can move behind a login. None of those events touch the QR code, and all of them look, to the person holding the phone, like the code stopped working.
So “static QR codes never expire” is true about the pattern and misleading about the experience.
Do dynamic QR codes expire?
A dynamic code can stop working, and the reason is the same thing that makes it useful. The printed pattern points at a managed redirect rather than at the destination, so the destination becomes editable — and the redirect becomes a dependency.
- Printed pattern
- Managed redirect
- Current destination
A dynamic code fails when the middle box does, which can happen because:
- the code was deliberately paused or deleted;
- the account or subscription changed state;
- the plan’s active-code allowance was exceeded;
- the redirect domain stopped resolving;
- the provider changed the service, or became unavailable;
- the destination behind it broke, which is a layer-5 problem wearing a layer-3 costume.
Expiration and failure are not the same thing
People describe every broken code as expired. Several genuinely different failures produce that identical experience, and they have different fixes.
| Symptom | Layer that failed | Code still decodes? | Dynamic only? | Reprint likely? |
|---|---|---|---|---|
| Camera cannot detect the code at all | Print or readability | No | No | Usually |
| Decodes, but the page returns 404 | Destination | Yes | No | No, if you can repoint it |
| Decodes, but reaches an outdated campaign | Destination | Yes | No | No, if the code is dynamic |
| Decodes, but nothing resolves | Domain or DNS | Yes | No | Depends on domain control |
| Decodes, redirect returns 404 | Redirect paused or removed | Yes | Yes | No, if it can be reactivated |
| Decodes, but opens the wrong destination | Wrong record edited, or codes swapped in production | Yes | No | Only if the mapping is unrecoverable |
| Worked yesterday, not today, nothing changed | Provider, account or plan state | Yes | Yes | Depends on the provider |
What we tested
We ran the dynamic-code lifecycle against the live product to see exactly which states stop a redirect and whether any of them touch the printed artwork.
| Action | Same QR image? | Observed result |
|---|---|---|
| Initial request | — | HTTP 302 to the original destination |
| Destination changed in the dashboard | Hash identical | HTTP 302 to the new destination |
| Code paused | Hash identical | HTTP 404 — the redirect stops immediately |
| Code reactivated | Hash identical | HTTP 302 — the redirect resumes |
How we tested: We created a dynamic QR code in VastQR and recorded a SHA-256 hash of its generated image. We then requested its short link at four stages: as created, after changing the destination from the dashboard without regenerating the code, after pausing it, and after reactivating it. Destinations were our own public pages.
What this does not prove: This is observed behaviour on one date, on one account, on the current plan. It demonstrates that pausing stops a redirect and reactivating restores it without new artwork. It is not a statement about what happens after cancellation, at an account's active-code limit, or at any future date — none of which this test exercised.
The hash never changed. A printed code and its destination state are genuinely separate things, which is the whole basis for managing printed assets after they ship.
Does a broken QR code mean a reprint?
Not automatically. Identify the layer first; most software layers cost nothing to fix.
| Situation | Reprint? |
|---|---|
| Dynamic code, destination changed | No |
| Dynamic code paused, then reactivated | No |
| Dynamic code, destination returns 404 | No — fix or repoint the destination |
| Static code, destination URL changed, you control the old URL | Usually no — redirect it yourself |
| Static code, destination URL changed, you do not control it | Usually yes |
| The printed code is physically damaged | Yes |
| The code is too small for its viewing distance | Yes |
| The domain behind the code has been lost | Depends on whether you can recover it |
Reducing broken-QR risk before a large print run
Almost every expensive QR failure was decided months earlier, at the point someone chose a code type and approved artwork.
- Could this destination plausibly change during the asset's life? If so, the code should be dynamic.
- Do you control the final domain, and is its renewal on somebody's calendar?
- Do you know, for certain, whether each printed code is static or dynamic?
- Have you tested the destination on a phone — HTTPS, no login wall, no redirect chain, fast?
- Have you scanned a printed proof at the real viewing distance, not just the on-screen artwork?
- Is the quiet zone intact and the contrast strong at final size?
- Can you map every printed asset back to its source row?
- Do you know what your provider does to a live redirect when the plan or account changes?
- Is there a date in the calendar to re-scan long-lived assets — signage, packaging, equipment labels?
Can you make a QR code last forever?
It is more accurate to say you can design a QR workflow for longevity. Any absolute promise has to cover paper, camera, redirect, domain, hosting, page and provider — and nobody controls all seven indefinitely.
What a durable setup actually looks like:
- choose dynamic when the destination might change, so a reprint is never the only remedy;
- keep the destination on a domain you own, so layer 4 is yours rather than rented;
- know your provider’s rules before you commit them to physical assets;
- keep the source data that maps rows to printed codes;
- re-scan high-value assets on a schedule instead of assuming.
Printing something that has to outlive its landing page
Prepare destinations in a CSV, validate the batch before you pay, then create dynamic codes whose destinations you can change without touching the print.