On this page9 sections
- 01There Is No Expiry Field in a QR Code
- 02What a Decoder Actually Reads Back
- 03What Actually Stopped Working
- 04The Clearest Public Example: goo.gl
- 05How to Tell Which One You Have, in Ten Seconds
- 06What Each Part of the Chain Actually Lasts
- 07Printing a Code That Still Works in Ten Years
- 08What QRMakery Makes Today
- 09Common Questions

There Is No Expiry Field in a QR Code
Open the specification and look for the place a date would go. There is not one. A QR symbol is defined by ISO/IEC 18004, and everything inside it does one of four jobs: it carries your data, it carries error-correction codewords that rebuild that data when part of the symbol is damaged, it carries format and version information so a scanner knows how to read the rest, or it is a fixed pattern the scanner uses to find and orient the code.
None of those is temporal. There is no field for an issue date, an expiry date, a scan budget or a licence key, because Denso Wave developed the format in 1994 to speed up scanning on a factory floor, where a reader could not count on a network. A thing that has to work offline cannot depend on asking anyone for permission.
That property never went away. Encoding a code still needs no server at all, which is a claim worth measuring rather than repeating: the offline generator on this site watches its own network activity while it builds a code and publishes every request it sees, including its own.
So the question “do QR codes expire” has the same shape as asking whether a printed word expires. The ink does not stop meaning what it meant. What changes is the world the word points at.
What a Decoder Actually Reads Back
That is easy to assert, so here it is demonstrated instead. Both codes below were encoded by this site’s own generator when this page was built, then rasterised and read back with a QR decoder. The second line under each one is what the decoder returned, not what we fed in.
- Encoded
- https://example.com/menu
- Read back by a decoder
- https://example.com/menu
Only whoever controls example.com. No third party is consulted when the code is scanned, so there is no account to lapse.
- Encoded
- https://prv.example/7Kd2
- Read back by a decoder
- https://prv.example/7Kd2
The provider, at any time, for any reason. The printed symbol still decodes perfectly; the redirect behind it is what stops answering.
Both are static symbols. Both are permanent. The only difference is whose address is written inside, and that single difference decides who is able to switch the code off. The first code depends on one domain renewal. The second depends on a company continuing to answer for a four-character slug, which is a promise nobody has made you in writing.
What Actually Stopped Working
Ranked by how often each one turns out to be the answer. That ordering is our judgement from the failure modes the tool is built to catch, not a measurement, and the fifth is on the list only because it is what people mean when they say a code “stopped working”.

| What happened | How you recognise it | Who controls it | What prevents it |
|---|---|---|---|
| A dynamic code's redirect was switched offThe code encodes a provider's short URL, and the provider stopped answering for that slug because a trial ended, an invoice failed or the account was closed. | The code scans fine and opens a provider-branded page saying the link is inactive, expired or upgraded away. | A vendor | Encode a short URL on a domain you own and put the redirect behind it, so the only account that can switch it off is yours. |
| The destination stopped existingThe URL inside the code is still read perfectly, but the page behind it was deleted, the site was restructured without redirects, or the domain lapsed. | The scanner opens a browser and you get a 404, a parked domain, or somebody else's site. | You | Point printed codes at a stable path you promise not to move, and add a redirect when you do move it. |
| A third-party URL shortener shut downThe code encodes someone else's shortening service, and that service was retired or pruned its old links. | Every code made in the same batch fails at once, including ones whose destinations are still live. | A vendor | Never put a free shortener inside anything you print. It is a dependency you cannot renew. |
| The network or contact details changedA Wi-Fi code still decodes to the same SSID and password, but the network was renamed, the password was rotated, or the person on the vCard changed jobs. | The phone offers to join a network that is not there, or saves a contact whose number bounces. | You | Treat credentials and contact details as things that change. Reprint on rotation, or point at a page you can edit instead. |
| The printed code was damaged or badly reproducedNothing expired at all. The symbol was scuffed, folded, cropped through its quiet zone, printed too small, or photocopied until the modules bled together. | One copy fails and another copy of the same code, printed elsewhere, still works. | Nobody | Print at or above the minimum width for that specific code, keep the quiet zone, and raise the error-correction level before you shrink it. |
Notice which rows carry the vendor chip. Those are the two where the code stopped working because somebody who is not you made a decision, and they are also the two that a different choice at design time would have prevented entirely.
The Clearest Public Example: goo.gl
If you want one example of how this plays out at scale, Google retired its own URL shortener. Links created with goo.gl were scheduled to stop returning a response after 25 August 2025. Google then narrowed the plan so that only links showing no activity in late 2024 were deactivated, and everything still in use was preserved.
Read that second sentence again, because it is the whole argument. The outcome was better than first announced, and it was still decided entirely by the company that owned the redirect, using a rule about your traffic that you were not consulted on. Anything printed with a goo.gl link in the middle sat in that decision, and the QR codes among them would have failed while decoding perfectly.
Google is about as durable a counterparty as exists, and the service was free. A QR provider on a monthly plan is a considerably shorter bet. This is not an argument that redirects are bad. It is an argument that a redirect is a subscription, and you should know when you are printing one into something you cannot recall.
How to Tell Which One You Have, in Ten Seconds
Before assuming anything, scan your own code with a phone and read the URL in the preview banner, without tapping it. That string is the entire contents of the symbol, and it tells you who is in charge.
The code is static and nobody can switch it off. If scanning it lands on an error, the destination is what broke, and you can fix that from your own server without touching anything you printed.
A third party is in the middle. The code lasts as long as they keep answering for that slug, and getting the destination back means logging into whichever account created it.
The difference between the two is worth understanding before the next print run rather than after it, and it is the subject of static versus dynamic QR codes, which measures what the redirect costs you in print size as well.
What Each Part of the Chain Actually Lasts
Most people worry about this list in exactly the wrong order. The part everyone assumes is fragile is the only part with no failure mode of its own.
| Part of the chain | How long it lasts | Why |
|---|---|---|
| The QR symbol itself | Indefinitely | A fixed pattern defined by ISO/IEC 18004. It has no date field, no counter and no server to consult, so there is nothing in it that can lapse. |
| The SVG file you exported | As long as you keep it | Vector, so it reprints at any size without degrading. This is the master copy, and nothing on this site stores one for you. |
| A domain you own | As long as you renew it | Annual renewal, entirely in your control, and cheap next to a reprint. This is why a code pointing at your own domain is the durable option. |
| The printed object | As long as the material does | Ink, paper, lamination and sunlight decide this one. Error correction buys tolerance for wear, not for the sticker falling off. |
| A third party's redirect | As long as they choose | The weakest link in the chain, and the only one that can be revoked by someone who is not you. It usually outlives its usefulness right up until it does not. |
A code is only as durable as the weakest row you have chosen to depend on. Put a third party’s redirect in the chain and that is your answer, however permanent the symbol above it happens to be.
Printing a Code That Still Works in Ten Years
The practical version, for anyone about to commit a code to something expensive. The first two steps are the important ones, and neither of them requires this site.

- Encode a Short Path on a Domain You Control
Something like example.com/menu. Short enough to keep the symbol sparse, and yours for as long as you renew the domain.
- Put a Server-Side Redirect Behind That Path
Now the printed code is fixed and the destination is editable, which is the property people buy a dynamic subscription for. You own both halves.
- Keep the SVG
It is the master asset. Nothing is saved between visits here, so the file you download is the only copy, and a vector reprints cleanly at any size.
- Print Above the Minimum Width, With the Quiet Zone Intact
The editor shows the minimum for the exact code you made. The four-module blank border is part of the symbol, so a design that crops it breaks the code.
- Raise Error Correction Before You Shrink It
Level Q or H rebuilds more of a damaged symbol. It costs modules, so decide it before the artwork goes out, not after the scuffs appear.
Do the first two and you have bought the property people pay a subscription for. The printed symbol never changes, the destination stays editable, and the only renewal in the chain is a domain you were renewing anyway. Once you have settled on the URL, the generator will show you the minimum print width for that exact code and refuse the download if it cannot read the result back.
What QRMakery Makes Today
Everything this site generates today is static, made in your browser and read back by a decoder before the download unlocks. Those codes have no expiry mechanism and no dependency on us: if this site disappeared tomorrow, every code it has produced would keep working, because nothing is looked up on our servers when someone scans one.
That is a property of static codes rather than a promise from us, which is the point of saying it here. We also do not build the other half yet. Dynamic codes with editable destinations and scan analytics are planned as a paid feature, because unlike static generation they need servers that keep running. If you need an editable destination today, use step one and two above, or use a dynamic provider and go in knowing what the subscription is actually holding up.
Common questions
Do printed QR codes expire?
No. A printed QR code is a fixed pattern of dark and light squares that encodes a string of text. There is no date field in the format and no server is contacted to resolve it, so the same pattern decodes to the same string forever. What can stop working is the thing that string points at, or a redirect service sitting in between.
Why did my QR code stop working after a free trial ended?
Because it was a dynamic code. The pattern encodes a short URL belonging to your QR provider, and when the plan lapsed they stopped answering for it. The symbol is undamaged and still decodes to exactly what it always did. This is the single most common reason people believe QR codes expire.
Do QR codes expire after a certain number of scans?
The symbol does not, because nothing counts scans on the code itself. A dynamic provider can absolutely cap scans on their redirect, and some free plans do, which produces a code that works for the first few hundred people and then does not. If a scan limit was mentioned when you made the code, it was a dynamic code.
Can a QR code expire if I never use it?
A static code cannot. It has no state, so nothing about it changes whether it is scanned a million times or never. A dynamic code can, because providers commonly deactivate slugs on dormant or unpaid accounts. Google did exactly that with unused goo.gl links in August 2025.
How do I know whether my code is static or dynamic?
Scan it and read the URL before it opens. If it shows your own domain, the destination is inside the pattern and nobody else can switch it off. If it shows a short slug on a domain you do not recognise, a third party is in the middle and the code lasts as long as they choose to answer.
Do QR codes made here expire?
No. Every code this site makes is static, so the destination lives in the pattern and nothing is looked up on our servers when someone scans it. The code keeps working even if this site disappears entirely. That is a property of static codes rather than a promise from us, which is the point.
How long does a printed QR code physically last?
As long as the material it is printed on. Error correction rebuilds a symbol from redundant data, so scuffs, creases and small tears are tolerable, and level H tolerates the most. Sunlight fading the contrast, lamination lifting, or a sticker peeling will end a code long before the format does.
Can I make an existing printed code point somewhere else?
Only if it already encodes a URL you control. If it points at a path on your own domain, add a server-side redirect there and every printed copy follows. If it points directly at a long third-party URL, the destination is fixed in the ink and the only route is a new code and a reprint.
Make a Code With Nothing to Expire
Paste a link, ideally a short one on a domain you own, and download an SVG. No account, no subscription, and no third party who can switch it off later.
Open the generatorKeep reading
All guides- Comparisons
Static vs Dynamic QR Codes
What the redirect actually buys you, measured on real encoded codes, and which payloads are worse off for it.
16 min read - Printing
QR Code Sticker Size: The Circle Costs You 30%
The usable square inside a round sticker is 70% of its diameter. Measured minimum sizes for real links, against every common sticker size.
8 min read - Reference
Offline QR Code Generators for Every Device
What each platform already ships, the measured cost of each payload type, and how to check an offline claim yourself.
26 min read


