What is a dynamic QR code? Static vs dynamic, explained properly
August 13, 2026
A dynamic QR code is one where you can change the destination after the code has been printed.
That sounds like it should be impossible. The pattern is fixed once it is on paper, so how can what it points to change?
The answer is indirection, and it is the same trick every URL shortener uses.
How it works
A static QR code has the destination encoded directly in the pattern. Encode yoursite.com/summer-sale and those characters are physically present in the arrangement of black and white squares. The code will point there forever. Nothing can change it, because changing it would mean changing the printed pattern.
A dynamic QR code encodes a short redirect URL instead -- something like klick.ing/a7f2. That address does not host your content. It is a pointer. When someone scans it, the request reaches the service, the service looks up where that code currently points, records the scan, and forwards the phone to the real destination.
The printed pattern never changes. The row in the database does.
So a dynamic QR code is really a static QR code containing a short link. The dynamism lives in the redirect, not the code.
The two real differences
You can change the destination. Print a code on packaging pointing at a product page. Move to a new platform, or run a different campaign, and repoint it. Every code already in circulation follows.
You can count scans. Because every scan passes through the redirect, it can be counted -- how many, when, roughly where, on which kind of device. A static code offers none of this. It hands the visitor straight to the destination and you never know the scan happened, unless the destination page has its own analytics and you gave that code a unique landing page.
Side by side
| Static | Dynamic | |
|---|---|---|
| Destination after printing | Fixed forever | Editable |
| Scan tracking | None | Yes |
| Works without a service | Yes | No |
| Pattern density | Denser with long URLs | Always simple |
| Ongoing cost | None | Usually a subscription |
| Fails if provider closes | No | Yes |
The dependency, stated plainly
A dynamic QR code works only for as long as the redirect behind it works.
If the service disappears, changes its domain, or you stop paying for it, every code you have ever printed stops working simultaneously. Not gradually. All at once. The pattern is still perfectly readable; it just points at nothing.
This is the trade you are making, and it is worth being clear-eyed about it, because the marketing around dynamic codes rarely mentions it. You are exchanging permanence for flexibility.
Ways to reduce the exposure:
- Use a provider on a domain that can outlive the product, or your own domain if that is available to you. If you control the DNS, you can repoint it. If you do not, you are relying on someone else's continued existence.
- Keep your own record of every code, where it points, and where it was printed. If you ever have to rebuild, this list is everything.
- Think about print lifespan. Something printed for a two-week event carries almost no risk. Something embossed on a product with a ten-year life is a different calculation.
When static is the better answer
Dynamic is not automatically the upgrade. Choose static when:
- The destination genuinely cannot change. A Wi-Fi password, a vCard, a plain-text serial number. These do not even have a destination -- the data is in the code, and the code works with no internet at all.
- The item must work indefinitely, unsupported. Anything you will not be around to maintain.
- There is no network where it will be scanned. A dynamic code needs a round trip to the redirect. A static one carrying plain text does not.
- You do not need the numbers and the destination is stable. Your homepage URL is not going to change. Encoding it directly is simpler and free.
Static codes have one underrated property: nobody can turn them off. For some uses that is exactly what you want.
When dynamic earns its place
- Anything printed in volume before the destination is final. Packaging, especially. Print runs have long lead times and plans change.
- Campaigns. A code on a poster that points at whatever is current this month.
- Menus and price lists. The paper survives; the prices do not.
- Anything where the scan count is the point. Comparing two poster locations, or measuring whether a packaging insert gets used at all, requires tracking.
- Business cards. People keep them for years. You will change jobs, numbers, or websites in that time.
What the analytics will and will not tell you
Worth calibrating expectations. A dynamic QR code can reasonably tell you:
- How many scans, and when
- Rough location, derived from IP address -- city level at best, and often wrong on mobile networks, because carriers route whole regions through gateways elsewhere
- Device type and operating system
- Which of several codes was scanned, if you made a distinct one per placement
It cannot tell you who scanned it, whether they bought anything, or whether the same person scanned twice. Treat scan counts as a comparative measure -- this poster versus that one -- rather than an exact headcount.
That comparative use is genuinely valuable. Distinct codes per location, per print run, or per campaign will answer questions that are otherwise pure guesswork.
Practical notes
- A dynamic code is visually simpler, because it encodes a short URL rather than a long one. Fewer modules, larger squares, faster and more reliable scanning -- particularly at small sizes or in poor light. This is a real, underrated benefit.
- Test after every destination change. Repointing is exactly when a typo becomes ten thousand broken codes.
- Print the URL as well as the code where you have room. Some people will not scan, some cameras will not cooperate, and a readable short link costs you one line.
- One code per placement, if you want the data to mean anything. One code used everywhere tells you a total and nothing else.
The summary
Static codes are permanent and free and cannot be changed or measured. Dynamic codes are editable and measurable and depend on a service staying alive.
For most marketing -- anything with a campaign, a print run, or a question about what is working -- dynamic is the right call, and the dependency is a reasonable price. For anything that must simply keep working on its own, unattended, for years, static is the safer engineering choice.
The mistake is not picking one. It is not knowing which one you picked.
Klick.ing's short links are dynamic by default: every one is editable after the fact and every scan is counted. See the QR code tools, or create a free account to try it.