A reader emailed us last spring with a small disaster. He’d searched “free QR code generator,” picked the top result that said free in big letters, made a code for the back of 5,000 printed event flyers, and sent them to the printer. Six weeks later the code stopped scanning. The “free” generator had been a free trial. When the trial ended, the redirect was switched off, and there was a polite upgrade prompt where his event page used to be. The flyers were already in people’s hands. There was nothing to fix — the code was printed, the destination was gone, and the only way to make it work again was to pay a subscription he hadn’t known existed.
He didn’t do anything wrong. He searched for exactly the thing he needed and clicked the thing that said it was that. The problem is that the word “free” in this market hides two completely different products, and almost nobody tells you which one you’re looking at until it’s too late to matter.
This is the article that tells you. It’s the hub for our whole comparison cluster, and the one job it has is to split “free” into the two things people conflate — and then name the narrow gap neither of them fills. We’ll disclose where our own product fits, plainly, and we’ll tell you the (very common) situation where you don’t need us at all. The pillar this all zooms into is QR codes that don’t expire; the same year-5 test applied across every paid provider lives in ‘Lifetime’ QR codes: what actually happens in year 5.
The two things “free” means
There are two kinds of free QR code, and they fail in opposite ways.
A static QR code encodes your destination URL directly into the black-and-white pattern. The pattern literally is the URL. There’s no server in the middle, no account, no redirect, nothing to bill you for and nothing to switch off. That’s why the honestly-free generators can be free forever: there’s no ongoing cost to them, because once you’ve downloaded the image, they’re out of the loop entirely. The catch — and it’s the only catch, but it’s a real one — is that because the URL is baked into the pattern, you can’t change where it points without generating a new code and reprinting it. A static code is permanent, but it’s frozen.
A dynamic QR code encodes a short redirect URL that lives on the provider’s server; when someone scans it, the server looks up your real destination and forwards them. That indirection is what lets you edit the destination later without reprinting — change the target on the server, and every printed code now points somewhere new. It’s genuinely useful. But it also means the code only works as long as that server keeps forwarding, which means as long as someone keeps paying for it. When a “free” dynamic code is actually a trial, the server stops forwarding the day the trial ends, and your printed code points at nothing.
So: static is free and permanent but not editable. Trial-dynamic is editable but stops being free — and stops working — when the timer runs out. Hold that distinction; the rest of this article is just applying it.
The genuinely free, honest static options
These are the ones we recommend without reservation, because they’re honest about what they are. Each encodes your URL directly into the pattern: no account, no expiry, no trial, no subscription. The one caveat applies to all of them equally, so we’ll state it once here and not repeat it under each: a static code is permanent only while its destination URL stays live, and you can’t change where it points without reprinting. If the page it points to moves or dies, the code is dead too — so point these at a URL on a domain you control, and the code is functionally permanent.
QRCode Monkey
Static-only and refreshingly upfront about it. Free, no account required, and the code you generate today resolves indefinitely as long as your destination does. Good design controls too — logo, colour, frames — so the code doesn’t have to look like a default. If you want a permanent code and never need to change where it points, this is close to the cleanest answer in the market. We say the same about them in the lifetime-codes piece, where they’re one of the few providers that pass the year-5 test by default.
Adobe Express
Adobe Express’s QR generator produces a static code, free, that doesn’t expire. The “never expires” claim is true with the standard asterisk: the code never expires, but it still breaks if the destination URL goes dead. If you’re already in the Adobe ecosystem for the rest of your design work, generating the code there is one less tool to learn. We unpack the exact behaviour in Do Adobe QR codes expire?.
Canva (basic / static)
Canva’s basic QR code is static and free — the URL is baked into the pattern, so it’s permanent and not editable. The thing to watch is that Canva also offers dynamic QR codes through paid apps and integrations, and those tie to a subscription rather than being permanent. So “a Canva QR code” can mean either kind depending on which feature you used. If you used the basic generator, you’re fine forever; if you used a paid app, you’re on the dynamic-subscription side of the line. We pull that apart in Do Canva QR codes expire?, and if one of yours has already stopped scanning, Canva QR code stopped working is the troubleshooting walk-through.
QRStuff
QRStuff offers a free static option that encodes the URL directly, no subscription required for the basic static code. As with the others, it’s permanent-but-frozen: great when the destination won’t change, the wrong tool when it will.
If any of these fit your situation — you need a permanent code, you don’t need to change where it points, and your destination URL is one you control — stop reading and use one of them. You don’t need a subscription, you don’t need a redirect layer, and you don’t need us. That’s not false modesty; it’s the honest answer, and most of the “free QR generator” search traffic is genuinely served best by a static code from this list.
The “free” that is a trial or an ad surface
Now the other kind. These give you a dynamic (editable) code, which sounds like the best of both worlds — free and editable — until you read what “free” actually costs. In each case the free version stops being free, or stops working, or quietly bills your audience’s attention instead of your wallet. We’ve written a full, evidence-cited piece on each; here’s the short version and a link.
QR Code Generator (Bitly) — trial that converts to deactivation
The market’s biggest-name paid generator (qr-code-generator.com, the Bitly/Egoditor product) runs dynamic codes on subscription-deactivation, with a trial that converts into deactivation rather than into a free tier. Reviewers report codes being disabled after a 7-day window, and the billing presentation draws repeated complaints — including annual charges that reviewers say weren’t clearly disclosed. The pattern — print the code, lose the redirect when the trial or subscription lapses — recurs right across this category. The full breakdown, with the disambiguation between this Bitly product and the separately-named the-qrcode-generator.com, is in the QR Code Generator (Bitly) alternative.
QR.io — the 7-day trial nobody saw coming
QR.io is a paid dynamic-QR SaaS whose own help docs describe the trial-expiry mechanic: when the free trial ends, the dynamic codes stop resolving. The review record describes a recurring “printed the code → trial or portal lockout → codes dead → surprise charges” experience, across a large Trustpilot base and BBB complaints. The subscription runs $39.99/mo — or $479.99/yr — for unlimited codes (qr.io/pricing). The structural lesson — a code that only resolves while a subscription is current is a campaign tool, not a permanence tool — is laid out in full in the QR.io alternative.
Me-QR — “free” means ads in front of your scanners
Me-QR is the cleanest cautionary tale because the evidence is its own documentation. On the free tier, a scan serves an ad interstitial before the person reaches your destination — skippable after five seconds, but whoever scans your code sees an ad first, indefinitely, on a code you don’t control (Me-QR’s own docs). It’s “free” with the cost paid by your audience’s attention and your brand’s first impression. The paid tiers remove the ads — the entry Lite tier on a single code only — and if you later cancel, Me-QR’s own pricing FAQ says the codes keep working with the ads back (pricing). The full piece is the Me-QR alternative.
One more worth naming in the same breath, even though it’s a genuine design leader rather than a trial trap: Flowcode. Its codes are well-designed and its tooling is strong — but reviewers report steep, unannounced subscription price increases, which is its own way for a “starts cheap” code to become expensive to keep alive. If you’re weighing a design-led paid generator, the Flowcode alternative covers it fairly. And for the most reputable member of this whole subscription cohort — the one that earns a genuinely fair hearing — see the QR Tiger alternative, the credibility anchor for this entire cluster.
The gap: free and editable and durable
Line the two columns up and the hole is obvious.
- Static (Monkey, Adobe, Canva basic, QRStuff): free ✓, durable ✓, editable ✗.
- Trial-dynamic (Bitly, QR.io, Me-QR free): editable ✓, durable-while-free ✗.
Nobody in either column gives you all three: a code that is free, editable, and durable. Static makes you reprint whenever the destination changes. Trial-dynamic lets you edit but stops working the moment the free window closes. If your honest situation is “I need to be able to change where this points and I don’t want it to die and I’d rather not pay a subscription to keep a printed code alive,” there’s no good answer in the standard listicle.
That gap is the reason our product exists, so here’s the disclosure.
Disclosure: Heldqr is our product. Heldqr’s Free tier is a genuinely free dynamic tier — €0, unlimited codes, editable destination, no trial timer. You can change where a code points any time and it propagates in under 60 seconds, so the printed code never has to change. There’s a 100-scans-per-month soft prompt that nudges you toward Pro, but it is a per-code upsell, not a deactivation: the code keeps resolving and keeps recording past the cap. A trial is a timer that ends with your code switched off; this is a standing decision to keep non-paying codes running indefinitely. Underneath that sits the durability layer the static and trial options don’t have: a published continuity plan that’s the same on every tier, custom-domain survival on Pro and up (so a code printed against a domain you own keeps resolving even past any Heldqr shutdown), and an open-source resolver so a third party could keep the lights on if we couldn’t. You can make a code right now on Free without paying or starting a clock.
To be scrupulously fair: the Free tier shows a small branded SVG caption on the code. That’s our free-tier tradeoff, and we name it so the contrast with Me-QR is honest — it’s a caption on the image, not an ad interstitial shown to your scanners before they reach you. If even that caption is unacceptable for your use, that’s what Pro’s clean export removes.
And the most honest line in this whole article: if you never need to edit the destination, you do not need Heldqr. A static code from QRCode Monkey, Adobe Express, Canva basic, or QRStuff is free, permanent, and the right answer — point it at a URL you control and you’re done. The only reason to choose a dynamic code from anyone (us included) is that you need to change where the code points after it’s printed. If that’s not you, the free static option wins, and we’d rather you used it than paid anyone for capability you won’t use.
How to choose
A short decision walk, in the order that actually matters:
- Will the destination ever need to change after the code is printed? If no → use a free static code (QRCode Monkey, Adobe Express, Canva basic, QRStuff). Point it at a URL you own and you have a permanent code for free, full stop. You’re done.
- If yes — you need to edit the destination later — is this a short campaign you fully control and will replace anyway? If yes, a paid dynamic generator’s subscription-deactivation costs you nothing, because the code’s life is shorter than the subscription. Pick on features and price; just go in knowing the “free” tiers in that group are trials, and read the linked pieces before you print anything.
- If you need to edit the destination and the code outlives a campaign — anything printed onto something you can’t easily reprint (packaging, signage, a card in a stranger’s drawer, a label, a memorial) → you’re in the free+editable+durable gap. That’s the case for a free dynamic tier with a continuity plan behind it, which is the niche Heldqr fills. Start on Free; move to Pro only when you’re about to commit a code to something permanent and want the custom-domain survival path.
- Whatever you pick, before you print at volume, send the provider these six questions: what does the price become next year; what happens to my codes if I cancel; what happens if you shut down; is there a continuity plan in writing; can I move my codes to my own domain; is the resolver open-source. The providers that answer cleanly are the ones with predictable year-5 outcomes. The disclosure table below answers all six for everyone in this article.
The disclosure table
We publish the same table on every comparison piece so it’s like-for-like on the columns that actually predict whether your code survives. Static honest options are marked N/A — static where the column doesn’t apply (there’s nothing to cancel, no provider to continue, no resolver in the loop) — that’s a feature, not a gap. Verify every cell against the live source before publication: prices and policies drift, and the rating/review cells need manual confirmation because those sites block bots.
| Provider | Pricing | What happens when you cancel | Code lifespan commitment | Continuity plan | Open-source resolver |
|---|---|---|---|---|---|
| Heldqr (Free) | €0 | Codes keep working | Resolves while we operate; custom-domain survival past shutdown | Yes — published at /continuity | Yes |
| Heldqr (Pro) | €9/mo | Downgrade to Free, codes keep working | Same + custom domain keeps printed QRs alive after shutdown | Yes — published at /continuity | Yes |
| Heldqr (Business) | €29/mo | Downgrade to Free, codes keep working | Same as Pro + seats/API/bulk | Yes — published at /continuity | Yes |
| QRCode Monkey | Free | N/A — static | Unlimited (static) | N/A — static | N/A — static |
| Adobe Express | Free | N/A — static | Unlimited (static) | N/A — static | N/A — static |
| Canva (basic) | Free | N/A — static | Unlimited (static) | N/A — static | N/A — static |
| QRStuff | Free static | N/A — static | Unlimited (static) | N/A — static | N/A — static |
| QR Code Generator (Bitly) | $5–$449/mo | Codes deactivated | As long as you pay | No | No |
| QR.io | $39.99/mo (pricing) | Codes deactivated | As long as you pay | No | No |
| Me-QR | Free with ads / paid tiers | Codes keep working; ads return | As long as Me-QR runs | No | No |
| Flowcode | $25–$250+/mo, billed annually (pricing) | Codes deactivated | As long as you pay | No | No |
| QR Tiger | $7–$299/mo | Codes deactivated | As long as you pay | No | No |
The point of the table isn’t to make anyone look bad — the static options at the top are genuinely free and genuinely permanent, and for most people that’s the right pick. The point is that “free” sits in two completely different places on this table, and the listicles that won’t show you both columns are the reason the reader at the top of this article printed 5,000 dead codes.
In closing
There are good free QR code generators with no trial, and we’d send you to them happily: QRCode Monkey, Adobe Express, Canva’s basic generator, QRStuff. They encode your URL straight into the pattern, charge nothing, ask for no account, and last forever — as long as the destination stays live and you never need to change where it points. If that’s your situation, that’s the whole answer, and you can close this tab.
The trouble starts when “free” turns out to mean “free trial” or “free with ads in front of your scanners” — a dynamic code you can edit, that quietly stops working or starts costing the moment the timer runs out. And the honest gap nobody in the standard listicle fills is the code that’s free and editable and durable at once.
That gap is the only reason Heldqr exists, disclosed as our product: a genuinely free dynamic tier with no trial clock, a continuity plan that’s the same on every tier, custom-domain survival so a printed code outlives even our shutdown, and an open-source resolver so the lights can stay on without us. If you need to edit a printed code’s destination and you need it to last, that’s the niche. And if you don’t need to edit it — a free static code is the right answer, and you don’t need us at all. Saying that out loud is the entire point of this page.
Written in June 2026. Every competitor price, rating, and “free” claim is re-checked against its live source each publication cycle, because the QR market drifts. The pillar, QR codes that don’t expire, has the rest of the durability checklist; ‘Lifetime’ QR codes runs the same year-5 test across the whole paid cohort. Found a claim that’s gone stale, or a free generator we should add? Email us at hello@heldqr.com.