Static vs Dynamic QR Codes: Which One Do You Actually Need?
One is free forever and can never be changed. The other costs money and can be edited and measured. Here is how to tell which your campaign actually needs — before it goes to print.
Every QR code you have ever scanned is one of two kinds, and the difference is invisible. They look the same, scan the same, and print the same. But one of them can be changed after it is printed and tells you every time somebody scans it, and the other cannot and does not.
That difference is permanent. Once a code is printed on 5,000 flyers, you have committed to whichever kind you chose — there is no converting one into the other afterwards. So it is worth ten minutes to get right.
What a static QR code is
A static QR code holds your data directly inside the pattern. If you encode https://example.com/menu, those 28 characters are physically represented by the black and white squares. A scanner reads the pattern, reconstructs the text, and hands it to the phone.
Nothing sits between the code and the destination. There is no server, no account, and no redirect. This has two consequences that matter.
The first is that a static code works forever. It cannot expire, cannot be switched off, and does not depend on the company that generated it still being in business. A Wi-Fi code printed on a table tent in 2019 works exactly as well today.
The second is that a static code cannot be changed or counted. The destination is part of the pattern, so changing it means a different pattern — a reprint. And because nothing sits in the middle to observe the scan, there is no way to know whether anyone ever scanned it.
What a dynamic QR code is
A dynamic QR code encodes a short redirect link instead of your destination — something like qrlx.co/a4f2b. When somebody scans it, their phone opens that short link, which immediately forwards them to wherever you have pointed it today.
That extra hop is the entire point. Because the request passes through a link you control, two things become possible that are impossible with a static code:
- You can change the destination. The printed pattern stays exactly the same; you edit where it forwards to. A menu code can point at the autumn menu in October and the Christmas menu in December.
- You can count the scans. Every forward is a request you can record — when it happened, roughly where, and on what kind of device.
The trade-off is that a dynamic code depends on that redirect continuing to work. It is a service, and services cost money and have to keep running. A dynamic code is not a thing you own outright the way a static code is.
The differences that actually matter
| Static | Dynamic | |
|---|---|---|
| Cost | Free | Subscription |
| Account needed | No | Yes |
| Change destination after printing | No | Yes |
| Count scans | No | Yes |
| See scan location and device | No | Yes |
| Works with no internet | Yes, for Wi-Fi, contact and text codes | No, needs a connection to redirect |
| Keeps working if the provider disappears | Yes | No |
| Pattern density | Grows with your data | Always small — it only holds a short link |
That last row is quietly useful. Because a dynamic code only ever encodes a short link, its pattern stays simple no matter how long the real destination URL is. If you need to print small, a dynamic code is easier to scan than a static one carrying a 90-character tracked URL.
When a static code is the right answer
Static codes are not the budget option. For some jobs they are genuinely the better engineering choice, because the thing they encode is not going to change and there is nothing useful to measure.
- Wi-Fi access. The network name and password are fixed facts. Encoding them directly means the code works even though the phone is not yet online — which is the whole point. Make one with the free WiFi QR code generator.
- Contact details on a business card. A vCard code works offline and saves straight to the address book. If your number changes you are reprinting the cards anyway.
- Equipment and asset labels. A serial number stamped on a machine is not a marketing campaign. It needs to be readable in ten years in a basement with no signal.
- Anything you are printing once, cheaply, with no budget attached. If nothing depends on the result, there is nothing to measure.
All of those are free to make, with no sign-up and no watermark.
Open the free QR code generatorWhen you need a dynamic code
The rule of thumb: if you are spending money to get the code in front of people, you need a dynamic code. Not because the scan experience is better — it is identical — but because otherwise you are spending money blind.
Concretely, use a dynamic code when any of these are true:
- The destination might change. Menus, price lists, event agendas, product pages, seasonal promotions. Anything with a date attached will eventually be wrong.
- You are comparing options. Two poster designs, three neighbourhoods, four magazine placements. Without per-code scan counts you are guessing which one worked.
- The print run is expensive. The more it costs to reprint, the more valuable it is to be able to fix a mistake without reprinting.
- Somebody will ask whether it worked. A client, a manager, a landlord. "We printed 5,000" is not an answer; "we got 412 scans, 60% of them in the first fortnight" is.
- The link is long or ugly. A tracked campaign URL with UTM parameters makes a dense static code. A dynamic code keeps the pattern simple and carries the parameters on the redirect instead.
Can you turn a static code into a dynamic one?
No. This is the question people ask after the flyers are already at the printer, and the answer is genuinely no — not because providers will not let you, but because the destination is part of the pattern. Changing it produces a different pattern. Different pattern, different print.
There is one workaround worth knowing. If your static code points at a URL on a domain you control, you can change what that URL serves. A static code pointing at yoursite.com/menu can be redirected server-side to anywhere you like, because you own yoursite.com. You still get no scan data, but you are not stuck with the destination.
That does not work if the static code points at a third-party link shortener, a social profile, or anything else you do not administer.
What the scan data actually tells you
It is worth being precise here, because dynamic-code marketing tends to overpromise. What a redirect can observe is the request itself. That means:
- When the scan happened, to the second — which is how you see that your festival banner did nothing on Friday and everything on Sunday afternoon.
- Roughly where, derived from the network address. Reliable at city level, not at street level.
- What kind of device — operating system, and broadly the type of phone.
- How many times in total, and how that number moves over the days after a print run lands.
What it cannot tell you is who scanned. There is no name, no phone number, and no identity attached to a scan — a scan is an anonymous request. Anybody promising you the identity of the person holding the phone is describing something a QR code does not do.
It also cannot tell you what happened next unless your destination page has its own analytics. A scan means somebody pointed a camera at your poster. Whether they then read, bought, or bounced is a question for the page.
How to decide in under a minute
Two questions, in order.
- Could this destination ever need to change? If yes, dynamic. Stop here.
- Would I like to know whether this worked? If yes, dynamic. If no to both, static is genuinely fine — and free.
Most people who ask the question end up needing dynamic codes, because most people asking are printing something that cost them money. But plenty of good QR codes are static, and paying for a subscription to encode a Wi-Fi password is a waste.
Once you have decided, the other thing worth getting right before print is the physical size — a code that nobody can scan is a wasted decision either way. That is covered in what size a QR code should be, and if you have a code that is already misbehaving, why QR codes fail to scan covers the usual causes.
Dynamic codes on Qrelux come with a 14-day trial and no card, so you can print one and watch the scans arrive before you commit.
Start a free trialFrequently asked questions
What is the difference between a static and a dynamic QR code?
A static QR code stores its destination directly in the pattern, so it can never be changed or counted, but it works forever with no account. A dynamic QR code stores a short redirect link instead, so you can change where it points after printing and record every scan — at the cost of a subscription and a dependency on that redirect continuing to work.
Can I convert a static QR code into a dynamic one?
No. The destination is part of the printed pattern, so changing it produces a different pattern and requires a reprint. The one exception is a static code pointing at a URL on a domain you control, where you can redirect that URL server-side — though you still get no scan data.
Do dynamic QR codes expire?
They stop working if the subscription behind them lapses, because the redirect is a running service. Static codes cannot expire, since there is nothing behind them to switch off. This is the main reason to use static codes for things like Wi-Fi passwords that must keep working indefinitely.
Are dynamic QR codes slower to scan?
No, and in practice they are often faster. A dynamic code encodes only a short link, so its pattern is simpler and easier for a camera to read than a static code carrying a long tracked URL. The redirect adds a few milliseconds, which nobody perceives.
Can a QR code tell me who scanned it?
No. A scan is an anonymous web request. A dynamic code can record when it happened, roughly where by city, and what kind of device was used, but there is no name or phone number attached to a scan.