Static vs dynamic QR codes

Many QR code sites push “dynamic” codes and a monthly plan. Sometimes that is worth it, but often it isn’t, and the wrong choice can leave you with printed codes that stop working. Here is how to decide.

The short answer

A static QR code stores your content directly in the pattern. It is free, works forever, and nobody can switch it off. A dynamic QR code stores a short link to someone else’s server, which forwards visitors to your page. It lets you change the destination and count scans, but it only works while that server, and usually your subscription, keeps running.

For most people, a static code pointing at a page they control gives the best of both. The rest of this guide explains why, and when a dynamic code is still the better choice.

How a static QR code works

When you make a static code, the generator turns your text into a pattern. If the text is https://example.com/menu, that exact address is what the phone reads, and it opens it directly. There is no middleman.

That has some useful consequences:

  • It never expires. There is no account to lapse and no service to shut down. If your link works, the code works.
  • It is private. Nobody sits between the scan and your page, so nobody else records who scanned it.
  • It works offline for content that doesn’t need the internet, such as Wi‑Fi details, contact cards and plain text.
  • It can’t be edited. To change what the code contains, you make a new code. That is the one real drawback.

Every code made on 3D-QR is static, including the animated and 3D-printable ones.

How a dynamic QR code works

A dynamic code contains a short address on the QR provider’s domain, something like qr-service.example/a8F3k. When someone scans it, their phone visits that address first. The provider’s server records the visit and redirects the phone to the destination you set in your account. Change the destination in the dashboard and every printed code now goes somewhere new.

What you gain:

  • Editable destination without reprinting.
  • Scan statistics such as counts, rough location and device type.
  • A shorter code, because the short link has fewer characters than a long address.

What you take on:

  • A dependency. If the provider goes out of business, changes its terms, or your plan ends, the redirect can stop and every printed copy breaks at once.
  • Ongoing cost. Dynamic codes are usually part of a paid subscription. Some “free” generators make dynamic codes by default and deactivate them when a trial ends, which many people only discover after printing.
  • Extra delay from the redirect, and sometimes an advert or branded page in between.
  • Someone else’s domain in the link, which makes it harder for people to check that the code is genuine. See how to spot a QR code scam.

Side by side

StaticDynamic
CostFreeUsually a subscription
ExpiresNeverWhen the service or plan ends
Change destinationOnly by making a new code, or by changing the page it points toYes, in the provider’s dashboard
Scan statisticsThrough your own website analyticsBuilt in
Works without internetYes, for Wi‑Fi, contacts and textNo, it always needs the redirect
PrivacyNo third party involvedThe provider logs each scan

The free middle way: a static code that points to your own page

Most of what people want from a dynamic code is the ability to change things later. You can get that without a subscription by pointing a static code at a stable address that you control, and changing what that address shows.

  • A restaurant points its code at yourrestaurant.com/menu and edits that page when prices change. See the guide to QR code menus.
  • An event points at yourevent.com/schedule and updates it on the day.
  • A product box points at yourbrand.com/manual, which can later redirect to a new version of the manual.

If you’d rather forward to another site, most hosts let you set up a redirect on your own domain. Cloudflare has redirect rules, Netlify and similar hosts use a redirects file, and WordPress has redirect plugins. Your code then contains yourdomain.com/go, and you choose where /go leads.

This gives you an editable code that only depends on your own domain. As long as you renew the domain, the code keeps working.

What about tracking scans?

You don’t need a dynamic code to measure results. Add campaign tags to the link in a static code, or give each placement its own short page, and your normal website analytics will show the visits. The guide on tracking QR code scans for free walks through it step by step.

When a dynamic code is the right choice

Dynamic codes earn their cost in a few situations:

  • You print in large volumes, the destination will definitely change, and you don’t have a website where you can set up redirects.
  • A team needs to manage hundreds of codes from one dashboard, with permissions and reporting.
  • You need scan data from people who never reach your website, for example when the destination is a third-party page you can’t add analytics to.

If you go dynamic, choose an established provider, read what happens when you cancel, and check whether you can use your own domain for the short links. Using your own domain means you can move to a different provider later without reprinting.

Questions to ask before paying for dynamic codes

If you decide a dynamic service is right for you, these questions protect your printed codes:

  • What happens when I cancel? Do existing codes keep redirecting, stop, or show the provider’s page instead?
  • Can I use my own domain for the short links? If so, you can move to another provider later without reprinting.
  • Can I export my codes and destinations if I leave?
  • Are there scan limits on my plan, and what happens when I go over?
  • Is there anything between the scan and my page, such as an advert, a branded screen or a delay?
  • What scan data is collected, where is it stored, and does it fit your privacy policy?

Not sure what an existing code is? The no-expiration QR code generator page explains how to check, and how to replace a code that has stopped working.

Common questions

Do static QR codes expire?

No. The content is stored inside the pattern, so the code works for as long as the content does. For a link, that means as long as the web page exists.

Can I edit a static QR code after printing?

You can’t change what the code contains, but you can change the page it points to. Point it at an address on your own website and update that page whenever you need to.

Are dynamic QR codes smaller or simpler?

Often, because a short redirect link has fewer characters than a long address. You get the same benefit for free by pointing a static code at a short address on your own domain.

Are dynamic QR codes better for tracking?

They have tracking built in, but a static code with campaign tags gives you the same visit data in your own analytics, for free.

Is a Wi‑Fi QR code static or dynamic?

Static. The phone reads the network name and password straight from the pattern and joins without visiting any website.

Buy me a coffee