What is actually inside the code
A QR code stores bytes. In the static case those bytes are your destination:
https://example.com/spring-sale?utm_source=poster goes into the pattern, and the
phone reads it directly. There is no server in the middle and nothing to configure.
In the dynamic case the bytes are a short link: tinyto.me/spring. The phone still
reads it directly โ it has no idea the code is "dynamic". It opens the link, the link looks up
its current destination, and issues a redirect. That redirect is where everything else comes
from: editing, measurement, rules.
So the honest definition is: a dynamic QR code is a static QR code plus a redirect you control. Nothing about the image changes.
The only question that matters
Before choosing, answer this: once this is printed, am I ever going to want it to point somewhere else, or to know how many people scanned it?
If the answer is no, use a static code and stop reading. It is free, it has no dependency on any service, and it will still work in ten years. If the answer is yes โ or "I don't know yet" โ then the cost of a reprint is the number to compare against a subscription.
Side by side
| Static | Dynamic | |
|---|---|---|
| Encodes | The final URL | A short link you own |
| Change destination | Reprint | Edit the link, seconds later |
| Scan analytics | None | Clicks, country, device, weekday/hour |
| Density | Denser | Lighter, so it scans better when small |
| Survives the provider vanishing | Yes | No |
| Cost | Free | Free tier, then a plan |
The failure mode nobody mentions
A dynamic code is a printed promise that someone else's server will keep answering. If that company closes, changes its free plan or starts deleting old links, every code you printed becomes a dead square. It has happened repeatedly across the industry.
This is the question to ask any provider before you commit a print run: what happens to my codes if I stop paying? At TinyTo links do not expire, and a free account is enough to keep them resolving โ but you should ask that of anyone, including us, and get it in writing.
The migration trap
You cannot turn a printed static code into a dynamic one. The destination is physically part of the pattern; there is no switch to flip. The only "migration" is a new print run.
The reverse also bites: if a dynamic code's short link was chosen carelessly โ a throwaway slug, an intern's account, a campaign name โ you inherit that constraint for as long as the code lives. Choose the slug as if it were going on packaging, because one day it might.
Choosing by artifact
In practice the decision is rarely about QR codes and almost always about the surface:
- Website, slide, email. Static. You can edit the link in place, and there is nothing to measure that a normal analytics tool is not already measuring.
- Business card, letterhead, email signature. Dynamic. They outlive the page they point at โ domains change, portfolios move, "book a call" links get replaced.
- Restaurant menu, shop window, salon price list. Dynamic, almost always. The printed object has a long life and the content behind it does not.
- Packaging and labels. Dynamic, with a slug you would be happy to say out loud for five years.
- Single event, one-week flyer. Static if the destination is final; dynamic if you suspect you will want the "thank you" page afterwards.
The arithmetic
A thousand A5 flyers is roughly the cost of one or two months on a small plan. A window decal or a packaging run is ten to a hundred times that, plus the design time and the two weeks it takes to come back from the printer. The comparison is not "free versus paid": it is "one reprint versus a plan you can cancel".
That is the whole argument. Everything else about dynamic codes โ analytics, rules, A/B tests โ is a bonus on top of not having to guess correctly at press time.
Doing it in practice
Generate the code from the short link, not the long URL. Then keep two things: the short link slug, and a note of where the physical code went. A code you cannot find is a code you cannot repoint.
Ready to try it? Start with the free QR code generator if you only need a static image, or read how dynamic QR codes work in TinyTo if the code is going somewhere expensive.