Learn · QR codes · Updated 2026-08-14

Dynamic vs static QR codes

A static QR code has its destination permanently baked into the pattern, so it can never be changed or tracked after printing. A dynamic QR code points to a short redirect link you control, so you can change the destination and see scan counts anytime, even after the code is printed.

The two types look identical to the human eye. The difference is entirely in what the code actually encodes, and that decides two things you will care about later: whether you can change the destination after printing, and whether you get any data on who scanned it. If you need the basics first, see what a QR code is before comparing the two.

The core difference: what's actually encoded

A static QR code has the final destination baked directly into the pattern. If it encodes a URL, that exact URL is permanent. Scan it a thousand times and it opens the exact same address every single time, forever, because there is nothing in between the code and the destination to intercept or redirect.

A dynamic QR code encodes a short redirect URL instead of the real destination. When someone scans it, they hit that redirect first, which then forwards them to wherever the destination currently points. Because the redirect is what is printed and the destination is stored separately on a server, you can change where it forwards to at any time, without touching the physical code.

Can you edit a QR code after printing?

Only if it was dynamic to begin with. This is the single most common misunderstanding people have about QR codes: there is no way to "edit" a static code after the fact. The pattern is the data. Changing the destination means generating an entirely new code and replacing every printed instance of the old one.

Worth saying plainly: neither type can be edited in the sense of modifying the printed pattern itself. What differs is whether the thing behind the pattern can move. A static code's data lives entirely inside the black and white squares you printed. A dynamic code's printed squares only ever held a short link, so the actual destination lives on a server somewhere else, and that is the part you can change.

Static QR codeDynamic QR code
What's encodedThe final destination, permanentlyA short redirect link you control
Editable after printingNo, requires a new codeYes, repoint the redirect anytime
Scan trackingNone, no server ever sees the scanYes, every redirect hit is logged
Works if the service shuts downYes, indefinitely, it depends on nothingNo, the redirect stops resolving
Typical costFree, one time generationOften free, sometimes a paid plan for volume or expiry-free codes
Best forWi-Fi credentials, a permanent plaque, anything that will never changePrint runs, campaigns, business cards, anything you may need to update

When a static QR code is the right call

Static is the better choice more often than the marketing around dynamic QR codes suggests. If you are engraving a code onto a metal plaque, printing it on a product that will be in circulation for years, or encoding something that genuinely never changes, like a Wi-Fi password for a fixed network, a static code is simpler, free, and has no dependency on a third party staying in business. There is nothing to subscribe to and nothing that can break later.

When you need dynamic

Dynamic is worth the extra setup the moment either of two things is true: you might need to change the destination after the code is printed, or you want to know how many times it gets scanned. A conference badge, a flyer for an event with a date that might shift, or any marketing material where you are paying to print thousands of copies are all cases where reprinting to fix a bad link is expensive enough that dynamic pays for itself.

The tracking layer is what dynamic QR codes are really selling

Strip away the marketing and a dynamic QR code is a short URL with a QR image attached. The redirect service behind it, logging every hit with a timestamp, device type, and rough location, does the actual work. The code itself is just a wrapper for that link. That is the same mechanism behind link tracking generally, just applied to a scan instead of a typed click, and it works the same way you would track any QR code scan once the destination is set up correctly.

A third option most comparisons skip: a live page instead of a redirect

There is a middle path that a lot of static-versus-dynamic explainers miss entirely. If the QR code points at a page you fully control, rather than at a third-party redirect service, you get most of the dynamic benefit without a separate redirect layer to depend on. Raydar's link-in-bio pages work this way: the QR code encodes the page's own URL, and because that page's content and links are editable at any time, you can change what people land on without ever touching the code, while every scan still logs as a tracked click with UTM, referrer, and geo data. The code technically never changes, but functionally it behaves like a dynamic one, because the thing it points to is the thing you control.

How to tell if a QR code is dynamic or static just by looking

You mostly cannot, and this trips people up. A common myth is that dynamic codes look visually simpler because they encode a short URL, while static codes encoding long data look denser. That correlation exists but is not reliable, since a static code can also encode a short URL and look identical to a dynamic one. The only reliable way to tell is to scan it and inspect the actual URL it opens: a long redirect domain with a random-looking short code at the end usually means dynamic, while a direct link to the final destination usually means static.

The failure mode nobody warns you about

A dynamic QR code is only as permanent as the service hosting its redirect. If that provider shuts down, changes its pricing, or you simply let a free-tier account lapse, every physical code you have already printed stops working, even though the paper or plastic it is printed on has not changed at all. This is the tradeoff dynamic QR codes carry that static ones do not: you are trading permanence for editability and tracking, and that trade only pays off if the service behind the redirect is one you trust to still be running years from now. Check a provider's track record before committing a large print run to their redirect domain.

How to actually check before you print

Do not take a generator's word for which type it produced. Scan the code with your own phone and look at the URL your browser bar shows once it loads. If that URL is long, sits on a domain you do not recognize as your own destination, and has a short random-looking path at the end, you are looking at a dynamic redirect. If the URL that loads is exactly the final page you meant to send people to, on a domain you control, it is behaving as static even if the generator technically calls it dynamic. This ten-second check catches the cases where a tool's labeling does not match what actually happens when someone scans.

Common mistakes when choosing

  • Defaulting to dynamic out of habit for something that will never change. A Wi-Fi code on a wall does not need a redirect layer or a subscription to keep working.
  • Using static for anything with a print run in the thousands. One typo in the destination means reprinting everything, where a dynamic code would let you fix the link in seconds.
  • Assuming a link-in-bio QR code is "just static" because the code itself does not change. What matters is whether the destination page is editable and tracked, not whether the code image is regenerated.
  • Not checking what happens to scans if the provider disappears. Ask this before printing thousands of a dynamic code, not after.
  • Picking dynamic purely for the scan counter and never looking at the data. If nobody on the team is actually checking the analytics, the extra dependency and cost of a dynamic code buys nothing over a free static one.

A simple way to decide

Ask two questions before generating anything. First, is there any realistic chance the destination changes after this code is printed. Second, does knowing the scan count actually change what you will do next. If both answers are no, print static and move on, it is free and permanent. If either answer is yes, use dynamic, or better, point the code at a page you already control and can edit and track without a third-party redirect in the middle at all.

Common questions

Can you edit a QR code after it's printed?
Only if it was generated as a dynamic code, since that means it points to a redirect link you can repoint. A static code has the destination fixed permanently in the pattern and cannot be edited, only replaced.

Is a dynamic QR code the same as a regular QR code?
There is no separate format. Both are standard QR codes read the same way by any camera. The only difference is what data is encoded inside, a final destination for static or a redirect link for dynamic.

Do dynamic QR codes cost money?
Many providers offer free dynamic codes with limits on scan volume or number of codes, then charge for higher volume or codes that never expire. Static codes are free to generate everywhere since there is no redirect service to maintain.

Which type should I use for a business card?
Dynamic, or a live page you control that serves the same purpose, since a business card typically needs its destination updated over time as contact details or offers change, and scan tracking tells you if the card is actually being used.

Related: What is a QR code? · How to track QR code scans · What is link tracking? · What is a vanity URL?