Dynamic vs. static QR codes: what actually changes
A QR code is just a grid of black and white squares encoding some data. What that data is — and whether you can change it after the code is printed — is the entire difference between "static" and "dynamic," and it matters more than almost anything else about the code.
Static: the destination is baked in
A static QR code encodes its final content directly, permanently, inside the pattern itself. Scan it, and a decoder reads that content straight out of the modules — there's no server involved, no lookup, nothing in between. That's true whether the payload is a URL, a WiFi password, or a vCard.
The upside is that a static code works forever with zero infrastructure behind it: no service to keep running, nothing that can go down. The downside is the one that matters here — once it's printed, it's printed. Change your mind about the URL, and the only fix is a new code and a new print run.
Dynamic: the code points at a redirect, not a destination
A dynamic QR code doesn't encode your actual URL at all. It encodes a short link — something like stly.fr/a1b2c3 — that a server looks up and redirects from, every time someone scans. The QR pattern itself never changes; what changes is where that short link points, which you can update at any time from a dashboard.
That's what makes dynamic codes useful for anything printed: change a campaign landing page, fix a typo in a URL, swap a menu, redirect a product code to a different manual for a new model year — all without touching the code itself or reprinting anything. It also unlocks scan analytics, since every scan is a real server request that can be logged, and routing rules, since that server can send different visitors to different destinations.
The catch most platforms don't tell you about
Here's the part that's easy to miss until it bites: a dynamic code only works while the platform behind it keeps running the redirect. Stop paying for most dynamic QR services, and the short link stops resolving — every code you've ever printed against that account goes dead at once, silently, with no way to fix it because the print run is already out in the world.
For a code on a business card, that's an inconvenience. For a code on ten thousand printed product boxes, it's a real liability — one that has nothing to do with whether the content you wanted to show is still relevant, and everything to do with a billing lapse.
This is exactly the gap Stelyo's Print Insurance closes: a lapsed subscription flips your codes to a permanent, read-only redirect instead of killing them. You lose the ability to edit the destination or see new analytics — the one thing you never lose is the redirect actually working.
Which one do you actually need?
Static is the right call for anything genuinely permanent that will never need to change — a WiFi password on a router sticker, for instance. For almost everything printed and distributed — packaging, signage, menus, business cards, marketing materials — dynamic is the only option that lets the destination keep up with reality after the print run is already done.