How to Make a QR Code That Never Expires
4 min read3 October 2026By Muhammad Abdullah
You print a QR code on a thousand flyers, and a few months later it leads to an error page or a demand to upgrade your plan. This happens constantly, and it is not bad luck. It is how most free QR generators are built. The fix is to understand the two kinds of QR code and use the one that cannot expire.
Static and dynamic QR codes
A static QR code stores your actual content in the pattern itself: the full URL, the wifi details, the contact card. Scan it and your phone reads that content directly. Nothing sits in between.
A dynamic QR code stores a short link to the generator company's own server. Scan it and you are sent to their domain first, which then redirects you to your real destination. The pattern never contains your URL at all.
Why dynamic codes stop working
Because every scan of a dynamic code passes through someone else's server, your code only works for as long as that company keeps the redirect running for you. If the free trial ends, the company changes its pricing, gets acquired, or shuts down, the redirect stops and every printed copy breaks at once. You cannot fix a printed code; you can only reprint it.
That redirect is also why so many free generators are free. The code is the hook; the subscription to keep it working is the product.
Static codes cannot expire
A static code has no server to depend on. The destination is written into the pattern, so as long as your own website is up, the code works. A static code printed today will still scan in ten years, because there is nothing in the middle that can be switched off.
When you might actually want a dynamic code
Dynamic codes do two things a static code cannot: you can change the destination after printing, and the company can count scans. Those are real benefits, but they come with the dependency. For most uses, a menu, a business card, a poster, a wifi sign, the destination never changes, and a static code is simply the safer choice.
Getting analytics without a redirect
You can track static codes without any middleman. Add campaign parameters to the URL before you encode it, and your own analytics will attribute the visits.
https://example.com/menu?utm_source=qr&utm_medium=print&utm_campaign=flyer-octEvery scan now arrives tagged in your existing analytics, with no third party in the chain and nothing that can expire. Use a different campaign value for each placement, and you can tell which flyer or poster is actually working.
Making sure it actually scans
- Keep the quiet zone: the blank border around the code. Scanners use it to find the code at all, and cropping it is the most common reason a code fails.
- Keep strong contrast, with dark modules on a light background. Inverted codes fail on a surprising number of phones.
- Choose a higher error correction level if a logo will cover part of the code or it will be printed somewhere it might get scuffed.
- Size it for the distance. For print, make each square at least about half a millimetre at the final size.
- Test it on more than one phone, at the actual printed size, before you print a thousand copies.
Common questions
Do QR codes expire?
Static QR codes do not; the content is in the pattern itself. Dynamic codes route through a company's server and stop working if that service ends.
How do I know if a QR code is static or dynamic?
Scan it and look at the URL before it opens. If it is the generator's own short domain rather than your destination, it is dynamic.
Can I track scans of a static QR code?
Yes. Add UTM parameters to the URL before encoding it, and your own analytics will record the visits with no third party involved.