If you've searched for how to make a QR code, you've likely run into the terms 'static' and 'dynamic' without a clear explanation of what actually separates them or why it matters for your specific project. The difference isn't about how the code looks or scans, it's entirely about what happens behind the destination, whether the data is baked permanently into the code itself or whether it's redirected through a link you can update later. Understanding this distinction before you generate and print anything can save you from an expensive reprint or a permanently broken link. This guide explains exactly how each type works, the real tradeoffs, and how to decide which fits your situation.
What a static QR code actually is
A static QR code encodes its final content directly into the pattern of black and white modules itself, whether that content is a URL, plain text, a WiFi password, or contact card details. When a phone camera scans it, there's no server lookup or redirect involved, the phone reads the pattern and immediately has the actual data, the same way it would if you'd typed that data in yourself.
Because the content lives entirely within the printed pattern, a static QR code's destination can never be changed after it's generated, if you need to update the link, you need to generate and print an entirely new code. This sounds like a limitation, and in some cases it is, but it also means static codes never depend on a third-party server staying online, they will scan and work exactly the same in ten years as they do today, as long as the destination itself (like a website) still exists.
Static codes are also inherently private by design, since there's no redirect server involved, there's no service in the middle logging when or where the code was scanned. For QR codes carrying sensitive information, like a private WiFi password or an event's exact address printed for gate check-in, this direct-encoding approach is generally preferable specifically because nothing about the scan gets recorded anywhere.
What a dynamic QR code actually is
A dynamic QR code, in contrast, encodes a short redirect URL that points to a service's server, not the final destination directly. When scanned, the phone is sent to that server first, which then looks up the current destination on file and forwards the phone there, all happening in a fraction of a second so it feels instant to the user, but it's technically a two-step process rather than one.
Because the actual destination lives on the server rather than in the printed code, you can log into that service and change where the code points at any time, without needing to reprint anything. This is the entire value proposition of dynamic codes: the same physical sticker, poster, or product label can point to a launch-week landing page today and an entirely different seasonal promotion three months from now.
This redirect layer also enables tracking, since the server sees every scan pass through it, it can log scan counts, general location, device type, and time of scan, data that's simply not possible to capture with a static code that never touches a server. This scan analytics capability is usually the main reason people choose dynamic over static in the first place.
The real tradeoffs between the two
The most important tradeoff is permanence versus flexibility: static codes are permanently fixed once printed, requiring a full reprint to change, while dynamic codes stay editable indefinitely through an online dashboard. If you're printing thousands of packaging labels for a product that will be on shelves for years, that flexibility can be genuinely valuable if your linked promotion or content needs to evolve over the product's shelf life.
The second major tradeoff is dependency, a static code has no ongoing dependency on any company or service staying operational, it will work as long as the destination content exists, full stop. A dynamic code depends entirely on the redirect service remaining online and your account remaining active or paid up, if that service shuts down or you stop paying for the subscription tier that includes your code, every single printed dynamic code stops working immediately, even though the physical stickers and posters still look identical.
The third tradeoff is analytics, dynamic codes offer scan tracking and sometimes real-time dashboards showing when and where scans happen, which static codes fundamentally cannot provide since they never pass through a server. If measuring exact scan performance is critical to your campaign's success metrics, this is the clearest reason to choose dynamic, but it's worth being honest with yourself about whether you'll actually use that data or whether it's a nice-to-have you won't check.
When a static QR code is clearly the better choice
For any evergreen, permanent link, a business's website, a restaurant's menu that rarely changes structure, a WiFi network's login details, or a saved contact card, static is the simpler and more reliable choice since there's nothing to maintain or risk losing access to later. If the destination content itself won't need to change, there's no real benefit to adding a redirect layer in between.
For anything privacy-sensitive, personal contact information, home WiFi passwords, or private event details, static is strongly preferable since it involves no third-party service logging scan activity. This matters for individuals and small businesses who don't want scan data collected on a server they don't control, even if that data collection is framed as a helpful analytics feature.
For one-time or short print runs, business cards, a single event's signage, or a small batch of flyers, static also makes more sense since the flexibility of a dynamic code's editability provides little value if you're not planning to reuse the same printed material for an extended period anyway.
When a dynamic QR code is worth the tradeoff
For marketing campaigns where you genuinely need to update the destination without a reprint, a product package that will sit on shelves for years while your promotional landing page needs seasonal refreshes, or a large mural or billboard where reprinting is genuinely expensive, dynamic's editability earns its cost. The key question to ask yourself honestly is whether you'll actually need to change the destination, not just whether it's theoretically nice to have that option.
For campaigns where scan analytics directly inform a decision you're going to make, such as comparing which of two print locations drives more engagement to decide where to invest future ad budget, dynamic's tracking capability provides real, actionable value that justifies the added dependency and typically a subscription cost.
How to decide for your specific situation
Start by asking whether the destination is truly permanent or likely to change; if you're linking to your own website's homepage, a static code is fine since you can always update the content of that page itself without touching the QR code at all. Only reach for dynamic when the actual URL or destination service needs to change, not just the content displayed at an existing address.
Next, weigh how much you genuinely value scan-count data against the ongoing dependency it creates. If you won't regularly check analytics or make decisions based on them, the tracking benefit of dynamic codes is largely theoretical, and a free, permanent static code accomplishes the same practical goal of getting someone from a scan to your content without any recurring cost or third-party dependency.
Frequently asked questions
Can I tell just by looking at a QR code whether it's static or dynamic?
No, visually the two are indistinguishable, the pattern itself doesn't reveal whether it encodes a direct destination or a redirect link. The only way to know is to check what URL structure it decodes to or to know how it was originally generated.
Does a static QR code expire?
No, a static QR code itself never expires since the data is permanently embedded in the pattern, it will scan and decode correctly indefinitely. What can 'expire' is the destination content, if a linked website is taken down, the code will still scan successfully but lead to a dead page.
Is a dynamic QR code always better because it has more features?
Not necessarily, more features come with more dependency, a dynamic code only stays functional as long as the underlying redirect service remains active and your account stays in good standing. For simple, permanent links, a static code is often the more reliable and privacy-respecting choice.
Can a free QR code generator create dynamic codes?
Some free generators offer basic dynamic or editable codes as part of a paid tier, since maintaining the redirect servers and analytics dashboard has an ongoing operating cost. Fully static QR codes, however, can typically be generated for free and without limits since they require no ongoing server infrastructure to keep working.