Qranite

Why Did My QR Code Stop Working? 9 Causes, Ranked

The Qranite team · June 11, 2026

The most common reason a QR code stops working is an expired trial or subscription on a dynamic code. The printed image is fine; the redirect link inside it was switched off. Other causes: a dead destination URL, low contrast, printing too small, an oversized logo, a dead link shortener, print damage, a changed WiFi password, and scanner quirks.

This guide ranks all nine by likelihood, with a fix for each.

Is the code broken, or is the link inside it?

Start by decoding the code. Point your camera at it and read the preview, or use any scanner app that shows contents before opening them. What you see determines everything.

If the decoded text is your real destination — your menu URL, your network name, your phone number — the code is static. The image itself contains the data, and static codes never expire, from any generator. If a static code fails, the problem is the destination or the print.

If the decoded text is a short link you don't recognize, the code is dynamic. It points at a redirect owned by the generator. When that redirect dies, so does your code. The full distinction is covered in static vs dynamic QR codes.

The 9 causes, ranked by likelihood

Causes 1, 2, 6, and 8 break codes that used to work. Causes 3, 4, 5, and 7 break codes that never worked, or that scan inconsistently. Cause 9 is the scanner, not the code.

#CauseFix
1Expired trial or plan on a dynamic codeReactivate the plan, or reprint as static
2Destination URL changed or deletedRestore the page, or re-point the dynamic link
3Low contrast or inverted colorsDark code on a light background
4Printed too small2 × 2 cm minimum; scan distance ÷ 10 for width
5Logo covers too muchKeep the logo under 20% of the code area
6Link shortener shut downRegenerate with the full destination URL
7Damaged or warped printReprint flat, keep the white quiet zone
8WiFi password changedGenerate a new WiFi code
9Scanner app quirksClean lens, more light, native camera

Cause 1: an expired trial or subscription killed the redirect

This is the trap behind most "my QR code stopped working" searches. Dynamic codes route every scan through the generator's servers. Stop paying, and many providers turn the redirect off — after you've printed.

The published policies are blunt. Per their support docs, qr-code-generator.com deactivates dynamic codes made during its 14-day trial, then redirects scans to an upgrade page. Its Trustpilot rating sits around 1.4 of 5 across 9,200+ reviews. QR Tiger stops free dynamic codes after 500 scans each, and stops all dynamic codes if your plan lapses, per their own policy. QRFY pauses codes 7 days after creation unless you subscribe, per their pricing page.

The fix: sign in to whichever service made the code and check the plan status. If reviving the plan isn't worth it, reprint with a static code, or with a provider whose lapse policy you've actually read. Qranite's policy: if you stop paying, your dynamic codes keep redirecting forever. You lose editing and analytics, never the redirect.

Causes 2 and 3: dead destinations and bad contrast

Cause 2: the destination URL changed or was deleted. The code scans fine and lands on a 404. This is common after site redesigns, menu updates, and domain moves. Fix: restore the old URL, or add a redirect on your own site. It's also the one problem dynamic codes genuinely solve — re-point the link without reprinting anything.

Cause 3: low contrast or inverted colors. Scanners want dark modules on a light background. White-on-black reads unreliably across devices; gray-on-white barely reads at all. Fix: regenerate with a dark code on a light background, and test on two different phones before printing.

Causes 4 and 5: printed too small, or too much logo

Cause 4: printed too small. The floor is about 2 × 2 cm for arm's-length scanning. For distance, divide the scan distance by ten: a code read from 3 meters needs to be 30 cm wide. Business cards and table tents fail this rule constantly.

Cause 5: the logo covers too much. Error correction lets a code survive roughly 30% obstruction at its highest setting. A logo eating 40% of the middle leaves no margin for printing imperfections. Keep logos under 20% of the code area, centered.

Causes 6 and 7: dead shorteners and damaged prints

Cause 6: the link shortener died. A code that encodes a shortener link dies with the service. Google retired goo.gl links in 2025 and broke years of printed codes overnight. Fix: encode the full destination URL. The code gets slightly denser; you lose a dependency.

Cause 7: physical damage. Scratches, sun fading, glossy lamination glare, and curved surfaces all defeat scanners. So does cropping the white margin — a code needs a quiet zone of about four modules on every side. Fix: reprint with the margin intact, mount it flat, and use matte lamination.

Causes 8 and 9: changed WiFi passwords and picky scanners

Cause 8: the WiFi password changed. A WiFi QR code encodes the network name and password directly. Change the password and the code joins guests to nothing. Fix: generate a fresh code. It takes thirty seconds and costs nothing.

Cause 9: the scanner itself. Phones older than iOS 11 or Android 10 may need a separate scanner app. Dirty lenses, dim light, glare, and scanning from a low-brightness screen all cause misreads. Fix: clean the lens, add light, back up 10-20 cm, and raise the screen's brightness.

If you've ruled out all nine, regenerate. A free static code made in your browser has no server dependency and nothing left to fail.

Quick answers

Do QR codes themselves expire?

No. A static QR code is just data printed as a pattern, and it works forever from any generator. What expires is the redirect link inside a dynamic code, when the provider's trial or subscription lapses.

Why does my QR code go to an ad or upgrade page?

The dynamic redirect behind it lapsed and the provider re-pointed it. Per their support docs, qr-code-generator.com sends expired-trial scans to an upgrade page, and ME-QR shows full-screen ads on free dynamic codes.

Can a QR code stop working after it's printed?

The encoded data never changes after printing. What can fail afterward: the dynamic redirect behind it, the destination page it points to, or the print itself through fading, damage, or a cropped margin.

How do I see what my QR code actually contains?

Scan it with any app that previews contents before opening, or paste the image into a QR decoder. A full URL or WiFi payload means static. An unfamiliar short link means dynamic, owned by a generator.

Make a QR code that never expires — free, no signup.

Open the generator