The difference, in one sentence
A static QR code holds the information itself. A dynamic QR code holds the address of a middleman, which then forwards to the information. Everything else — what each one allows, what it costs, what it commits you to — follows from that single sentence.
Visually, nothing tells them apart: two squares of black-and-white modules, scanned by the same camera, opened in a second. The difference is not in the square, it is in what happens right after.
The static QR: the address is engraved in the square
When you generate a static QR to, say, your menu page, that page's full address is encoded in the pattern of modules. The code IS the address, in another form. Nobody sits in the middle: the phone reads, gets the address, opens the page. End of story.
That simplicity has two real virtues. First, it depends on nobody: no service can shut down, expire or break between the scan and the destination. Second, it is free, permanently — generating a static QR costs nothing and commits you to nothing.
It also has one irreversible consequence: if the address changes, the code stops working. You have to generate a new one and replace every copy already printed. Across 500 placemats, that adds up.
The dynamic QR: the square points to a relay you control
With a dynamic QR, the code encodes a short, neutral address such as “the-service.com/a/my-menu”. When someone scans, their phone opens that address, which answers immediately: “actually, go there”. The redirect is instant and invisible to the visitor.
The appeal is obvious: you can change that destination at any time from your account, without touching the square already printed. The same sticker in the window can point to your summer opening hours in July and to your booking page in December.
The second consequence is less obvious but often decisive: because every scan goes through the relay, it becomes possible to count them. How many scans, on what day, from what kind of device, in what region. A static QR reports nothing — not by choice, but because there is nobody in the middle to observe anything.
What each one allows — and rules out
- Changing the destination after printing: impossible when static, immediate when dynamic.
- Counting scans: impossible when static, built in when dynamic.
- Working without any third-party service: yes when static, no when dynamic.
- Recurring cost: none when static, a subscription when dynamic.
- Staying readable despite a very long destination address: hard when static, irrelevant when dynamic.
- Fixing a typo in the address: reprint when static, two clicks when dynamic.
Five concrete situations, and the right choice
The theory settles quickly as soon as you look at real cases:
- A WiFi QR displayed in a holiday rental: static. The password rarely changes, and the code does not even need internet access to work.
- A restaurant menu on placemats: dynamic, without hesitation. Prices move, daily specials too, and reprinting on every change costs more than a subscription.
- An event poster printed once for a single date: static. After the event, the code has no reason to exist.
- A “For sale” sign outside a property: dynamic. The property's status changes, the listing gets updated, and knowing how many passers-by scanned is real commercial information.
- A business card: both make sense. Static if your details are stable, dynamic if you change roles often or want to measure the effect of a trade show.
The trade-offs of dynamic, stated plainly
Dynamic is not free, and it is not commitment-free either. Three points deserve to be on the table before you choose.
First, it introduces a dependency. If the service hosting the relay shuts down, every QR you printed stops working — all at once. That is the real risk of dynamic, and it justifies looking at who runs the service, where it hosts, and how long it has existed.
Second, it costs a subscription, usually a few euros a month. Compare it not to zero, but to the cost of a reprint: the moment a single reprint is avoided, the subscription has paid for itself.
Third, it commits you for as long as the printed item lives. A QR stuck on something that will last five years must be served for five years. That is why a slug, once printed, should never be reassigned to somebody else.
How to decide, in three questions
If you are still hesitating, these three questions almost always settle it:
- Can the information I point to change within two years? If yes → dynamic.
- Do I need to know whether this QR code is actually being scanned? If yes → dynamic.
- Will the item be printed in multiple copies, or be expensive to remake? If yes → dynamic.
Three “no” answers: static is the right choice, free and unconstrained. A single “yes”: dynamic pays for itself at the first change you avoid. When in doubt, note that dynamic can always imitate static — the reverse is never true.
QRyx