A static QR code stores the full destination inside the printed pattern itself, so it works forever with no account and no monthly fee. A dynamic QR code stores a short redirect URL instead, and a server forwards every scan to a destination you can change at any time.
That single design difference drives the whole static vs dynamic QR codes decision: what it costs, what gets tracked, who sees your scan data, and whether the code on your packaging still resolves in five years. This guide is the decision side of the question. If a code you printed already stopped working and you want to know why, the failure modes are walked through one by one in do QR codes expire.
How a static QR code works, technically
A generator takes your text, usually a URL, and encodes it directly into the module grid following ISO/IEC 18004. The standard defines 40 symbol versions, from 21x21 modules at version 1 up to 177x177 at version 40, with a maximum capacity of 2,953 bytes, or 4,296 alphanumeric characters, at the lowest error correction level. Reed-Solomon error correction is baked into the pattern at four selectable levels, able to rebuild roughly 7 to 30 percent of damaged codewords depending on the level you pick.
The key property: the phone decodes everything locally. The camera reads the modules, the scanning app reconstructs the string, and the browser opens it. No server sits in the middle, so there is nothing to renew, cancel, or shut down. A 50-character URL at level M fits comfortably in a version 4 code (33x33 modules), and data payloads like Wi-Fi credentials or a contact card need no internet connection at all. It is also why a WiFi code carries the password as readable text, which matters more than most people expect: see are WiFi QR codes safe to share.
How a dynamic QR code works, technically
A dynamic code is still an ordinary QR code under ISO/IEC 18004. The difference is what gets encoded: not your destination, but a short URL on the provider's domain, typically 20 to 30 characters. When someone scans it, the phone requests that short URL, the provider's server answers with an HTTP 301 or 302 redirect to whatever destination is currently set, and the browser follows it.
Two things happen in that hop. First, you gain editability: change the destination in a dashboard and every printed copy silently points somewhere new. Second, the provider logs the scan: timestamp, IP address, user agent, and usually a city-level location estimate. The short URL also keeps the pattern sparse, usually version 2 or 3 (25x25 or 29x29 modules) no matter how long the final destination is. The price of all this is dependency: the redirect works only while your subscription and the provider both stay alive. When that account lapses the redirect dies, and what to do when a QR code has expired covers how to recover the destination.
Answer three questions and get a straight answer, including the honest lifetime cost.
1. Will the destination change after printing?
2. Is the print hard or expensive to replace?
Packaging run, engraving, vehicle wrap, 500+ copies already distributed.
3. Do you need per-scan analytics?
Scan counts by time, device, and approximate location from a dashboard.
Static vs dynamic QR codes: the full comparison
| Factor | Static QR code | Dynamic QR code |
|---|---|---|
| Cost | Free to generate, $0 forever | Typically $5 to $15 a month, paid for the whole life of the print |
| Expiry | Never; the pattern is self-contained | Dies when the subscription lapses or the provider shuts down |
| Editability | None, destination fixed at print time | Change the destination anytime, no reprint |
| Tracking | None built in; UTM tags give basic counts | Scan counts, time, device, approximate location |
| Privacy | Scan goes straight to the destination | Every scan routed and logged by a third party |
| Print permanence | Safe for packaging, signage, engraving, tattoos | Risky for anything you cannot cheaply reprint |
| Typical code density | Version 3 to 6 for normal URLs | Version 2 to 3, short redirect URL |
When static wins
Choose static for anything where the print outlives a billing cycle or cannot be cheaply replaced. That covers product packaging, etched or engraved plates, vehicle wraps, permanent signage, book interiors, and even skin: a tattoo QR code only makes sense as static. Once the ink is down, a static code has zero running dependencies, which is exactly what a 10-year print run needs.
Static is also the only sane choice when the payload is data rather than a link. A code from the Wi-Fi QR code generator carries the SSID and password inside the pattern and joins the network with no internet involved. A code from the vCard QR code generator drops a full contact record straight into the phone. Routing those through a redirect server would add a failure point, and for Wi-Fi it would not work at all, since the phone has no connection yet to resolve the redirect.
The classic objection, that static codes give you no analytics, is only half true. Append UTM parameters to the encoded URL and your normal site analytics will count every scan that reaches the page. You lose device and location detail, but for a poster that needs a rough scan count, it costs nothing.
When dynamic wins
Choose dynamic when the destination will change and the print will not. A restaurant table tent pointing at a seasonal menu, a conference banner reused across three events, a campaign that tests two landing pages in week one and picks the winner in week two. Editing the target beats reprinting 400 posters every time.
Dynamic also wins when print deadlines run ahead of the web work. You can send boxes to the printer in March with the code finalized while the landing page ships in May. And if you need per-location data, printing 12 distinct dynamic codes across 12 store windows gives you a scan count per window without building anything yourself.
One habit worth keeping: before you trust any dynamic code, yours or anyone else's, run it through the safe QR code scanner to preview where the redirect actually lands. The hop is invisible on the printed page, which is exactly why attackers like redirects too.
The subscription-lapse trap
Here is the scenario to budget against before anything goes to press. A business prints a dynamic code on 5,000 boxes during a 14-day free trial, the trial ends, and every scan now lands on the provider's upgrade page instead of the product manual. Paid plans carry the same risk on a slower clock: a lapsed card or a retired provider domain kills every printed copy at once, and no reprint can be fast enough for stock already on shelves.
So run the math before you commit, not after. At typical rates of $5 to $15 a month, a code that must live 5 years costs about $300 to $900 in subscription fees, more on business tiers, and it stops working the moment payment stops. A static code on the same packaging costs nothing and cannot lapse. The rule of thumb: if the print will outlive the billing cycle by years, budget the subscription for the full life of the print, or do not print a hosted dynamic code at all.
Dynamic control without the subscription
There is a third option that gets you most of the dynamic behavior for the price of one domain. Register a spare domain, about $10 to $15 a year for a typical .com, encode a URL you own, something like yourdomain.com/menu, into a static code, and configure a 301 redirect from that path to the real destination. When the destination changes, you edit one redirect rule and every printed copy follows.
The dependency shrinks from a vendor staying in business plus a monthly payment to renewing one domain once a year. You can log hits with your own analytics, keep scan data out of third-party hands, and the same domain serves unlimited codes. The step-by-step setup, with hosting panel steps, .htaccess examples, and a WordPress plugin route, is in create dynamic QR links yourself.
Quick decision rules
- Print lifespan over a year, or reprinting is expensive: static, or static pointing at your own redirect domain.
- Destination will change but the print will not: own-domain redirect first, hosted dynamic if you need a dashboard.
- Need per-scan device and location analytics across many placements: hosted dynamic, budgeted for the full life of the print.
- Payload is Wi-Fi, vCard, or plain text: static, always. A redirect cannot deliver offline data.
- Zero budget and zero maintenance tolerance: static.
Every generator on this site outputs plain static codes with nothing tracked and nothing to renew. Browse the full set in the QR tools category, or start with the guides index for the deeper how-and-why pieces.
Can I make a dynamic QR code for free?
Yes, using your own domain. Register a domain name (around $12 a year), encode a URL you control into a static QR code, and configure a 301 redirect from that path to the real destination. When the destination changes, you update one redirect rule. No vendor, no monthly fee, no expiry risk. A hosted dynamic service costs $60 to $180 a year and stops working the moment payment lapses.
What happens when a dynamic QR code expires?
Every scan hits the provider's paywall, a generic error page, or a dead domain. Codes on packaging, signage, or printed materials all fail at the same moment. There is no way to fix printed copies already in the field. This is why budgeting the subscription for the full life of the print matters before anything goes to press.
Is a static QR code better than dynamic?
Static is better when the destination is fixed, the print is permanent, or the budget is zero. Dynamic is better only when the destination genuinely changes after printing and reprinting is impractical. For most use cases, including Wi-Fi, vCards, menus, and event posters, static is the right default.
How do dynamic QR codes track scans?
The scanner's phone requests the provider's short redirect URL. Before issuing the redirect, the server logs the timestamp, IP address, user agent string, and a city-level location estimate derived from the IP. The provider owns that scan data. A static code with UTM parameters passes scan counts to your own analytics without routing through any third party.
Do free QR codes expire?
A static QR code never expires. The data is encoded in the printed pattern and requires no server or account. A dynamic QR code on a free plan can stop working the moment the provider changes its pricing, downgrades free accounts, or shuts down. Free trials that end silently have sent entire print runs to a paywall overnight.
If you have decided static is the right call, our free QR code generator makes one that never expires, with no account behind it.
Related: track QR scans without an app · a QR code for a real estate sign · QR code vs NFC tag
