Dynamic QR Codes Explained: When to Use Them and Why Static Falls Short
How dynamic QR codes work technically, the six features they unlock, server uptime risks, and the cost analysis that shows when dynamic pays for itself in under 60 days.
Quick Answer
A dynamic QR code is a scannable code that points at a short redirect URL (e.g. qrb.gg/menu), which a server then forwards to the actual destination. Because the destination lives in a database — not baked into the matrix — you can edit it, track scans, and route to different targets without ever reprinting. A static QR code has the destination URL encoded directly into the matrix; once printed, it's permanent.
Use dynamic QR codes whenever the printed material has a 12+ month shelf life, the URL might change, or you need scan analytics. Use static codes for permanent links (your homepage, a vCard) where simplicity beats flexibility. The decision is usually obvious — except in the 20% of cases where it isn't, which is what this guide is for.
How dynamic QR codes work, technically
A static QR code stores the entire URL in its matrix:
[QR matrix] → "https://yourbrand.com/spring-2026-promo?utm=poster"
When scanned, the phone reads the URL and opens it. No server hop, no logging.
A dynamic QR code stores a short redirect URL:
[QR matrix] → "https://qrb.gg/abc"
When scanned, the phone hits qrb.gg/abc, which is a route on the QR generator's server. The server looks up abc in its database, finds the real destination, and returns a 302 redirect:
GET https://qrb.gg/abc
↓
302 Location: https://yourbrand.com/spring-2026-promo?utm=poster
↓
Phone follows redirect, page loads
The user perceives no difference. The whole flow takes 50–200ms on a fast connection. But because the destination is now in a database, the QR generator can:
- Change the destination — update one row, every printed code starts pointing at the new URL.
- Log the scan — timestamp, IP-derived country, device user-agent.
- Route conditionally — different destinations based on time, country, or device.
- A/B test — randomly send 50/50 to two variants.
These four capabilities are why dynamic QR codes cost money — they require server infrastructure and ongoing operations.
When static is the right call
Static QR codes are not "the cheap version." For some use cases, they're objectively better:
1. Permanent personal URLs. A vCard QR on your business card pointing at your LinkedIn. The URL won't change in 5 years. Static is free and never depends on a third-party server.
2. WiFi credentials. A QR encoding WIFI:T:WPA;S:CafeNet;P:hello123;;. The data is the credential itself; there's nothing to redirect to.
3. Plain-text codes. "Hello, world" as a QR. No URL, no destination, no point being dynamic.
4. Banking / payment QR codes. EMV QR codes encode payment authorization data per ISO 20022. They can't be dynamic by spec.
5. Permanent product packaging. Some packaging QRs (regulatory, traceability) need to stay valid for decades. Depending on a vendor's redirect server for 30 years is risky; encoding the data directly is safer.
If your use case fits any of these, go static. Don't pay for dynamic features you'll never use.
When dynamic is the right call
Three situations where dynamic isn't optional, it's required:
1. Print runs over $500. If reprinting because of a URL change costs more than a year of dynamic subscription, dynamic pays for itself the first time the URL changes.
2. Anything you want scan data on. Analytics requires server logging. Static codes can't be logged.
3. Anything routed conditionally. App store smart links (iOS → App Store, Android → Play Store) require server-side device detection, which only dynamic codes do.
The number-one regret we hear from marketing teams: "we should have made it dynamic." We have never heard the opposite.
Static vs dynamic, head to head
| Factor | Static | Dynamic |
|---|---|---|
| Editable after print | ❌ | ✅ |
| Scan analytics | ❌ | ✅ |
| Conditional routing | ❌ | ✅ |
| A/B testing | ❌ | ✅ |
| Subscription cost | Free | $6–$29/mo |
| Server uptime risk | None | 99.9%+ SLA |
| Internet required to scan | No (URL is local) | Yes (server hop) |
| Privacy (no logging) | ✅ | ❌ |
| Best for | Permanent URLs, vCard, WiFi | Campaigns, menus, packaging |
The "internet required to scan" row is sometimes misunderstood. The phone always needs internet to load the destination URL — that's true for both static and dynamic. The difference is that a dynamic code requires the redirect server to also be online; a static code skips that hop. In practice, if the user has internet and the destination site is up, the redirect adds 50–200ms — imperceptible.
Server uptime: the silent risk
Every dynamic QR code is a dependency on a third-party server. If that server goes offline, every printed code stops working until it's back.
What to look for in a dynamic QR provider:
- 99.9% uptime SLA minimum — that's 8.7 hours of acceptable downtime per year.
- Multi-region redirect infrastructure — single-region servers add country-specific latency and outage risk.
- Database backups — if the redirect database is lost, every code dies.
- Domain ownership clarity — if the redirect domain (e.g.
qrb.gg) belongs to the vendor and the vendor disappears, your codes go with it.
Some providers offer custom domain redirects (e.g. links.yourbrand.com) where you own the domain. This protects against vendor disappearance — if your provider shuts down, you point your DNS at a new redirect server and the codes keep working.
What dynamic QR codes can do that static can't
Six features unlock once you go dynamic.
1. Edit after print. Change the destination at any time, no reprint.
2. Pause/resume. Disable a code temporarily (e.g. during a campaign blackout) and reactivate later.
3. Geolocation routing. Send US scans to one URL, EU scans to another for compliance.
4. Device routing. iOS users to the App Store, Android users to Play Store, desktop to the website.
5. Time-based routing. Send scans during business hours to your booking page, after-hours to a "we're closed" page.
6. Password-protected destinations. Require a 4-digit code on the redirect interstitial before forwarding. Useful for VIP-only landing pages.
Static codes can do none of these. If any one of them is on your roadmap, you need dynamic.
Mixing static and dynamic in one campaign
Most teams don't pick one and stick with it. They mix:
- The QR on the back of the business card → static (vCard, never changes)
- The QR on the packaging → dynamic (product page, may evolve)
- The QR on the table tent → dynamic (menu, daily updates)
- The QR on the t-shirt giveaway → static (permanent fan link)
- The QR on the trade-show booth → dynamic (track which event drove leads)
The mix maximizes free static usage where appropriate and reserves the paid dynamic budget for where it adds value.
Cost analysis: when does dynamic pay for itself?
Take a $9/mo dynamic QR plan with 25 codes. That's $108/year for 25 dynamic codes — roughly $4.30 per code per year.
Static reprints: a single misprinted batch of 5,000 flyers costs $300–$800 in print and design time. One avoided reprint covers 3–7 years of dynamic subscription.
Analytics value: knowing which campaigns drove scans (and which didn't) typically rebudgets 15–20% of marketing spend toward winners. For any team spending $2,000+/month on print marketing, dynamic codes pay for themselves on data alone within 60 days.
The only case where the math doesn't work: a single permanent URL with no analytics need. For that one code, static is correct.
Common pitfalls
Choosing static for a campaign URL because dynamic "costs money." The reprint cost from a single URL change exceeds 5 years of dynamic subscription.
Choosing dynamic for permanent personal URLs. A vCard pointing at your LinkedIn doesn't need editing or analytics. Use static, save the subscription.
Not checking redirect server uptime before signing up. A 99% SLA means 7.2 hours of downtime per month — for a billboard, that's 7.2 hours of broken codes you can't fix.
Assuming all dynamic providers are equivalent. Custom domain support, analytics depth, and uptime vary 10x across vendors at the same price point.
Printing dynamic codes from a free trial that converts to paid. The codes stop working when the trial ends. Read the terms before printing.
FAQ
Can I convert a static QR code to dynamic after printing?
No. The static code is the URL — there's no way to retroactively add a redirect layer. You'd have to reprint with a new dynamic code. This is the single biggest reason teams over-provision to dynamic from the start.
Can I convert a dynamic QR code to static?
Sort of. You can take the current destination of a dynamic code and encode it as a new static code. But the printed dynamic code keeps pointing at the redirect URL — you'd have to reprint to make the static version replace it.
Do dynamic QR codes scan slower than static?
The redirect adds 50–200ms in well-engineered providers. On a fast connection, this is invisible. On a poor mobile connection, it's marginally noticeable. The destination page load time dominates total scan-to-content latency, not the redirect.
What happens to my dynamic QR codes if my subscription expires?
Provider-dependent. Some keep codes active in a "paused" state for 30–90 days post-expiration; others kill them immediately. Always check the cancellation policy before printing dynamic codes — that's the moment your subscription becomes a hard commitment.
Is the redirect URL visible to scanners?
Most phones show the destination URL preview before opening it. With a dynamic code, the user sees qrb.gg/abc in the preview, not the final destination. Some users find this less trustworthy ("what is qrb.gg?"). A custom domain redirect (links.yourbrand.com/abc) fixes this — the preview shows your brand domain.
Do dynamic QR codes work offline?
The phone still needs to reach the redirect server, which needs internet. So no — dynamic codes require a connection. Static codes that encode plain text or WiFi credentials work offline; static codes encoding URLs need internet to load the page (same as dynamic).
Can I use a dynamic QR code in a banking app?
No. Banking QR codes follow EMV/EMVCo specifications that require the payment data to be in the QR matrix itself for security reasons. Dynamic redirect QRs aren't accepted by banking apps.
Static for permanent and free. Dynamic for editable, trackable, and routable. The decision is usually obvious; when it isn't, default to dynamic — the regret math runs one way.
For dynamic QR codes with custom domain support starting at $6/mo, try QRbug Lite. Static codes are unlimited and free, no signup.