The short answer
A QR code itself does not have a built-in clock or expiry date. A static QR code — one where the data is encoded directly in the grid of modules — will keep scanning forever, because the pattern of black and white squares never changes.
What can “expire” is the thing the code points to. If the code encodes a URL and that web page is taken down, the QR code still scans perfectly — it just opens a 404. That is called link rot, and it is the real reason codes seem to “stop working” over time.
Static QR codes never expire
A static QR code stores its payload (a URL, WiFi credentials, a vCard, plain text) inside the code itself. There is no server, no account, and no subscription behind it. Print it on a sign today and it will still scan in twenty years — as long as the page it points to still exists.
This is why QRForge’s free generator produces static codes by default: you own the file, it works offline, and no one can ever turn it off. The only risk is the destination, not the code.
Dynamic QR codes can expire
A dynamic QR code encodes a short redirect link (like r.example.com/abc) that forwards to your real destination. The redirect is controlled by a server, so the provider can make the link expire on a date, after a number of scans, or when your subscription lapses.
Dynamic codes are useful — they let you edit the destination later and track scan analytics — but they introduce a dependency. If the provider shuts down or you stop paying, every printed code pointing at that redirect stops working. Read more in our guide to static vs dynamic QR codes.
Link rot is the real expiry
Even a static code that points at a URL can effectively “expire” when the destination disappears: a page is moved, a domain is not renewed, or a CMS migration changes every path. The code still scans, but the visitor lands on an error.
To avoid this, point static codes at stable URLs you control (a domain you own, a permalink), keep redirects in place when you restructure a site, and prefer short, meaningful URLs over long query strings that change often.
Codes that never depend on a server
Some payloads simply cannot expire. A QR code encoding WiFi credentials, a vCard contact, a calendar event, or plain text is fully self-contained — no internet, no server, no link to rot. It works for as long as someone has a camera to scan it.
If longevity matters more than analytics — say for a museum plaque, a memorial, or emergency contact info — choose a serverless, self-contained payload instead of a URL.
How to make your codes last
Point URL codes at a domain you own rather than a third-party shortener, so you control the redirect forever. Use error-correction level H so the code survives scratches and wear over years of use.
For print runs, export vector SVG so the code stays sharp at any size, and keep the destination URL short so the grid stays simple and easy to scan for the life of the code. See our QR code best practices guide for more.
Frequently asked questions
Do QR codes expire?
A static QR code never expires — the data is baked into the pattern and it scans forever. Only the destination it points to can disappear (link rot). Dynamic QR codes can expire because they depend on a redirect server.
How long does a static QR code last?
Indefinitely. A static code has no expiry date, no subscription, and no server. It will keep scanning for as long as the page or payload it encodes remains valid.
Why did my QR code stop working?
The code itself almost certainly still scans. What changed is the destination: the URL was moved or taken down (link rot), or — for dynamic codes — the redirect service expired or shut down.
Can I make a QR code expire on a date?
Only with a dynamic QR code whose redirect server enforces the expiry. Static codes have no expiry mechanism by design — that is what makes them reliable.