Do QR codes expire? Static vs dynamic, explained honestly
Static QR codes do not expire: the content is stored in the pattern itself, so the code keeps working for as long as what it points to exists. Dynamic QR codes send every scan through the maker’s server, so they stop working if that service, subscription or free trial ends.
Search for a QR code generator and you meet two camps. One says static codes are old-fashioned. The other says dynamic codes are a trap. Both are selling something. They are different tools, and each has a real cost.
What a static code is
A static QR code holds your content directly. Scan it and the phone reads exactly what was encoded: a web address, a Wi-Fi credential, a phone number, a contact card, a line of text. Nothing is contacted in between. The code is the data.
That means the image is self-contained. Once printed, it works for as long as the thing it points to works. Nobody can switch it off, bill you for it, or go out of business and break it.
What a dynamic code is
A dynamic QR code holds a short address belonging to a QR service, something like qr.example.com/a7k2. When someone scans it, their phone goes to that address, the service looks up where you have told it to send them, and redirects them on.
Because the destination lives in the service's database rather than in the image, you can change it afterwards. The same printed code can point at your autumn menu in October and your Christmas menu in December. And because every scan passes through the service, it can count scans and record rough details such as time, country and device type.
The real trade-offs
Static codes:
- Never expire, and need no third party to stay in business.
- Cost nothing beyond generating the image.
- Involve no tracking, and no middleman seeing your visitors.
- Cannot be edited after printing. Get the link wrong and you reprint.
- Cannot count scans on their own.
- Grow denser as the content gets longer, so a long URL means a bigger print.
Dynamic codes:
- Can be redirected at any time, including after printing.
- Report scan counts and basic analytics.
- Stay small and sparse, because the encoded address is short.
- Depend entirely on the service continuing to exist and keeping that redirect alive.
- Usually cost money, typically a subscription, and the code often stops working if you stop paying.
- Route every scan through someone else's server, which is a privacy consideration and one more thing that can be slow or down.
None of that makes paid dynamic services a bad deal. For a team running campaigns across several print runs, editable destinations and scan reporting are worth paying for. The point is to know what you are buying: convenience and data, in exchange for an ongoing dependency.
When static is the right answer
Most everyday uses. A Wi-Fi code for a holiday let. A contact card on a business card. A phone number on a van. A link to your website homepage, which is not going to move. A menu link for a restaurant whose web address has been the same for years.
Static is also the only sensible option for anything that is not a web link at all. Wi-Fi credentials, a calendar event, a plain text note, a SEPA payment request, a location — these have no destination to redirect to, so a dynamic code would make no sense. If you are generating one of those, you are generating a static code whether you think about it or not.
And static is right whenever the code outlives any plausible subscription. Something engraved on a plaque, etched into a tool, or printed in a book should not depend on a company's billing system still working in ten years.
When dynamic earns its keep
When the destination genuinely will change and reprinting is expensive. Fifty thousand leaflets, a permanent sign, packaging with a long shelf life, a code on a product already in customers' hands.
When you need to know whether the code is working. If you are deciding whether to spend again on the same campaign, scan counts answer a question you cannot otherwise answer. And when you are running enough codes that they need managing in one place.
The middle path
There is a third option that gets overlooked, and it is often the best of the three: print a static code pointing at a short URL you control yourself.
Put a redirect on your own domain — something like yourbusiness.co.uk/menu — and point the static QR code at that. The code never changes. The redirect is yours to edit whenever you like, from whatever runs your website. You get editability without renting it, and because the address is short the code stays sparse and easy to scan.
Your web host's own statistics will tell you roughly how many people hit that address, which is usually enough to answer the only question most people really have, which is whether anyone is scanning at all. If you need per-scan detail and campaign reporting, that is the point at which a paid service starts to make sense.
The one requirement is that you keep the domain. If you let it lapse, you are in the same position as someone whose QR provider shut down, except the fault is closer to home.
A note on the tool you use
The Codeshed website makes static codes only, in the browser, with no account and nothing sent to a server. That suits the uses above. If you need to change where a code points after printing, or count its scans, you need a dynamic code from a service you trust, or your own redirect.
Codeshed’s own tracked codes
The Codeshed app for iPhone, iPad and Android (coming soon) has dynamic codes of its own, called tracked codes. They come with Codeshed Plus, the app’s subscription: £3.99 a month or £29.99 a year, with a 7-day free trial. Since we are now one of the services this guide describes, here is exactly what you get and what you depend on.
- Up to 30 codes in the app with Plus, tracked or not.
- The destination can be changed after printing, and scans are counted: when, roughly where (city level), and on which kind of phone. We never store the IP address of the person scanning, and nothing is stored on their phone.
- If your subscription ends, the codes keep forwarding to their last saved address. Only editing and new statistics pause until you subscribe again. That is the opposite of the services above that stop working when you stop paying.
- They still depend on us: scans go through our short domain, cshd.app. If we ever had to close the service, we promise at least 12 months’ notice so you can replace printed codes.
For most codes, static is still the better choice, and the website stays free for those. Tracked codes are for the cases in “When dynamic earns its keep”: a destination that will change, or a print run where you need to know whether anyone is scanning.
Whichever route you take, keep the original file and a note of what each code points at. The commonest regret is not choosing wrongly between static and dynamic — it is having a printed code and no record of what is inside it.
Read next
- How to make a Wi-Fi QR code that actually connects
What goes inside a Wi-Fi QR code, the characters that break it, and how to share your network so guests connect first time.
- Which barcode should I use?
A plain guide to EAN-13, UPC-A, Code 128, Code 39, ITF-14, Data Matrix, PDF417 and Aztec, and when each one is wrong.
Codeshed is a trading name of Third Coffee Studio Ltd, registered in England and Wales, company number 17517422.