QR Code Basics

Static vs Dynamic QR Codes: The Critical Difference

Static QR codes contain your data directly; dynamic codes hide a redirect you may not control. Understand the trade-offs before you print.

The difference between static and dynamic QR codes is the most important thing to understand before you print one: a static code contains your data directly and never expires, while a dynamic code hides a redirect that someone else controls, can track, change, or switch off.

Both look identical — the same black-and-white squares. But under the hood they behave completely differently, and choosing the wrong one can leave your printed codes dependent on a company you've never heard of. Let's make the distinction crystal clear, fairly and without fearmongering. 🐾

What is a static QR code?

A static QR code encodes your actual data directly into the pattern. If it's a link, the URL itself is baked into the modules. Scan it, and the scanner reads the real destination straight from the code — no middleman, no lookup, no server.

The defining traits:

  • It never expires. The data is physically in the code, so it works forever, offline, with no service keeping it alive.
  • No one can change it. Once printed, its destination is fixed. That's a limitation and a safeguard at once.
  • No tracking. There's no server counting scans, so no one is logging who scanned, when, or where.
  • No dependency. It doesn't rely on any company staying in business or any subscription staying paid.

What is a dynamic QR code?

A dynamic QR code doesn't contain your real destination. Instead it encodes a short redirect link pointing to a server run by the QR provider. When someone scans it, they hit that server first, which then forwards them to wherever the destination currently points.

That indirection buys real features:

  • Editable destination. You can change where the code points after it's printed, without reprinting.
  • Scan analytics. The server can log each scan — count, time, rough location, device.
  • Shorter payload. A tiny redirect keeps the code low-version and crisp even if the final URL is long.

These are genuinely useful in some situations. But every one of them exists because a third party sits between the scanner and the destination — and that's where the trade-offs live.

What are the risks of dynamic codes?

Being balanced: dynamic codes aren't evil, and for some campaigns the editability is worth it. But you should know exactly what you're signing up for.

ConcernStaticDynamic
ExpiryNever expiresCan stop working if the service ends it
ControlYou, fullyShared with the provider
TrackingNoneScans can be logged
Ongoing costNoneOften subscription-based
Editable after printNoYes
Works offline / foreverYesDepends on the server

The expiry trap

The biggest hazard is dependency. Some "free" dynamic QR services let you generate a code, then reveal that it stops working unless you subscribe — after you've already printed it on thousands of flyers or a product label. Because the code only contains a redirect, whoever runs that redirect holds the off switch. Our exposé on the dark side of 'free' QR generators details how this pattern plays out.

With a dynamic code, you don't own the destination — you rent it. When the rent stops, so can your code.

The tracking and security angle

Dynamic codes route every scan through a server, which can log data about the people scanning. That may be fine for a marketing team, but it's worth knowing your scanners are being counted and profiled. And because the destination can change silently after printing, a code you trusted last month could point somewhere different today — a vector that overlaps with scams like quishing. Before scanning any code, our safety checklist is worth a glance.

When does a dynamic code actually make sense?

To be fair, there are legitimate cases:

  • A long-running campaign where the destination genuinely needs to change over time.
  • Situations where scan analytics are a core requirement and consent is handled properly.
  • Cases where the final URL is unavoidably long and can't be shortened at the source.

Even then, go in with eyes open: choose a provider you trust to stay online, understand the pricing, and know that you're taking on an ongoing dependency.

When should I use a static code?

Honestly, most of the time. If your destination is stable — a homepage, a menu, Wi-Fi credentials, a contact card, a fixed link — a static code is simpler, free, permanent, and private. And if your only reason for going dynamic was a long URL, the better fix is usually just a shorter destination. Our guide to QR code data capacity explains why a lean payload keeps static codes small and scannable.

This is the whole reason QR Puppy exists. We make static codes only: your data goes straight into the pattern, there's no tracking, no expiry, and nobody between you and your own code. It's open source, so you can verify exactly that. If that philosophy resonates, read our manifesto — or just create a free QR code and own it forever.

How can I tell which kind a code is?

You can't tell by looking — both are ordinary QR codes. The tell is in the link: a static code reveals its true destination when scanned, while a dynamic code shows a short redirect domain that bounces you elsewhere. If a preview shows an unfamiliar shortener you didn't create, you're likely looking at a dynamic code routed through someone else's server.

Frequently asked questions

Do static QR codes expire?

No. A static code stores its data directly in the pattern, so it works forever, offline, with no server to keep alive and no subscription to maintain. This permanence is one of the biggest reasons to prefer static codes.

Can a dynamic QR code stop working?

Yes. Because a dynamic code only contains a redirect to a provider's server, it stops working if that server goes offline, the company folds, or a required subscription lapses — even though the printed code looks perfectly fine.

Can I edit a static QR code after printing?

No. The destination is baked into a static code, so changing it means generating and printing a new code. That fixed nature is the trade-off for permanence, privacy, and independence from any provider.

Are dynamic QR codes bad?

Not inherently. Their editability and analytics are genuinely useful for some campaigns. The catch is dependency: you rely on a third party staying online and on your side. Use them knowingly, and prefer static codes when the destination is stable.

Which should I choose for a menu or business card?

Static, in almost every case. These destinations rarely change, so a free, permanent, private static code is the simpler and safer choice — no ongoing cost and nothing that can be switched off later.

Make a QR code the honest way 🐾

Free forever, no tracking, no expiry — generated right in your browser.

🎨 Create a QR code →