Why Your Printed QR Code Stopped Working (And How to Avoid It Next Time)

A QR code that scanned fine last month is suddenly dead. Here are the real reasons printed codes fail and how to make one that keeps working for years.

You printed it. It worked. You scanned it to check, it went where it should, you sent the file to the printer and moved on. Now it is on a thousand flyers, or a banner, or the side of a box, and it does not work anymore.

There are only a few reasons this happens, and every one of them is preventable. Here is what actually went wrong.

Reason 1: it was a dynamic code and the subscription lapsed

This is the most common and the most painful, because the code is physically perfect and still dead.

A dynamic QR code routes through a provider’s redirect server instead of pointing straight at your destination. That is what lets it be edited and tracked. But it means the code only works as long as that server keeps answering. If your subscription ended, you hit a scan limit, or the provider shut down, the redirect stops and every code you made through them fails at once.

There are real, documented cases of exactly this: people created codes on a free tier, printed and installed them, and discovered weeks later that the codes had gone dark unless they paid a recurring fee. Nothing was wrong with the printing. The free tier simply expired out from under them.

How to avoid it: If the link does not need to change and you do not need scan tracking, do not use a dynamic code at all. Use a static one, where the destination is baked into the pattern and there is no server to lapse.

Reason 2: the destination page is gone

A static code is permanent, but it points somewhere, and if that somewhere disappears, the scan lands on a 404. The code reads fine. The page behind it is what failed.

This happens when a campaign URL gets deleted after the campaign ends, a product page moves without a redirect, or a free link-shortener used inside the code shuts down.

How to avoid it: Point codes at URLs on a domain you own and control, not at a shortener that might disappear. If you must point at a temporary page, keep that page alive as long as the printed code exists in the world, or set up a permanent redirect when you retire it.

Reason 3: the code got physically wrecked

QR codes have error correction, so they tolerate some damage, but not unlimited damage. Printing too small, low contrast between the code and its background, a fold or crease through the pattern, or a glossy laminate that throws glare can all push a code past what scanners can recover.

How to avoid it: Keep strong contrast, ideally dark code on a light background. Do not shrink it below roughly an inch for anything scanned at arm’s length, larger for anything scanned from a distance. Leave the quiet zone, the empty margin around the code, intact. Test the actual printed piece, not just the file on your screen.

Reason 4: you added a logo and broke the scan

Dropping a logo in the center is fine until it covers too much of the pattern and eats into the data the scanner needs. Then it reads on your phone, under good light, held still, and fails on a customer’s older phone in a dim room.

How to avoid it: Keep the logo small and centered, and lean on a higher error-correction level so the code can absorb the covered area. Then test on more than one phone before you commit to print.

The pattern behind every failure

Three of these four failures share a root cause: the code depended on something that did not last. A subscription, a temporary page, a shortener. The codes that keep working for years are the ones with the fewest moving parts, a static code pointing at a stable URL on a domain you control.

Before you send anything to print, ask one question: what has to keep being true for this code to work in two years? If the honest answer includes “I keep paying a monthly fee” or “this free service stays in business,” redesign it.

QR Forge makes permanent static codes with no subscription to lapse, and lets you add a logo safely with the right error-correction settings, so what you print keeps scanning long after the campaign is over.