Static vs dynamic QR codes
Both are real QR codes. The difference is whether a server sits between the printed code and the destination — and that one question decides most of the trade-offs below.
| Static | Dynamic | |
|---|---|---|
| Cost | Free, forever | Free tier exists; paid plans for volume |
| Destination changeable later | No | Yes |
| Scan analytics (count, time, place) | No | Yes |
| Works with no service running | Yes | No |
| Requires an account at the provider | No | Yes |
| Someone else sees each scan | No | Yes |
| Password / contact data stored on a server | No | Yes |
| Keeps working if the provider shuts down | Yes | No |
| Brand styling and center logos | Yes | Yes |
| Suitable for long-term printed material | Yes | Only with a paid plan |
What "static" actually means
A static code carries its destination inside the pattern itself. Scanning it is a pure local operation: the camera reads the modules, decodes the text, and acts on it. No request goes to us, because there is nothing of ours in the path.
That single fact produces most of the table above. It is why the code is free (nothing to operate), why it keeps working if this site disappears tomorrow, and why nobody — including the person who made it — can change where it points or count who scanned it.
What "dynamic" adds
A dynamic code carries a short identifier instead of the destination. Scanning it hits a server, the server logs the scan, looks up the current destination, and redirects. Because the lookup happens at scan time, the destination can be changed on a dashboard without touching anything already printed.
That is a genuinely useful capability — and it is bought with two things: a third party now sits between your customer and your destination, and they now have a record of who scanned what and when.
Which one should you use?
Static fits
Anything printed for a long time
A guest WiFi card in a cafe, a menu code on a table tent, a contact card at a conference. The destination is stable, you want it free, and you do not want a vendor relationship to keep it alive.
- Free forever, no account
- Works even if the maker shuts down
- No scan data collected by anyone
Dynamic fits
Print that must outlive its destination
Packaging runs where the printed code outlives several website redesigns. Event campaigns where you need to know which posters worked. Short-lived promotions where you need to repoint the code mid-flight.
- Change the destination without reprinting
- Scan counts per code and per campaign
- Accepts that a provider sees each scan
This site makes static codes only. We have no dashboard, no scan counter, and no redirect server — which is also why there is nothing here to sign up for. If you need dynamic behaviour, you need a provider who does that, and you should pick them on their terms and retention policy rather than on our recommendation.
The question people actually ask
"Are static codes obsolete?" No — they are what most printed material uses, precisely because they are free and durable. The trend toward dynamic codes is really a trend towardmarketing measurement, which is a legitimate want for a campaign and an unnecessary dependency for a guest WiFi card taped to a table.
The honest framing: if the code is an object you print and keep, static is the better engineering choice. If the code is a campaign you need to measure, dynamic is the better tool. They solve different problems and neither is wrong.
Questions about static and dynamic codes
Can a dynamic code be free?
Most providers have a free tier with a scan-count cap. The code itself is free; what costs is the hosting and the dashboard behind it once you outgrow the cap.
What happens to dynamic codes if the provider shuts down?
Every printed code stops resolving. That is the operational risk that keeps a static code attractive for anything mounted, taped, or handed out at scale.
Do static codes look lower quality?
No. The module grid is the same; only the styling differs. Every QR code generator, dynamic included, ends up with the same visual structure.
Can I put a password in a dynamic code?
Technically the payload passes through the provider's server, which means the provider handles whatever you put in it. For a WiFi password or anything else sensitive, a static code keeps that value out of a third party's hands entirely.
Is one better for the environment?
Marginally, in the static case: nothing to host means no server running for a code that only gets scanned occasionally. It is a small effect and not the main reason to choose either.