The QR code pattern itself has no expiration mechanism — it's static data, and there's no clock built into the encoding. What actually breaks over time is almost always the destination, not the code. Here's the technical distinction.
What "the code" actually is
A QR code is a grid of encoded data — nothing more. Once printed, the pattern is fixed: there's no timer, no built-in validity window, no mechanism by which the pattern itself becomes unreadable over time (short of physical damage). In that narrow technical sense, a QR code cannot expire.
Where failures actually come from
- Static codes: the destination encoded directly in the pattern — a URL — stops working if that website goes offline, the domain lapses, or the specific page gets removed. This is ordinary "link rot," the same failure mode any old bookmark can suffer.
- Dynamic codes: add a second point of failure — the redirect service itself has to keep running. If the provider hosting that redirect stops (subscription lapses, account deleted, service shuts down), the code points at a dead redirect even though nothing about the printed pattern changed.
Static vs. dynamic: a real trade-off here
A static code has one less layer that can fail — no redirect service dependency at all. A dynamic code trades that reliability for the ability to edit the destination after printing, which is usually worth it, but it does mean depending on a provider's infrastructure staying operational. See static vs dynamic QR codes for the full decision framework, and QR codes that don't expire for how specific providers' policies handle this risk.
How to keep a code's destination alive long-term
- Use a domain you control rather than a third-party shortener whose longevity you can't guarantee.
- If using a dynamic code, verify the provider's policy on inactivity limits or trial expirations before printing at scale.
- Periodically re-test old codes meant to last years — a five-year-old poster's code is worth a spot-check.
Build yours in the editor → capyqr.com
A code with a stable destination
Here's a Capy QR — the pattern never changes, and the destination stays reachable:
Frequently asked questions
- Do QR codes expire?
- The code itself — the pattern of black and white squares — never expires; it's static data with no clock attached. What can become unreachable is the destination it points to, if that destination goes offline or moves.
- Why does a QR code stop working if it never expires?
- Because the failure is almost always downstream of the code itself: a website gets taken down, a domain lapses, a dynamic redirect's hosting stops running. The printed pattern is unchanged — it's just pointing at something that no longer exists.
- Is a static QR code more permanent than a dynamic one?
- In one specific sense, yes — a static code's destination is baked directly into the pattern, so there's no separate redirect service that could go down. A dynamic code depends on an additional layer (the redirect) staying operational indefinitely.
- What's the technical difference between a code 'expiring' and its destination going dead?
- A code expiring would mean the pattern itself stops being valid data, which doesn't happen — QR encoding doesn't have a built-in time limit. "Link rot" — the destination becoming unreachable — is a completely separate, much more common failure mode, unrelated to the code's own validity.
- How can I make sure a QR code's destination stays reachable long-term?
- Use a stable, maintained domain you control rather than a third-party shortener you don't, keep any dynamic-code provider's redirect active, and periodically re-test old codes if they're meant to last years, not just weeks.
Bottom line: the code never expires — only its destination can go dead. Ready to make one built to last? Open the editor or browse more QR guides.
