Guide
Static vs dynamic QR codes: what should you print?
The difference without the sales pitch, plus a decision rule you can apply in about a minute.
Last reviewed 2026-06-11
Every QR code on this site is static. That's a deliberate choice, and it surprises people who arrive here after reading that dynamic codes are better. Sometimes they are. More often, for printed material, they're a subscription you didn't mean to sign up for.
This guide covers what the two terms actually mean, where dynamic codes are genuinely worth paying for, and how to get most of their benefits with a static code and ten minutes of setup.
What the words actually mean
A static QR code stores the final data inside the image itself. Scan it and the phone reads the URL, WiFi credentials or contact card straight from the pattern of squares. No middleman is involved. The code works for as long as the destination works, and offline payloads like WiFi or a vCard keep working indefinitely.
A dynamic QR code stores a short redirect URL owned by a service. Scan it and the phone first calls that service, which forwards it to your real destination. Because the forwarding rule lives on a server, you can change where the code points after printing, and the provider can count every scan along the way.
Why printed codes suddenly stop working
A static code can't expire. There's nothing to expire; the data is in the ink. When someone says their QR code stopped working, one of two things happened: the destination page went away, or the code was dynamic and the redirect service stopped honoring it.
The second case is the one that stings. Plenty of generators advertise free QR codes, quietly hand you a dynamic one, then switch it off when the trial ends. The code on your printed menus now opens an upgrade page. If you've ever scanned a code on a cafe table and landed somewhere that clearly wasn't the menu, you've seen this in the wild.
When dynamic codes genuinely earn their keep
Redirect control is a real feature, and paying for it can be the right call. Dynamic codes make sense when:
- The destination will change and you don't control the page it points to.
- You run short campaigns where reprinting costs more than the subscription.
- You need scan counts by location, batch or time, and UTM-level data isn't enough.
- You manage hundreds of codes and have to re-point them centrally.
If you're paying a provider you trust for exactly these things, you're using dynamic codes correctly. Just price in the dependency: that provider now sits between every scan and your content, for as long as the print exists.
The middle path most businesses should take
Point a static code at a page you control. A code that opens yourcafe.com/menu never needs to change, even when the menu changes every week, because the editing happens on the page rather than in the code. You get the main benefit of dynamic codes, a changeable destination, with no third party and no expiry date.
For scan counting, add UTM parameters to the URL before generating the code. Your analytics will then show traffic from the printed code as its own source, separate from search and social. It won't tell you the scanner's location the way a paid dashboard would, but for most small businesses it answers the real question: is anyone scanning this?
A one-minute decision rule
- Encoding WiFi, a contact card, a phone number or plain text? Static. These work offline and there's nothing to redirect.
- Linking to a domain you own? Static, pointed at a stable path like /menu or /book.
- Linking to a third-party page that may move, like a form, a listing or a booking platform? Either a static code pointing to a small redirect page on your own domain, or a dynamic code from a provider you'd happily keep paying for years.
- Need per-scan analytics beyond what UTM gives you? Dynamic, with your eyes open about the ongoing cost.
Common questions
Can I convert a static QR code to dynamic later?
Not the printed one. The data is fixed in the image, so converting means generating a new code and reprinting everything that carries it. That's why the static-code-to-your-own-URL pattern is worth setting up before the first print run, not after.
Do static QR codes really never expire?
The image doesn't. The thing it points to can. A static code with a dead link is exactly as useless as a disabled dynamic one, so the real job is keeping the destination alive and stable.
Are dynamic QR codes a scam?
No. Honest providers are upfront about pricing and about what happens when you stop paying. The pattern that feels like a scam is a free generator that makes your code dynamic without saying so, then holds it hostage once it's on five hundred printed flyers.
Do dynamic QR codes scan slower?
There's an extra network hop through the redirect service before the real page loads. On a good connection nobody notices; on weak mobile signal it can add a beat or two. Static codes skip the hop entirely.