Stop Printed QR Codes Going Dead: Dynamic vs Static QR for Marketers

Dynamic QR codes use an editable redirect and offer scan tracking, while static QR codes encode the final data permanently and cannot be changed. For most marketing campaigns, dynamic is the safer default because it lets you fix mistakes and measure results. Static works best when the destination will never need to change.
TL;DR:
- Dynamic QR codes are generally recommended for marketing campaigns because they allow destination updates, tracking scan data, and routing by location or device, but require ongoing subscription management.
- Static QR codes store fixed data directly and are suitable only when the destination will never change, such as linking to archival documents or permanent records.
- Failures in dynamic codes often stem from domain lapses or deleted links, but owning a custom domain and keeping backups can prevent most issues.
- To identify a code’s type, look for a short, generic domain in the resolved link or test for updates; static codes do not change once printed.
- Static QR codes remain valuable for legal, archival, or offline applications needing unchangeable, permanent links.
Table of Contents
- How does a dynamic QR code work?
- What is a static QR code and where does it fall short?
- What breaks QR codes, and how do you plan around it?
- Pros, cons and practical use cases for each type
- How can you tell if a QR code is dynamic or static?
- Design and print rules that keep codes scannable
- What does a QR scan actually collect?
- Keeping QR campaigns reliable for the long haul
- Why static QR codes still earn their place
- A note on choosing a platform built for permanence
- Sources
- FAQ
How does a dynamic QR code work?
A dynamic QR code doesn’t store your destination link directly. Instead, it encodes a short redirect URL that points to a server, which then sends the scanner on to your real destination. Because the redirect lives on a server rather than in the code itself, you can change where it points at any time, without reprinting anything.
This structure is what makes several useful features possible: you can update the destination mid-campaign, route users differently based on device or location, set an expiry date, or run the same printed code through an A/B test with two different landing pages. It’s also why analytics and API access come as standard with dynamic codes: every scan passes through a server that can log it.
That server dependency is also why dynamic QR codes are typically sold as a subscription service rather than a one-off download. Someone has to keep that redirect infrastructure running, fast, and available, which is the trade-off you’re accepting in exchange for flexibility.

What is a static QR code and where does it fall short?
A static QR code stores your destination directly in the pattern of black and white modules. There’s no middleman and no server call. Scan it, and your phone reads the URL, text, or contact details straight from the image itself.
That simplicity is also its ceiling. Because the data is baked into the code, there’s nothing to update: no analytics, no destination changes, no expiry settings. Once printed, it’s fixed for good.
This makes static QR codes a reasonable choice for a narrow set of jobs: linking to a document that should never change, printing a code onto a legal or archival record, or generating something quickly offline with no ongoing account. Where permanence matters more than measurement, static does the job without any moving parts to break.
What breaks QR codes, and how do you plan around it?
The technical differences between dynamic and static QR codes create very different risk profiles. Dynamic codes trade permanence for editability and analytics: you gain the ability to fix a broken link, but you inherit a dependency on whichever service hosts the redirect. Static codes remove that dependency entirely, at the cost of never being able to change your mind.
Most dynamic QR code failures trace back to the same handful of causes: the shortener domain lapses, the underlying link gets deleted, or the destination URL itself becomes corrupted or dead. Practitioner analysis of dynamic QR behaviour points to domain lapse and link deletion as the two most common failure modes, and both are entirely preventable with the right setup.
The fix is largely about ownership. Issuing dynamic codes from a custom domain you control, rather than a generic shortener owned by a vendor, reduces vendor lock-in and makes it far easier to migrate providers later without every printed code going dead at once. Beyond that:
- Keep an exported backup of every link and its destination history.
- Configure a fallback or “campaign ended” page so an old code never resolves to a dead link.
- Where possible, use a short branded domain instead of a generic redirect string.
None of this is complicated, but skipping it is how a batch of posters, packaging, or business cards quietly stops working months after they’re printed.
Pros, cons and practical use cases for each type
Dynamic and static QR codes suit genuinely different jobs, and the right choice usually comes down to whether the destination might change and whether you need to measure performance.
Dynamic codes give you editable destinations, full scan tracking, and the ability to route by device or geography, which adds real agility to a live campaign. The cost is an ongoing dependency on a subscription service and, if poorly configured, a risk tied to whichever domain hosts the redirect. Static codes carry no such dependency: there’s nothing to renew and nothing that can be switched off, but you lose analytics entirely, and any change to the destination means reprinting the artefact from scratch.
In practice, that splits fairly cleanly by use case:
- Dynamic: seasonal promotions, event tickets, time-limited offers, anything you’ll want to measure or adjust.
- Static: product packaging with a fixed manual link, printed business cards, archival documents, one-off offline materials.
If you’re not sure which category a project falls into, ask whether you’d ever need to change the link after printing. If the answer is “maybe”, choose dynamic.
How can you tell if a QR code is dynamic or static?
A few quick checks will tell you which type you’re dealing with before you commit it to print or trust it in the field.
- Scan the code and inspect the resolved link: a short, generic domain (rather than the final destination) usually signals a dynamic redirect.
- Run the code through an online QR decoder to reveal the exact payload without triggering the redirect itself.
- If you suspect it’s dynamic, test an update: change the destination in the platform and rescan to confirm it reflects the change.
- Watch for a provider’s fallback or “link expired” page, which is a clear sign the code was dynamic and its redirect has since lapsed.
Design and print rules that keep codes scannable
Scannability depends on more than the data inside the code. The QR Code standard, ISO/IEC 18004, defines versions and error correction levels that directly affect how small a code can go before it stops scanning reliably. DENSO WAVE’s own guidance puts the practical minimum module size at roughly 0.17mm, and warns that heavy design overlays can deform a code enough to break it.
Higher error correction (level H) gives you more room for a logo overlay, but it also increases code density, so there’s a genuine trade-off between decoration and simplicity. This is one area where dynamic codes have a practical edge: a short redirect URL keeps the underlying data small, which means a smaller, less dense code that scans more reliably even at reduced print sizes. Always leave a clear quiet zone around the code, and test the final artwork on a handful of different phones before mass printing, not just one.

What does a QR scan actually collect?
Scanning a QR code and opening its link are two different events. The decode itself happens entirely on the device, no data leaves the phone. It’s only when the resolved link is opened that a server typically logs details such as IP address, user agent, and timestamp, which is standard for any dynamic redirect.
Aggregate counts, device type, and country-level data are generally low risk when retention is limited and a clear privacy notice is in place. Risk increases sharply if you start attaching precise location data or persistent identifiers to individual scans, which can tip a simple marketing code into more serious data protection territory.
Pro Tip: Keep scan logs anonymised and time-limited unless you have a specific, disclosed reason to retain more.
Keeping QR campaigns reliable for the long haul
A printed QR code often needs to keep working for years after the campaign that created it has ended. The practical fix is to treat every dynamic link as a permanent asset: archive it rather than deleting it, even once a promotion wraps up, since a deleted link is the fastest way to turn a poster into dead weight.
Issuing codes on a custom domain you control gives you the freedom to change providers later without every printed piece failing simultaneously. Beyond that, a short list of habits goes a long way: configure a sensible fallback page for expired campaigns, export scan data on a regular schedule rather than relying on a single dashboard, and audit live codes periodically to catch anything quietly broken before a customer does.
Why static QR codes still earn their place
Most of this guide leans towards dynamic, and for good reason: analytics and editability solve real problems. But static QR codes aren’t a compromise, they’re the correct tool in specific situations.
Archival records, legal documents, and anything that must remain provably unchanged are better served by a code with no server dependency at all. Small production runs and offline-only contexts, where you’d rather not rely on any third-party platform staying online, are another case where static wins outright.
The honest recommendation is dynamic by default for marketing, and static when permanence itself is the feature you’re paying for.
*— The
A note on choosing a platform built for permanence
Everything in this guide points to the same operational risk: a dynamic code is only as reliable as the platform running its redirect. Some QR code platforms offer codes that keep working permanently even if billing lapses later, which removes the domain-lapse and deleted-link risks covered above.

Beyond permanence, the platform includes dynamic URL updates, real-time analytics, GDPR-compliant tracking, and support for custom domains, the same setup recommended throughout this guide for reducing vendor lock-in.
- Generate a code for free.
- Review Free and Pro plan details when you’re ready for unlimited codes and advanced analytics.
- Explore the dynamic QR code generator to see custom domain and analytics options directly.
Try the free QR code generator and put a code into print with confidence it will still resolve next year.
Sources
- QR Code standardization | DENSO WAVE
- Dynamic vs static QR codes: what actually changes · Elido
- Static vs dynamic QR codes: What is the difference? | Jotform Blog
FAQ
Which is better, static or dynamic QR code?
Neither is universally better, they suit different needs. Dynamic codes are generally the stronger choice for marketing because they allow destination updates and tracking, while static codes suit permanent, unchanging destinations like archival documents.
How do I tell if a QR code is dynamic or static?
Scan the code and look at the resolved link: a short, generic domain rather than the final destination usually indicates a dynamic redirect. You can also decode the code online to see the raw payload without triggering the link itself.
Can I change a dynamic QR code to a static QR code, or vice versa?
A static QR code cannot be converted into a dynamic one because its data is fixed permanently inside the pattern itself. The standard workaround is to generate a new dynamic code and replace the printed artefact wherever the static one was used.
Can a QR code be dynamic?
Yes, a dynamic QR code encodes a short redirect link rather than the final destination, which lets the underlying URL be changed after printing. This is what enables features like scan analytics, expiry dates, and destination updates without needing to reprint anything.