Static vs dynamic QR codes: what's the difference?
11 min read
The difference between static and dynamic QR codes is what's stored in the pattern: a static code holds your destination address for good, while a dynamic code holds a short link that redirects to whatever address you set in your generator. That's why you can edit and track a dynamic code after it's printed, while a static code works with no middleman but stays exactly as printed.
In short
- A static QR code stores your link in the pattern itself. It has no expiration date and doesn't depend on any service, but you can't edit it or count its scans.
- A dynamic QR code points to a short link. You can change the destination any time, even after printing, and see scan stats.
- A dynamic code works only as long as its provider keeps redirecting it, so read the terms before you print.
- For print and for content that changes (menus, price lists, promotions), go dynamic. For a short address that will never change, static is enough.
Contents
| Feature | Static code | Dynamic code |
|---|---|---|
| What's inside | The destination address, such as a full file link | The generator's short link, such as onsonara.com/q/k7x2mz9 |
| Change the link after printing | Not possible; you need a new code | Any time; the print stays the same |
| Scan tracking | None | Scan counts, dates, countries, devices |
| Pattern density | Grows with the length of the link | Fixed, because the short link is always the same length |
| Running cost | None | Depends on the provider: free plan, trial or subscription |
| Risk of deactivation | No middleman that could switch it off | Depends on the provider's terms |
How a static code works
A QR code is text written as a grid of square modules. In a static code, that text is the address itself, for example https://tacosdelsol.com/menu. The phone reads it straight from the image and opens the page, with no server in between.
Every pro and con follows from that. Nobody can switch a static code off, because there's nothing to switch off. There's also no account, no subscription and no stats. But if the address changes, the old code still points to the old address, and usually your only option is a new code and a reprint. QRCode Monkey, a popular free generator, works this way: we compare it in practice in linqr vs QRCode Monkey.
What is a dynamic QR code?
A dynamic QR code holds the generator's short link instead of your address. In linqr it looks like onsonara.com/q/k7x2mz9, where the last 7 characters identify your code. When someone scans it:
- the phone reads the short link and contacts the generator's server,
- the server looks up where the code should point right now,
- the phone gets a redirect and opens your page.
In linqr that's an HTTP 302 redirect, a temporary one, sent with an instruction not to cache it. So after you change the destination, the very next scan goes to the new address. There's no interstitial page or ad along the way.
Editing after printing
This is the main reason businesses choose dynamic codes. Say a food truck prints a code on its window decal that opens the menu PDF. In the fall the menu changes, and the new file has a new address. With a static code, that means a new decal. With a dynamic one, the owner pastes the new address into Change link and every existing decal opens the new menu right away.
The printed code looks exactly the same, because its short link doesn't change. For step-by-step instructions, plus what to do about a static code that's already printed, see how to change a QR code link after printing.
Tracking
Since every scan passes through the generator's server, it can be counted. A static code can't do that: the phone opens your page directly and the generator never hears about it. You can only measure that traffic on the destination site.
In linqr, the Free plan shows total scans, unique scans, a 30-day chart, your top 3 countries and device types. We leave out bots and link previews and don't store IP addresses. More on what we measure: QR code tracking.
Size and scannability
The more characters a code holds, the more modules it needs. At the same print size, each module gets smaller and harder to read from a distance. A static code with a long link, like a cloud file or a URL with campaign parameters, can get dense. A dynamic code always holds the same short link, no matter how long your destination address is.
linqr writes that short link in uppercase: HTTPS://ONSONARA.COM/Q/K7X2MZ9. The QR standard has an alphanumeric mode for digits, capital letters and a few symbols that takes less space than regular text. That makes the code one version smaller: 25 × 25 modules instead of 29 × 29 at medium error correction (M). Phones open the uppercase address without trouble, and our server recognizes the code regardless of case.
Cost and the risk of deactivation
A static code costs nothing to keep running, and nobody can switch it off. A dynamic code works only as long as the provider keeps redirecting it, so its terms matter more than the upfront price. Some generators give you a dynamic code on a trial, say 14 or 30 days, and switch it off unless you subscribe. Others cap your scans. We cover how to spot those terms, and what to do if a code already died, in our guide on whether QR codes expire.
linqr codes have no expiration date and no scan limit. The Free plan includes 3 active dynamic codes with no fee, no trial and no credit card. The details are on our free QR code generator with no expiration page.
How to tell which one you have
Scan the code and read the address before you open the page. Apple's help says the iPhone camera shows a link you tap to open, and Google's help says Google Lens in Chrome on Android shows a link to tap. What the address tells you:
- your own website or a service like
drive.google.comorinstagram.com: most likely a static code, - a generator's short address, like
onsonara.com/q/…for linqr: a dynamic code, changed in the account that created it, - a link shortener's address: it works like a dynamic code, but you can change the destination only if the shortener allows it and you have the account.
If an agency or print shop made the code, ask which generator they used and whose account it lives in. Without access to that account, you can't change the link.
When to use which
A static code is enough when the address will never change, it's short and you don't need stats. Think of your homepage on a lobby sign, or a code on a slide you'll show once.
Choose a dynamic code when:
- the code goes on something expensive to reprint: packaging, signs, vehicle wraps, business cards,
- the content will change: menus, price lists, seasonal offers, a PDF manual,
- you want to know how many people scan the flyer or poster,
- the destination link is long and a static code would be too dense.
You can make one right on the linqr home page, a free dynamic QR code generator where you paste a link, style the code and download it. For the whole process, read how to make a QR code for a link.
Make a dynamic QR code
Paste a link and your code appears instantly. You can change where it points any time, even after it's printed.
Create your QR codeQuestions
Is a dynamic QR code better than a static one?
It depends on whether the address might change. For anything printed, content that changes and any case where you want to count scans, dynamic is the better choice. Static is fine for a short address that won't change, such as your homepage. If you're not sure, go dynamic with a provider whose codes have no expiration date and no trial.
Do static QR codes expire?
No. A static code has no expiration date because it doesn't pass through a server that could switch it off. It stops working only if the page it points to disappears or the print is damaged or unreadable. Then you need a new code or, if the address is on your own domain, a redirect set up on your server.
Can I turn a static QR code into a dynamic one?
Not the printed one, because the address is stored in the pattern itself. You can make a new dynamic code and put it over the old one as a sticker, or swap it in at the next print run. If the old code points to your own domain, set up a redirect from the old address so existing prints keep working.
Are dynamic QR codes free?
It depends on the generator. Some offer a free trial and then require a subscription; others have a free plan with limits and no trial. linqr's Free plan includes 3 active dynamic codes with no fee, no credit card and no expiration date. Pro is $4.99 a month or $39.99 a year and removes the code limit.
Which one is easier to scan?
The one with fewer modules, which usually means the one holding less text. A static code with a short address scans easily, but a long link makes it dense. A dynamic code always holds a short link, and linqr's uppercase short link fits in 25 × 25 modules at medium error correction. Print size, contrast and margin matter just as much.
Can someone else change where my dynamic QR code points?
Only someone who can sign in to the account that owns the code. In linqr, a code belongs to one account, and changes happen in My codes, so protect that login like any other business account. The printed pattern itself can't be edited. The code's history keeps every address it has pointed to, so you can see if something was changed.
Does a dynamic QR code open slower than a static one?
Slightly, but people rarely notice. A dynamic code adds one quick redirect: the phone asks the generator's server where to go, then opens your page. linqr answers with a plain 302 redirect, with no ad or waiting page in between, and records the scan in the background so the redirect doesn't wait for it. Your own page's loading time matters far more.
Do dynamic QR codes need an internet connection?
Yes, but so does any code that opens a website. A static code with a URL needs the internet to load the page; a dynamic one also needs it to reach the redirect server. Only static codes that hold plain text or Wi-Fi details work offline. linqr codes are dynamic and open web pages, so the scanning phone needs a data connection.
What happens to dynamic QR codes if the provider shuts down?
They stop redirecting, because the short link in the pattern points at that provider's server. A static code has no such risk. That's why a provider's terms and track record matter more than the price. linqr codes have no expiration date and no scan limit, and a short link is never given to anyone else, even after the code is deleted.
Does a dynamic QR code collect personal data about people who scan it?
It depends on the provider. linqr counts scans without storing IP addresses or the full browser signature. The Free plan shows totals, unique scans, a 30-day chart, top countries and device types; Pro adds cities, systems, browsers, languages and times. Nobody's name or phone number is recorded, and bots and link previews aren't counted.
Should I use a static or a dynamic QR code on product packaging?
Dynamic, in most cases. Packaging is printed in large runs and stays on shelves for months, so a manual, recipe or support page that moves would break a static code. With a dynamic code you change the link and every box already out there follows. A separate code per product or batch also shows which one gets scanned.