My QR code stopped working: what to do now

A code that scanned fine last month and now shows an error page usually has one of five causes. Find yours, then pick the fix that costs least.

Create a code that won't be switched off Read our no-expiry pledge

The most common cause: a trial or plan that ended

Many QR generators make dynamic codes by default. A dynamic code does not hold your web address. It holds a short link on the generator's own domain, and the generator forwards each scan to your page. That lets you change the destination after printing, but it also means the code only works while that company keeps forwarding it.

Some services offer dynamic codes on a free trial. When the trial or the subscription ends, they stop forwarding scans until you pay, and people who scan your code see the generator's page instead of yours. By then the code is already on menus, posters or packaging. Some services explain this in their help pages rather than on the screen where you make the code.

The other causes

  • The destination is gone. The code works, but the page it opens was moved or deleted, or its domain expired.
  • The print is damaged. Scratches, folds, stains or a sticker over one corner can hide the three large squares a phone needs to find the code.
  • The contrast is too low. Light codes on dark backgrounds, pale colours, or glossy material under strong light are hard for cameras to read.
  • The code is too small. Codes printed under about 2 cm wide, or read from far away, often fail, especially when they hold a long address.

How to tell which case you are in

  1. Does the phone see a code at all? If the camera shows no link, the problem is the print: damage, contrast or size. Try another phone, better light and a shorter distance.
  2. Look at the address before you open it. Most camera apps show it first. If it is your own website, the code is static: nothing can switch it off, and the problem is the page itself.
  3. If it is a short domain belonging to a QR company, the code is dynamic. Open it. A page about an expired trial, an inactive code or an upgrade means the service stopped forwarding it.
  4. If the address opens your own site but shows an error, the destination moved or was deleted. Fix the page, or point the code at the new address.

What to do now

For a print problem, reprint larger, dark on light, on matt material, and scan a proof before ordering. For a dead destination, restore the page or set up a redirect from the old address on your website. If the code is dynamic and still active, change its destination wherever it was made.

For a dynamic code that was switched off, the printed pattern points at the generator's domain, so only that company can bring it back. You have three options:

  • Pay the old service. If you have many codes printed, a year of their plan can cost less than a reprint. Check their terms for what happens when that year ends.
  • Ask them to redirect. Write to their support, explain that the code is printed, and ask whether they will forward it to your page. They may agree; they do not have to.
  • Reprint once with a code that will not be switched off. It costs a print run, and then the problem is over for good.

How QR Lasts avoids this

Every code made here keeps redirecting whether or not you ever pay for anything. The only reason we stop a code is abuse, such as a destination that Google Web Risk flags as phishing or malware. If the site ever closes, we will give 12 months' notice. The details are in our no-expiry pledge.

You can make a dynamic QR code for free and change its destination after printing. A free account includes 10 editable codes; Pro makes them unlimited for €59 a year or one lifetime payment. If you only need a code that never changes, a static code holds your address in the pattern and needs no server at all.

Before you print the new code

Print it at least 2 cm wide, larger if people scan it from a distance. Keep it dark on a light background with a clear margin around it, and away from folds and glossy glare. Scan a printed proof with two different phones before you order the full run.

Create a code that won't be switched off Read our no-expiry pledge