What a static QR code is
A static QR code encodes the actual destination — a URL, a piece of text, a WiFi password — directly into the black-and-white pattern itself. Once it's generated and printed, there's no way to change where it points; the only way to "update" it is to generate an entirely new code and replace every place the old one was printed.
What a dynamic QR code is
A dynamic QR code doesn't encode the final destination directly. Instead, it encodes a short link (like a Shorter.gg link), and that short link is what redirects to the actual destination behind the scenes. Because the redirect target is stored in a database rather than in the code's pattern, you can change where a dynamic QR code sends people at any time — without reprinting the code itself.
The core tradeoff: simplicity vs. flexibility
A static code has one advantage: it doesn't depend on any external service staying online, since the destination is baked directly into the pattern with nothing in between. A dynamic code depends on the shortener's redirect service working, but in exchange gives you the ability to fix a typo, update a destination, or redirect an expired promotion to something else — all without touching a single printed copy.
Tracking scans: the biggest practical difference
A static QR code can't tell you anything about who scanned it, when, or how many times — the code itself has no way to report back, since scanning it just opens a URL like any other link, with no tracking layer involved. A dynamic QR code, because it routes through a short link, can log every scan the same way a short link logs every click: count, timestamp, device type, and general location, all visible in a dashboard.
Why dynamic wins for printed materials
Anything printed — a poster, a menu, a business card, packaging — is expensive and slow to change once it's out in the world. A dynamic QR code decouples the physical printing from the digital destination: a restaurant can update its dynamic-code menu weekly without touching a single table tent, and a business can redirect an expired promotional code to a live one instead of leaving a dead link on print material that's already distributed.
When a static code is genuinely fine
Static codes still make sense for permanent, unchanging information that doesn't need tracking — a WiFi password on a code that will hang on the same wall for years, or contact information on a plaque that isn't expected to change. If nothing about the destination will ever need to update, and you don't care about scan analytics, the simplicity of a static code is a reasonable choice.
How the redirect actually works behind the scenes
When someone scans a dynamic QR code, their phone opens the short URL encoded in the pattern, which sends a request to the shortener's server. That server looks up the current destination associated with that short link and instantly redirects the browser there — a process that takes a fraction of a second and is invisible to the person scanning, who just sees the final page load normally.
How to decide which one you need
A simple test: if you can imagine ever needing to change where this code leads, or if you want to know how many times it's been scanned, use a dynamic QR code. If the information is truly permanent and tracking doesn't matter, a static code is one less thing depending on an external service. In practice, for anything printed and distributed at any real scale, dynamic is almost always the safer default.
What happens if the destination is wrong at print time
Mistakes happen — a typo in the destination URL, a landing page that isn't ready yet, a promotion that gets pushed back a week. With a static code, an error like this discovered after printing means the entire print run is unusable and has to be reprinted at full cost. With a dynamic code, the same mistake is a two-minute fix: update the destination the short link points to, and every already-printed copy of the code immediately starts working correctly.
Design customization works the same either way
Whether a QR code is static or dynamic doesn't affect how it can look — both types can be styled with custom colors, rounded modules, and an embedded logo, since the visual styling is applied on top of whatever data the code encodes. The dynamic-vs-static choice is entirely about what happens after the code is printed, not about how much you can customize its appearance beforehand.
A quick way to tell them apart visually
There's no reliable visual difference between a static and dynamic QR code just by looking at the pattern — both are the same style of black-and-white grid. The only way to know for certain is to check what the code actually contains: a static code, when decoded with any QR reader app, will show the final destination directly, while a dynamic code will show a short link (like a shorter.gg address) rather than the final page it eventually leads to.