Static vs dynamic QR codes
One is free forever and unchangeable. The other is editable and depends on somebody staying in business.
Make a static code, free
Free, no account, and the code never expires. Nothing you type is uploaded.
The difference is one sentence: a static code carries its content inside the pattern, and a dynamic code carries a short link that someone resolves for you. Everything else — the cost, the analytics, the ability to fix a mistake after printing — follows from that.
It matters because the choice is permanent at the moment you print. A static code cannot become dynamic later; the pattern would have to change, which means reprinting whatever it is on. Deciding correctly the first time is cheaper than deciding quickly.
Most comparisons of this kind are written by companies selling the dynamic one, so they read as a list of reasons to subscribe. We sell both — the generator here makes static codes free and unlimited, with no account — so the honest version includes the cases where paying us nothing is the right answer, and there are several.
What each one actually is
A static code encodes the destination directly. Scan it and the phone reads the address out of the pattern itself — no server involved, nothing to look up, nothing that can be switched off. It works in a bunker, in ten years, if every QR company has gone bankrupt.
A dynamic code encodes a short link instead. The phone fetches that link, a service answers with a redirect, and the visitor lands wherever the owner currently points it. That indirection is what makes editing, counting and routing possible, and it is also the dependency.
Choose static when
The destination is not going to move, or the code is not worth tracking. A WiFi password on a wall, a contact card on a business card, a plain-text label on equipment: none of these gain anything from a redirect, and all of them gain permanence from not having one.
Static is also the honest choice when nobody will maintain the account. A code printed once for an event, put on something that outlives the project, or handed to a client who will not log in anywhere — a dynamic code in those hands is a dependency waiting to be forgotten.
- WiFi credentials, contact cards, plain text
- Anything printed once and never measured
- Codes on objects that outlive the project that made them
- Cases where nobody will own the account in two years
Choose dynamic when
The destination is likely to change, or the number of scans is worth money. A seasonal menu, a campaign landing page, a product manual that gets revised, a poster whose target moves after launch — all of these are reprints avoided.
Measurement is the other half. A static code tells you nothing about whether anybody scanned it, which for anything with a budget attached means you cannot tell a successful placement from an expensive one.
- Menus, campaigns, manuals — anything revised on a cycle
- Print runs large enough that a reprint is a real cost
- Placements you need to compare against each other
- Codes where the destination is not final at print time
The dependency nobody mentions in the sales page
A dynamic code stops working if the service resolving it stops. That is not a hypothetical — QR services close, get acquired, or expire the codes of customers who cancel, and the printed square keeps pointing at a link that no longer answers.
It is the reason this product is built the way it is: cancelling a paid plan here does not stop a printed code redirecting. You lose editing, analytics and the ability to make new ones beyond the free allowance — not the fifty thousand boxes. Whoever you use, ask what happens on the day you stop paying, and be suspicious of an answer that is vague.
Cost, honestly
Static codes are free here and unlimited, with no account, no watermark and no expiry, because they cost us nothing to serve — your browser makes them and we never see them.
Dynamic codes cost from five dollars a month, and what you are paying for is a redirect that has to keep answering, analytics that have to be stored, and the promise that both continue. That is a genuine ongoing cost; a service offering unlimited dynamic codes for free is either subsidising them for now or planning to expire them later.
You can mix them, and usually should
Nothing forces one choice across a project. The WiFi code on the wall can be static while the menu on the table is dynamic — different lifespans, different answers.
A useful default: static for anything encoding a fact that will not change, dynamic for anything encoding a decision that might.
Questions people ask
Can I convert a static code to dynamic later?
No. The pattern would have to change, which means reprinting. This is the whole reason the choice is worth a few minutes now: if there is a plausible chance the destination moves, dynamic is the cheaper decision even though it costs more.
Do static QR codes expire?
They cannot. The content is inside the pattern rather than on a server, so there is nothing to lapse and nobody to keep paying. Any service telling you a code must be renewed is describing their own redirect, not the format.
Is a dynamic code slower to open?
By one redirect, measured at 31 to 83 milliseconds here. Nobody perceives it — the phone spends longer opening the browser. If a service is noticeably slow, that is their infrastructure rather than a property of dynamic codes.
Which is more reliable to scan?
Static codes with long URLs are the harder ones to scan, because more characters means more modules in the same printed square. A dynamic code always encodes a short link, so its pattern stays simple no matter how long the real destination is. That is a real, if rarely mentioned, advantage.
Can I track scans of a static code?
Not directly — no server sees the scan. You can point a static code at a URL carrying UTM parameters and read it in your own analytics, which tells you about visits rather than scans, and cannot be changed once printed.
Related generators
Need to change it after printing?
That is a dynamic code — and ours keeps redirecting even if you cancel.