Why QR Codes Stop Working After You Print Them

Printed QR codes usually die for one reason: the code points at a vendor's short link, and the vendor turns it off. How to print a code that keeps working.

· Written by the team that runs Track Link

Short answer

Most printed QR codes that stop working are dynamic codes: they point at a short link the QR vendor controls, and the vendor switches that link off when a trial or subscription ends. The rest fail because the page behind them moved or was deleted, or because the code was printed too small, too faint or without a blank margin. Print a code that points at a short link you can re-point, ideally on your own domain, from a service that keeps printed codes on.

You printed flyers, a sign or a run of packaging, and months later someone tells you the code goes nowhere. Before you reprint anything, find out why it stopped. The fix depends almost entirely on what kind of code you printed and who controls the link inside it.

Static or dynamic: find out which code you printed

A QR code is a web address drawn as a pattern. What matters is which address is in it.

  • A static code holds your destination itself, for example your menu page. It never expires, because nothing sits between the pattern and the page. It also can't be changed after printing, and nobody can count its scans.
  • A dynamic code holds a short link at a vendor, and that link redirects to your page. You can change where it goes and see how often it's scanned. But it works only as long as the vendor keeps that short link switched on.

To tell which one you have, point your phone camera at the code and read the address it previews before you tap. If it shows your own website, the code is static. If it shows a QR company's domain or a short link, it's dynamic, and the vendor is the first place to look.

Static codeDynamic code
What the pattern holdsYour destination URLA short link that redirects
Change it after printingNoYes
Count scansNoYes
What can break itThe destination page going awayThe destination going away, or the vendor turning the link off

The most common reason: the vendor turned the link off

A dynamic code depends on someone else's server answering every scan. When the vendor stops answering for your link, scans land on an error, an "expired" notice or a sales page instead of yours. Nothing about the printed code changed. The link behind it did.

If that's what happened to you, here's what to do:

  1. Log in to the vendor and check whether the code can be switched back on, and at what cost. Compare that with what a reprint costs you.
  2. If you reprint, don't repeat the setup. Use a code whose short link you can keep on, and ideally one on a domain you own (more on that below).
  3. Before you sign up anywhere, read what happens to dynamic codes when a trial ends, when you cancel and when you go over a scan limit. If the answer is "they stop", that's the price of your print run, not just the subscription.

What happens to printed codes at Track Link

Our rule is that a code on a poster can't be held hostage, because it can't be reprinted. So printed QR codes made in Track Link keep working after you cancel or downgrade, and even past your plan's limits. In practice:

  • Cancelling or downgrading doesn't switch codes off. The saved QR code limit on each plan only controls making new codes. The Free plan includes 3 saved codes, and codes you already have keep redirecting whatever plan you move to.
  • Going over your click limit doesn't switch them off either. Past a point we may stop counting scans, but the code still sends people to your page.
  • Free plan scans go straight through. On the Free plan, links show a brief Track Link notice before the redirect. A QR code scanned at a normal pace skips it and goes straight to your page. If a code suddenly gets far more traffic than a printed code normally does, it shows the notice again for a while.
  • Destinations are re-checked every day. Printed codes live for years, and a page that was fine at print time can turn bad later. We re-check the destinations of QR codes being scanned against Google's list of unsafe sites daily. Our post on stopping phishing links covers the rest of those checks.

What does stop a Track Link code: changing the link's slug (the printed address no longer exists), pausing or deleting the link, or a takedown for abuse or a breach of our Terms. The QR code docs list what you can safely change after printing.

The page behind the code is gone

Sometimes the code is fine and the page behind it is gone: deleted, moved during a site redesign, or taken down when a campaign ended. Scans still work. They just land on a "page not found".

  • Dynamic code: edit the link and point it at a page that exists. The printed code follows straight away.
  • Static code that points at your own site: ask whoever runs the site to redirect the old address to the new page. That fixes every printed copy without reprinting.
  • Your own domain expired: if the code points at a domain you own, either as the destination or as a custom short domain, an expired registration takes every code on it down at once. Renew it and turn on auto-renew.

Physical reasons a printed code won't scan

If a phone can't read the code at all, the link isn't the problem. Check these in order:

  • Too small for the distance. A common rule of thumb is a code about one tenth of the scanning distance. A sign read from 3 meters needs a code around 30 cm wide. Our guide to QR codes on signs covers outdoor sizes.
  • Low contrast. Pale grey on white, or a brand colour on a similar background, often fails in print even when it scans on screen. Keep the code clearly darker than its background.
  • Inverted colours. Light-on-dark codes look good, but not every scanner reads them. Use dark on light unless you've tested the inverted version on several phones.
  • No quiet zone. A code needs a blank margin around it. Artwork, borders or text touching the edges stop phones finding it.
  • Too dense. A long URL makes a code with many tiny squares, which blur in print. A short link makes a simpler code that scans from further away.
  • A logo covering too much. If you add a logo, use the highest error correction setting (H) and keep the logo small, then test.
  • Glossy or curved surfaces. Reflections on gloss and the bend of a bottle or cup can break a scan. Matte finishes and flat panels are safer.

How to print a code that keeps working

  1. Use a dynamic code on a domain you control. If the short link in the code is on your own domain, such as go.yourbrand.com, you decide where that domain points. If you ever leave a vendor, you can point the domain at a new service and recreate the same addresses, and the printed codes follow. Set up your domain before you print, because the domain is baked into the pattern.
  2. Keep the destination stable. Point the link at a page you'll keep, like /menu, rather than a page named after this season's campaign. With a dynamic code you can still re-point it, but a stable page saves you remembering to.
  3. Test-print at real size. Print one copy at the size it will really be, put it where it will really go, and scan it with a few different phones, including an older one.
  4. Download a print-quality file. Use a large PNG or an SVG. A small image stretched to poster size blurs.
  5. Print a short address under the code. Anyone whose camera won't read it can still type it.

A quick check before you reprint

Five minutes with a phone and a laptop usually tells you which of the causes above it is:

  1. Scan the printed code with two different phones. If neither reads it, the cause is physical.
  2. If it reads, note the address the phone previews: your site, a vendor, or a short link.
  3. Paste that address into the link tracer to see every redirect it passes through and where it finally lands.
  4. If it ends on the vendor's "expired" or upgrade page, talk to the vendor or reprint on a code you control. If it ends on a missing page, fix or re-point the destination.
  5. Whatever you change, scan the printed copy again to confirm it lands where you expect.

A code on a flyer should keep working for as long as the flyer exists. If it doesn't, work through the checks above before you pay for a reprint, because several of these causes can be fixed without one.

Questions people ask

Do QR codes expire?

A static QR code never expires, because the destination is stored in the pattern itself. A dynamic code stops working only if the service behind it turns off its short link, which some vendors do when a trial or subscription ends.

Can I get a dynamic QR code without a subscription?

Yes. Track Link's Free plan includes 3 saved dynamic QR codes with a free Google or Microsoft sign-in and no credit card. Those codes keep working if you never upgrade.

Will my Track Link QR codes stop working if I cancel?

No. Printed codes keep redirecting after you cancel or downgrade, and past your plan's limits. A code stops only if you pause or delete its link, change the link's slug, or if we take the link down for abuse or a breach of our Terms.

Can I fix a static QR code that points to a dead page?

You can't change what a static code says. If it points to your own website, set up a redirect from the old address to a page that exists. Otherwise the only fix is to reprint.

How big should a printed QR code be?

A common rule of thumb is about one tenth of the scanning distance, so a code read from 2 meters should be roughly 20 cm wide. Test-print it at real size and scan it with a few phones before the full run.

See it on your own links

Track Link is free to start: sign in with Google or Microsoft, no credit card.