QR code expired or stopped working? Find the cause and fix it
If a QR code expired on you, the code itself almost never broke. Either it depended on a redirect that somebody switched off, the page behind it moved, or the print is unreadable. This guide walks through the eight causes in order of likelihood, each with a quick check and a fix, so you can stop guessing and reprint once.
Start here: find out what the code contains
Before changing anything, upload a photo or screenshot of the code to the QR code reader. It decodes the image in your browser without opening the link and shows exactly what is inside. That sorts the problem into two halves: the code decodes and the trouble is where it points, or it does not decode and the trouble is the print or the scanner. The eight causes below run in order of likelihood.
1. It was a dynamic code and the trial or subscription ended
This is the most common reason a QR code stops working, by a wide margin. Many popular generators create dynamic codes: the pattern holds a short address on the vendor’s domain, and the vendor’s server forwards scans to your page. When the trial ends or the plan lapses, the forwarding stops and every printed copy dies at once. The static vs dynamic explainer covers the mechanics.
How to check
Decode the code with the reader. If the result is a short address on a domain that is not yours, typically a few letters followed by a slash and a random string, it was dynamic. Opening that address in a browser usually shows an error page or a request to upgrade.
Fix
Make a static code that points directly at your page and reprint. The generator on the home page embeds the address in the code itself, so there is no service to lapse. To keep the option of changing the destination later, encode a page on your own domain and change what it forwards to.
2. The destination URL is dead or moved
The code decodes to your own address, but the page behind it has been deleted, renamed or moved to a new site. This happens after website redesigns, when a menu PDF is replaced with a new file under a different name, or when a hosting plan is cancelled.
How to check
Copy the decoded address into a browser. A 404 page, a “site cannot be reached” error or a redirect to a homepage means the destination has changed.
Fix
Restore the page at the original address, or set up a redirect from the old address to the new one on your own site. Both options keep the printed code working. If neither is possible, generate a new code for the new address and reprint.
3. A broken redirect or link shortener
Codes made from a public link shortener behave like dynamic codes: they depend on the shortener staying in business and keeping your link active. Some delete unused links after a period, some have shut down, and some show an interstitial page that confuses people.
How to check
If the decoded address belongs to a shortening service rather than to you, open it and follow the chain. If it stalls, warns, or lands somewhere unexpected, the redirect is the problem.
Fix
Encode the full destination, or a short path on your own domain that forwards to it. Your own domain is the only shortener nobody else can turn off.
4. Low contrast or poor print quality
Scanners need dark modules on a light background with a clear difference between the two. Pale grey on white, brown on beige, a faded print, a photocopy of a photocopy, or ink that has bled on cheap paper all reduce contrast until the phone cannot separate the modules.
How to check
Photograph the printed code in ordinary light and upload it to the reader. If a clean digital file decodes but the photo of the print does not, the print is the weak link. The generator’s contrast checker also warns when a colour choice falls below a safe ratio.
Fix
Reprint with black or a very dark colour on white or a very light background, at a size where each module is at least 0.5 mm. Use the SVG or PDF export for anything a print shop will handle so nothing is resampled.
5. Inverted colours (light on dark)
A white code on a dark background looks striking and fails on a large share of phones. The QR standard defines dark modules on a light background, and while some scanner apps detect inverted codes, the built-in camera apps most people use often do not.
How to check
Look at it. If the modules are lighter than the background, it is inverted. Test with the default camera app on both an iPhone and an Android phone rather than a dedicated scanner app.
Fix
Swap the colours so the modules are dark. If the design needs a dark background, place the code on a light panel with a proper quiet zone around it.
6. Damaged or missing quiet zone
The quiet zone is the blank margin around the code, four modules wide on every side. Designers frequently crop it away, run text or a border right up to the edge, or place the code on a busy photograph. Without it the scanner cannot find where the code starts.
How to check
Measure the blank space around the code. It should be at least four times the width of one small square, and it should be the same colour as the code’s background.
Fix
Re-export with the quiet zone included (the generator defaults to four modules) and keep design elements outside it. If the code is already printed inside a frame, a white sticker with a fresh code is cheaper than arguing with a scanner.
7. The code is too small or too dense for the distance
A code that scans from a phone held 20 cm away can be unreadable from two metres. Dense codes, such as a full contact card or a long URL with tracking parameters, have many small modules and need more width for the same distance.
How to check
Scan from the distance people actually use. If it works up close and fails from where it is mounted, size is the problem. The size guide has a calculator: as a rule the width should be at least one tenth of the scanning distance.
Fix
Print larger, or shorten the content so the code has fewer modules. A short path on your own domain turns a 60-character URL into a 25-module code.
8. The phone or app cannot read it
Occasionally the code and the print are fine and the phone is the problem. Android phones from before version 9 or 10 often have no scanner in the camera app, some cameras need the QR setting switched on, and a smudged lens can defeat any code.
How to check
Try a second phone. If a modern iPhone or Android phone reads the code immediately, the first phone needs a scanner app or a clean lens.
Fix
Print a short instruction next to the code (“open your camera and point it here”), and for older phones, the web address in plain text beneath it so nobody is stuck.
What “QR code expired” really means
A QR code has no expiry date. It is a picture of text, and the picture does not change. When a code that used to work stops, one of three things has happened: the service forwarding it has ended (causes 1 and 3), the page it points to has gone (cause 2), or the physical code has become unreadable (causes 4 to 8). The first is by far the most frequent, and it is the one this site exists to prevent: every code generated here is static, verified by decoding it before download, and free of any server that could later be switched off.
Frequently asked questions
Why did my QR code expire?
Almost always because it was a dynamic code: the pattern held a short address on the generator's domain, and the forwarding stopped when a trial or subscription ended. Decode it with the reader; if the result is a short vendor address rather than your own page, that is what happened. Reprint with a static code.
Can a QR code expire on its own?
No. There is no date or counter inside a QR code, and a static code has no server to check in with. It keeps scanning for as long as the print is legible. The only things that expire are services around the code: a redirect you were renting, or the page it points to.
How do I know whether my QR code is static or dynamic?
Upload it to the QR code reader. A static code decodes to your actual content: your web address, Wi-Fi details, a contact or plain text. A dynamic code decodes to a short address on a domain you do not own, which then forwards to your page for as long as the vendor allows.
My QR code expired. Can I get it back?
Only by paying the vendor whose redirect it uses, and only if they still offer that plan and still hold your link. It is usually cheaper and more reliable to decode the old code, recover the destination, make a static code for it and reprint, so nothing can lapse a second time.
Why does my QR code work on one phone but not another?
The usual causes are an inverted colour scheme, a code that is small or dense for the distance, or an older phone without a scanner in its camera app. Test with the built-in camera on a recent iPhone and a recent Android phone; if both read it, the code is fine and the outlier is the phone.
Do printed QR codes wear out?
The code has error correction, so it survives scratches, fading and small stains up to a limit, between 7 and 30 percent of the area depending on the level chosen. Beyond that, outdoor sunlight, abrasion and moisture can make a print unreadable. Laminate outdoor codes and reprint when the contrast drops.
Related
Last updated . QR Code is a registered trademark of DENSO WAVE INCORPORATED.