Static vs dynamic QR codes: which to use, and why static never expires
A static QR code encodes the content (URL, text, WiFi, contact) directly into the black-and-white pattern, so it works instantly with no server in between — which is exactly why it's free, permanent, and never expires, even if the site that made it disappears. A dynamic QR code instead encodes a short redirect link, with the real content stored on a provider's server; that lets you edit the destination later and count scans, but the code stops working the moment you stop paying or the provider shuts down. Choose static for 'make once, works forever' (the right call for most people); choose dynamic only if you genuinely need to change the destination after printing or track scan analytics.
How each one actually works
A static code is self-contained: the URL or text you encoded is the black-and-white pattern. Scanning returns it directly, with no middleman. There's nothing to host, so there's nothing to bill you for and nothing to expire.
A dynamic code encodes only a short redirect link, like qr.example.com/x7k2. The real destination lives in the provider's database. When someone scans, their phone hits that short link, the provider logs the scan, and redirects to wherever you currently point it. That indirection is the feature — and the catch.
The trade-offs, side by side
Neither is 'better' in the abstract; they optimize for different things.
- Cost: static is free forever; dynamic is a recurring subscription.
- Lifespan: static never expires; dynamic dies when payment or the provider stops.
- Editable after printing: static no (remake it); dynamic yes (repoint the link).
- Scan analytics: static none (it's just content); dynamic yes (counts, location, device).
- Privacy: static is private (no one logs the scan); dynamic routes every scan through a third party.
- Dependency: static depends on nothing; dynamic depends on a company staying in business.
Why 'free forever' is real for static codes
When a QR site says 'free forever, never expires,' a static code is the only way that claim can be honest. Because the content is in the pattern and there's no server hop, there's no hosting cost to recoup and no kill switch. Many 'free' sites quietly hand you a dynamic code instead — free during a trial, then disabled until you subscribe, taking your printed flyers and menus down with it. QR Cat makes static codes only, on purpose: it's the honest default and the right choice for the vast majority of uses.
When you actually need dynamic (and what to do)
Be honest about whether you need it — most people don't. You genuinely need dynamic only if, after the code is printed, you must change where it points (a campaign URL that will move) or you must measure scans (counts, locations) for marketing. If that's you, a paid dynamic-QR platform is the right tool, and we point you to one rather than pretend a static generator can do it. For everything else — a menu, a WiFi card, a business card, a link that won't change — static is cheaper, more private, and outlives the company that made it.
Frequently asked questions
Do static QR codes expire?
No. A static code encodes the content directly into the pattern with no server involved, so there's nothing to expire or shut off. It keeps scanning indefinitely — even if the website that generated it disappears.
Why did my 'free' QR code stop working?
You were almost certainly given a dynamic code: it's a short redirect link whose content lives on the provider's server, and it's disabled when the free trial ends or you don't subscribe. A static code (which QR Cat makes) can't do this, because the content is in the code itself.
Can I edit a static QR code after printing?
No — the content is fixed in the pattern, so to change it you generate a new code. That permanence is the trade-off for it being free and never expiring. If you must edit after printing, that's the one case where a paid dynamic code makes sense.
Can I track scans with a static QR code?
Not within the code itself. If you need scan analytics, use a dynamic-QR platform. If you just need the link to work forever, static is better and more private — no third party logs who scanned.