The only difference that matters
A QR code is a way of writing a string in black and white squares. In a static code, that string is your final URL. The pattern is the address. Print it and the destination is fixed for the life of the paper.
In a dynamic code, the string is a short link pointing at a redirect service, and the real destination is a record on that service. The pattern never changes. The destination is a field you can edit, including after ten thousand copies have shipped.
Everything else follows. Scan tracking exists on dynamic codes because the request passes through a server that can count it. Device routing exists because that server can look at who is asking. Neither is possible on a static code, not because of a missing feature but because nothing is in the middle to do it.
The question that decides it
Ignore feature lists and ask one thing: if the destination had to change tomorrow, could you replace every copy of this code?
A code on a slide you will regenerate anyway: yes, replace it, static is fine. A code taped inside a cupboard for the house WiFi: yes. A code you are about to print on 50,000 cartons, or on a yard sign, or on a van: no. That is the whole decision, and it is usually obvious once asked in those words.
The reason it gets asked too late is that the cost of being wrong is invisible at print time and unavoidable afterwards.
What static is genuinely better at
Static codes depend on nobody. No account, no service, no company that could close. For WiFi and vCard codes they also carry the data itself rather than a link to it, so they work with no internet at all. A WiFi code should almost always be static: the password is the payload, and there is nothing to redirect to.
The independence argument is real but narrower than it sounds. A static code fails the moment its URL does, and URLs rot faster than companies fold. A static code pointing at a dead campaign page is exactly as broken as a dynamic code whose provider vanished, with one difference: the dynamic one could have been repointed the day the page moved.
The dependency you are taking on, and how to check it
Choosing dynamic means trusting a redirect to keep resolving. That is a real commitment and it deserves more scrutiny than the marketing page gives it. Before printing anything, check three things about whichever provider you pick.
- Does the free tier deactivate codes? Several do, after a trial window or a scan cap. A code that stops redirecting is worse than one that was never dynamic.
- What happens when you stop paying? Some plans switch codes off with the subscription. Toolember codes keep redirecting after a subscription ends.
- Are short ids reused? If a deleted code's id can be handed to someone else, an old printed code could one day point at a stranger's destination. Toolember never reissues one.
We compared five providers on exactly these points in free dynamic QR code generators compared, using each vendor's own pricing page.
You cannot convert one after printing
A printed static code cannot become dynamic. The URL is in the pattern, so a different destination means a different pattern, which means replacing every copy.
The workaround people reach for is to point the static code at a URL on their own domain and redirect from there. That works, and it is a dynamic QR code assembled by hand: you now maintain the redirect, the uptime and the analytics yourself, forever, for a code you printed once. Worth it if you already run that infrastructure, and rarely worth it otherwise.