Websites

Why QR codes stop working, and how to make one that lasts.

A QR code on a menu, a van or a flyer can stop working long after it was printed, usually because it pointed at someone else's link service. This guide explains why, how to deal with codes already printed, and how to make one that keeps working.

Updated 29 October 2026, about 8 minutes to read

The short answer

A printed code usually stops because it was a dynamic code from a generator whose free trial or plan ended: the code points at the generator's short link, and the generator switched it off. A static code holds your web address itself, so there is nothing in it to expire. Make a static code that points at a page on your own domain, such as yourdomain.com/menu, so you can change where it leads without reprinting.

Why a printed code stops working

A QR code is a way of writing a web address that a phone camera can read. There are two kinds, and the difference decides whether it can stop:

  • A static code holds your address itself, such as yourdomain.com/menu. Nothing in it can expire, and it works for as long as that address works.
  • A dynamic code holds a short address that belongs to the company that made it, which then forwards visitors to your page. It works for as long as that company keeps the forward running for you.

A common story: a generator offers free codes, the small print says the free period is a trial, and when the trial ends the short address stops forwarding or shows a page asking you to pay. The code on the menu still scans. It now leads somewhere useless.

The other causes:

  • The page it points at moved or was deleted, often in a website redesign that did not redirect the old address.
  • The domain lapsed, which takes every code pointing at it down at once.
  • The link service closed. Google's own link shortener, goo.gl, stopped making new links years ago, and in 2025 Google said it would switch off the old links that showed no recent activity.
  • The print: too small, too little contrast, a glossy finish, a curved surface or wear.
  • Someone stuck their own code over yours. The FTC has warned about scammers covering real QR codes, on parking meters for example, with codes of their own.

Find out what your printed code does

Point a phone camera at the code and do not tap yet. The camera shows the web address, or its domain, before it opens anything:

  • If it shows your own domain, the code is static, or forwards through something you control. Tap it and check the page loads.
  • If it shows another company's domain, often a short name with qr in it, the code is dynamic and depends on that company.
  • If it shows an address you do not recognise at all, on a code in a public place, someone may have covered yours. Look for a sticker.

Scan it on a second phone, ideally an Android one if the first was an iPhone, and on mobile data, so you see what customers see.

Static or dynamic: which to use

Dynamic codes have two real advantages: you can change where they lead after printing, and the company counts the scans for you. Both come at the price of depending on that company for as long as the print exists, at whatever its plan costs by then.

A static code that points at your own domain gets you both advantages without the dependency:

  • You change where it leads by changing a page or a redirect on your own website.
  • You count the scans in your own analytics, by adding tracking tags to the address the redirect sends people to.
  • Nobody else can switch it off, as long as your domain is renewed.

So use a dynamic code only if you will happily pay for the service for as long as the printed item is in use. For a menu that stays on the tables for years, or a van wrap, that rarely makes sense.

Point every code at your own domain

Make a short page address on your own website for each printed item: yourdomain.com/menu for the table cards, yourdomain.com/van for a plumber's vans, yourdomain.com/flyer for a leaflet drop. Make the QR code point at that address. Then:

  • If the address is a page, edit the page when things change, such as a new menu or new opening hours.
  • If it should send people elsewhere, such as your booking tool's own page, set it up as a redirect on your site. When you change booking tools, you change the redirect, not the print.
  • Add tracking tags to the destination, for example utm_source=qr, utm_medium=print and utm_campaign=menu, so your analytics shows how many visits came from each printed item.

WordPress, with a redirect plugin, and the common website builders all let you set up redirects. A short, simple address also makes a code with fewer, larger squares, which is easier to scan when it is printed small.

Codes already printed that have stopped

If the code is dynamic and the generator account still exists, sign in. Depending on the company, you may be able to pay to switch it back on, and to change where it points to a page on your own domain, so that from then on only the generator's forward stands in the way.

Then plan the replacement:

  • Make new static codes that point at your own domain.
  • Replace the cheap items first: table cards, posters and flyers.
  • Cover codes on expensive items, such as a van wrap or a shop sign, with a sticker carrying the new code, sized and placed to hide the old one completely.
  • Keep paying for the old dynamic codes only until the last printed item that carries them is gone.

If the generator has closed or the account is lost, the old codes cannot be fixed. Cover or replace them, and print the web address in words next to each new code.

A cafe's table codes, start to finish

Say a cafe printed table cards two years ago with codes from a free generator. One Saturday, customers start asking for paper menus: the codes now open a page telling the cafe to upgrade. The owner works through it in order:

  • She scans a card and sees the generator's domain, so the codes are dynamic.
  • She signs in to the old account and pays for one month, which switches the codes back on, and points them at a new page on her own site, the cafe's domain followed by /menu.
  • She makes a static code for that same address, tests it on two phones under the cafe's lights, and orders new cards with the web address printed underneath.
  • When the new cards are on every table, she cancels the generator's plan.

In the autumn the menu changes. She edits the page, and nothing needs reprinting.

Choosing a generator

Any generator that makes static codes will do. What to look for:

  • It says the code is static, or that it contains your address directly.
  • When you scan the test code, the camera shows your address, not the generator's.
  • It lets you download the code without an account or a trial.
  • It offers a vector file, such as SVG or EPS, for print, so the code stays sharp at any size, and a large PNG for screens.

Be wary of a free generator that asks you to sign up before you can download. That is often the sign of a dynamic code on a trial. Denso Wave, the company that created the QR code, says no licence or fee is needed to use one, so the code itself should never cost you anything.

Make it scan in the real world

  • Leave a clear margin. Denso Wave's specification calls for a quiet zone four modules wide on every side, a module being one of the small squares. Do not let a border, text or a photo run up to the code.
  • Print a dark code on a light background. If you want other colours, test them on several phones before printing.
  • Size it for the distance. A code on a table card is scanned from close up, and one on a poster across the street is not. Test at the real distance before you print.
  • Keep the address short, so the code has fewer, larger squares.
  • If you put a logo in the middle, the code relies on its error correction to read the part the logo covers. QR codes have four levels of error correction, and the higher levels survive more damage but make the code denser. Choose a high level and test it.

Test before you print

A failed print run costs more than ten minutes of testing:

  • Print a proof at the real size, on the real material if you can, glossy or matte.
  • Scan it with an iPhone and an Android phone, in the light where it will be used: a dim restaurant, a shop window, a street.
  • Scan it from the distance customers will stand at.
  • Follow it all the way: the page loads on mobile data, it is the right page, and the visit shows up in your analytics with its tracking tags.
  • Ask someone who has never seen it to try.
  • Write the destination address on the print file, so whoever reprints it later knows where it should go.

Where codes fail

  • Glossy laminate and shop windows reflect light across the code.
  • Curved surfaces, such as cups and bottles, bend the squares.
  • Vans move. Put the code where people see it while the van is parked, and print the web address in large text too.
  • Menu sleeves and glass collect scratches and reflections over time.
  • Low on a poster, a code can end up behind a bin, a bike or a queue.

Always print the web address in words next to the code, for people whose camera will not read it and for anyone who wants to check where it leads. A restaurant with codes on every table, or a hotel with them in every room, should check a few each month for wear and for stickers.

Keep printed codes from being hijacked

Codes in public places can be covered with a scammer's own, and customers cannot tell by looking. The FTC advises people to check the address before they open a code found in an unexpected place. You can make that check easy:

  • Point every code at your own domain, so the address customers see matches the business in front of them.
  • Print the address in words next to the code, so they can compare.
  • Check your codes in public places, such as windows, signs and noticeboards, for stickers.
  • Never send a printed code to a page that asks for card details, unless it is your own checkout.

Codes that are not web links

QR codes can also hold Wi-Fi details, a contact card or plain text. These are static by nature, so they never depend on a service, but they hold the details themselves:

  • A Wi-Fi code stops working the day you change the Wi-Fi password or network name. Print it on something cheap to replace, and make a new one with the new password.
  • A contact card code holds a name, number and email address as they were on the day it was made. If any of them may change, point the code at a contact page on your website instead.

A checklist for every new code

  • A static code, pointing at an address on your own domain.
  • A page or a redirect on your site for each printed item, with tracking tags.
  • A vector file for print, with a clear margin around the code.
  • Dark on light, sized for the distance, tested on two phones in the real light.
  • The web address printed in words next to it.
  • The domain set to renew automatically, as what happens when your domain expires explains.

A code lasts as long as the address behind it. Choose that address the way you would choose a domain name: short, and something you will keep for years. For a printed campaign, the page behind the code can be one of your landing pages for ads, built for that one leaflet.

Questions people ask

Do QR codes expire?

A static QR code cannot expire, because it holds the web address itself. It keeps working for as long as that address works. A dynamic code holds a short link run by the company that made it, and it stops when that company stops forwarding it, often when a free trial or a paid plan ends.

Is there a free QR code generator with no expiration?

Any generator that makes static codes gives you a code that cannot expire, and many do it free without an account. Check by scanning the test code: if the camera shows your own address, it is static. If it shows the generator's domain, the code depends on that company.

Can I change where a QR code goes after it is printed?

Not with a static code that points straight at the final page. Point it at an address on your own domain instead, such as yourdomain.com/menu, and you can change the page or the redirect behind it whenever you like, without reprinting.

How do I know if a QR code is static or dynamic?

Scan it with your phone's camera and read the address it shows before you tap. Your own domain means static, or a forward you control. Another company's short domain means a dynamic code that depends on that company staying in business and on your plan with them.

Are QR codes free to use?

Yes. Denso Wave, the company that created the QR code, says no licence or fee is needed, as long as the code follows the published standards. The words QR Code are its registered trademark, but the pattern itself is free to use. You only pay if you buy a service, such as dynamic codes.

Why does my QR code scan but go to the wrong page?

Either it was dynamic and the service now shows its own page, or the page it pointed at moved or was deleted and your site sends visitors elsewhere. Scan it, read the address, then fix the forward or add a redirect on your site from the old address to the right page.