Why Did My QR Code Stop Working?

Most broken QR codes fail for one of eight reasons. Here is how to find yours in a few minutes, and how to make sure the replacement never breaks again.

First, find out what the code actually contains

Before changing anything, read the code. Open our QR code scanner, point your camera at the printed code or upload a photo of it, and look at the result. You will see the exact link or text stored in the pattern, before anything is opened.

The PloraKit QR scanner showing the full link stored in a scanned code, with Copy and Open buttons
The scanner shows the stored link first, so you can see where a code points without opening it.

What you see tells you which group your problem belongs to:

  • The scanner can't read the code at all: the problem is the printed code itself (causes 4 to 8 below).
  • It reads a link on a service you don't recognise, often a short domain with a code at the end: the code goes through a redirect service (causes 1 and 2).
  • It reads your own link, but the page is gone or wrong: the destination changed (cause 3).

1. A free trial for dynamic codes ended

This is the most common cause for codes that worked perfectly for a week or two and then stopped. "Dynamic" QR codes don't contain your link. They contain a short link on the provider's server, which forwards visitors to your page. If the account behind it ends, the forwarding stops.

Several popular services say so in their own help pages: dynamic codes made during a free trial are deactivated when the trial ends, or must be moved to a paid plan before the trial expires to keep working. A paused code usually opens a notice page instead of your website.

Fix: either pay to reactivate it, or replace it with a static code that holds your link directly. Our step-by-step guide How to replace an expired QR code covers both, including how to avoid reprinting everything.

Codes made from a shortened link (for example from a URL shortener or a marketing tool) depend on that short link. If someone deleted it, the account was closed or the free plan expired, the code now leads to an error page.

Fix: make a new code that contains the full, final address of your page. Shorter content makes a simpler code, but a long link is fine: our generator warns you only when a code gets genuinely dense.

3. The page the code points to moved or was removed

The code is fine, but the website changed: a new shop system, a renamed menu PDF, an expired event page or a domain that wasn't renewed.

Fix: if you control the website, put the page back at the old address or add a redirect from the old address to the new one. That repairs every printed code at once. For the future, point codes at a stable page you control, such as yoursite.com/menu, and update that page instead of the code.

4. Low contrast or inverted colors

Phone cameras look for dark modules on a light background. Pale colors, dark backgrounds or a busy photo behind the code are the most common design reasons a code fails, and inverted codes (light dots on dark) fail on many phones.

PloraKit generator warning that light dots on a dark background are hard to scan, with a Fix it for me button
Our generator tests every design with a real scanner and offers a one-click fix.

Fix: recreate the code with dark dots on a light background, ideally with a contrast ratio of 4.5:1 or more. In our generator, the "Fix it for me" button does this for you.

5. It is printed too small

A code that scans on your screen can fail on a sticker. Each module needs to be big enough for the camera at the real scanning distance. A good rule is that the code should be about one tenth of the distance: 10 cm wide for a poster read from 1 meter. Read QR code size for printing or use the size calculator.

6. The quiet zone was cropped

The empty border around a code is part of the code. Designers sometimes trim it or place text and graphics right up to the edge. Scanners then can't find where the code begins. Leave a clear margin of at least four modules on every side.

7. A logo covers too much of the code

QR codes can lose part of their pattern and still scan, thanks to error correction. A logo uses up that budget. Keep the logo under about 30% of the code's width and use error correction level H. Our generator switches to H automatically when you add a logo.

8. The print is damaged, glossy or curved

Scratches, fading in the sun, reflections from glossy lamination and codes wrapped around bottles all make scanning harder. Use matte finishes for signs, print larger on curved surfaces and replace worn stickers.

Make the replacement last

The safest QR code is a static one that contains your final link and points to a page you control. There is no service in between that can expire, and nothing to renew. Make one in our free QR code generator, check it with the scannability checker, and scan a test print with two different phones before you print in quantity.

Frequently asked questions

Can a QR code expire by itself?

A static QR code cannot expire: the content is stored in the pattern. Dynamic codes can stop working when the service behind them ends, pauses or is no longer paid for.

How do I know if my QR code is dynamic?

Scan it and look at the link before opening it. If it points to a short address on a QR or link service instead of your own website, it is probably dynamic.

Can I fix a broken QR code without reprinting?

Only if the code points to an address you control: put the page back or add a redirect. Codes that point to an expired third-party service need a new code; a sticker over the old one is the quickest fix.