Almost every QR question — does it expire, can I change it, can I track scans — comes down to one distinction: static versus dynamic. Here it is honestly, both sides.
What “static” means
A static code encodes its content directly in the printed pattern — a link, a Wi-Fi password, a phone number, a vCard. The scanner reads the data straight off the code; nothing sits in between. So it never changes, can’t be edited after printing, and can’t be tracked — but it also never expires and doesn’t depend on anyone’s server staying up. It works as long as QR codes exist.
What “dynamic” means
A dynamic code encodes a short redirect link instead of the data itself. The link forwards to a destination you control, and you can change that destination anytime — the printed code stays the same. Because every scan passes through the redirect, you can also count and analyze scans. The power comes from that middle layer.
The tradeoff nobody explains
That middle layer is also the catch. A dynamic code only works as long as the provider keeps the redirect alive. If they stop — lapsed plan, ended trial, discontinued service — the code dies, and the printed pattern can’t be fixed from the outside. Static codes trade flexibility for independence; dynamic codes trade independence for flexibility. Neither is “better” — they’re different tools.
| Static | Dynamic | |
|---|---|---|
| Edit the destination after printing | No | Yes |
| Track scans | No | Yes |
| Can stop working on its own | No | Only if the provider stops redirecting |
| Depends on a provider’s server | No | Yes |
| On KeptQR | Free, no account | Free account |
Which should you use?
Use static when the data won’t change and you want zero dependencies: a Wi-Fi password, a phone number, contact details, a permanent link. Use dynamic when you need to change the destination after printing or measure scans: campaigns, packaging you’ll repurpose, anything you’ll iterate on.
The dependency risk — and how we handle it
Because a dynamic code depends on its provider, the question that matters is whether they’ll keep your redirect alive. Most won’t once you stop paying. Our commitment is that a live KeptQR code keeps redirecting even after you cancel or downgrade — what pauses is editing, analytics, and creating new codes, not the redirect. That’s the Code Lifetime Promise. On KeptQR, static codes are free in your browser; dynamic codes come with a free account — see pricing.