The Dark Side of 'Free' QR Code Generators
Many 'free' QR generators quietly trap your code behind a redirect they control. How the free-QR bait-and-switch really works.
A "free" QR code generator sounds like a gift — but with many of them, the free QR code you make isn't really yours. It's a rented redirect that someone else can change, track, or switch off whenever they like.
QR codes are one of the great free technologies of our era. The standard is open, the math is public, and anyone can turn a link into a scannable square at zero cost. So why do so many "free" generators feel oddly pushy — asking you to sign up, nudging you toward "dynamic" codes, or emailing you weeks later about your code "expiring"? Let's pull back the curtain on how the free-QR business actually works, and how to spot the moment a helpful tool becomes a trap. 🐾
Why would a QR generator be free in the first place?
Making a static QR code is genuinely cheap. It's a one-time calculation your browser can do in milliseconds, and the result is a plain image you download. There's no ongoing cost to the person who made it, because there's no server involved after the picture exists.
That creates a problem for anyone hoping to build a business on QR codes: a truly static code is a one-and-done transaction. You make it, you leave, and there's nothing left to charge you for. To turn QR codes into recurring revenue, a vendor needs something you'll keep coming back to — or keep paying for. That something is the dynamic code.
Static vs dynamic: the fork in the road
The difference is the whole story, so it's worth being precise:
- A static QR code encodes your destination directly in the pattern. If your link is
example.com/menu, that address is literally baked into the black-and-white squares. No server is involved when someone scans it. It works forever, offline, and nobody can turn it off. - A dynamic QR code encodes a short link on the vendor's domain — something like
qr.somevendor.com/x7g2— which then redirects to your real destination. The vendor sits in the middle of every scan. That lets them edit the target later and record analytics, which is genuinely useful. But it also means the code only works as long as the vendor keeps that redirect alive.
Our deeper guide on static vs dynamic QR codes lays out the trade-offs in full. The key point for this article: many "free" generators quietly hand you a dynamic code, sometimes without making the distinction clear.
How the bait-and-switch works
The pattern is remarkably consistent across the industry. It usually goes something like this:
- You search for a free QR generator and land on a slick site.
- You paste your link and a code appears instantly — free, no problem.
- To download it, you're asked to create an account "to save your codes."
- The code you receive is a dynamic redirect through the vendor's domain, not your link.
- Later, you get an email: your trial is ending, your scans are limited, or your code will "expire" unless you upgrade.
By that point, you may have already printed the code on a flyer, a menu, or a product label. And here's the sting: because a dynamic code points at the vendor's short link, you can't simply swap in a different provider. The only way to change where the code goes is to keep the account that owns the redirect. That's how "free" becomes a subscription you didn't sign up for. We cover the mechanics of that trap in QR code digital extortion.
The bait is the word "free." The switch is quietly giving you a code whose destination you don't actually control.
What "expire" really means
A QR code, as a piece of technology, cannot expire. The pattern is just data. When a vendor says your code will expire, what they mean is that they will stop honoring the redirect that their short link points through. The squares still scan fine — they just lead to a dead page, or an upsell, or nothing at all.
This is worth internalizing, because the language is designed to feel like a natural deadline, the way milk expires. It isn't. It's a switch someone chooses to flip. Our article on why printed QR codes stop working walks through exactly how a code that scanned yesterday can go dark today.
Is dynamic ever the honest choice?
Yes, and it's only fair to say so. Dynamic codes are a legitimate, useful product. If you genuinely need to change a destination after printing — say, a seasonal campaign whose landing page rotates — or you need detailed scan analytics, a dynamic code earns its keep. The trouble isn't that dynamic codes exist. It's when:
- You're steered toward one without understanding the dependency you're taking on.
- A "free" tool gives you dynamic by default and buries the static option — or hides it entirely.
- The pricing or expiry can brick materials you've already printed at scale.
Choosing dynamic with open eyes is fine. Being funneled into it is the problem. If you do want editability, a fairer approach is to control the redirect yourself: point a static code at a short URL on your own domain, so you can change the target without any vendor's permission. We explain that pattern in how QR companies lock in small businesses.
What to look for before you trust a generator
You can usually tell within a minute whether a tool is being straight with you. Watch for these signals:
| Green flags | Red flags |
|---|---|
| Downloads a plain PNG/SVG with no account | Forces signup before you can download |
| The code encodes your actual link | The code points to the vendor's domain |
| Clearly labels static vs dynamic | Hides or omits the static option |
| No talk of expiry or scan limits | "Your code expires" or "10,000 scans max" |
| Open about how it makes money | Vague about why it's free |
Our full field guide, how to tell if a QR generator is predatory, turns this into a quick checklist you can run before you print anything.
The honest version of "free"
Free can mean free. A static QR code costs the maker nothing to keep alive, so there's no reason to charge you, track you, or hold it over your head. That's the whole idea behind QR Puppy: a plain static code, encoding your real link, downloadable as an image, with no account, no expiry, and nobody in the middle. You can create a free static QR code right now, and read the QR Puppy manifesto if you want to know why we refuse to build the redirect trap into our tool.
The next time a site offers you a "free" QR code, ask one question: after I download this, who can turn it off? If the answer is anyone but you, it isn't really free — and it isn't really yours.
Frequently asked questions
Are all free QR code generators a scam?
No. Plenty of tools give you a genuine static code with no strings attached, and even dynamic codes are a legitimate product when chosen deliberately. The concern is with generators that hide the static option, force signup, or hand you a redirect you don't control and later ask you to pay to keep it alive.
How do I know if the code I made is static or dynamic?
Decode it with any scanner app and read the link. If it shows your actual destination, it's static. If it shows a short link on some vendor's domain that then bounces you elsewhere, it's dynamic — and that vendor sits between every scan and your page.
Can a static QR code ever expire?
No. A static code has your destination baked into the pattern, so there's no server to switch off. It works forever, offline, as long as the destination page itself exists. Only dynamic codes can be disabled by whoever runs the redirect.
I already printed a dynamic code. What now?
If the destination it points to is still under your control, you may be able to keep it working. Going forward, prefer a static code, or point one at a short URL on your own domain so you can change the target without depending on a vendor. See our guide on escaping vendor lock-in.
Why does QR Puppy give static codes away for free?
Because a static code costs nothing to maintain — the data lives in the pattern, not on our servers. We have no redirect to bill you for and no scans to sell, so free can simply mean free. Our manifesto explains the reasoning.
Make a QR code the honest way 🐾
Free forever, no tracking, no expiry — generated right in your browser.