Why Your QR Code Stopped Working (and How to Fix It)
If a QR code on your flyers or menus suddenly opens an “expired”, “deactivated” or “upgrade your plan” page, it is almost certainly a dynamic code: it points to the generator’s own redirect server, and the generator switched it off when your trial or plan ended. The printed pattern is fine — the link inside it now leads to their page instead of yours. You can pay to reactivate it, or reprint with a static code from a tool like the QR code generator, which puts your link directly into the pattern so there is nothing to switch off.
Static vs dynamic QR codes
A QR code stores a short piece of text, usually a link. The difference between the two kinds is which link.
A static code contains your destination itself, for example https://yourcafe.com/menu. A phone scans it and goes straight there. No one else is involved, nothing has to stay online except your own website, and the code works for as long as the print exists. The trade-off: the content cannot be changed after printing.
A dynamic code contains a short link on the generator’s domain, something like https://qr-vendor.example/a8Kx2. When a phone opens it, the vendor’s server looks up where to send the visitor and redirects them to your menu. That middle step is what makes dynamic codes useful — you can change the destination later or count scans — and it is also what lets the vendor turn the code off. If the subscription lapses, the trial ends or the company closes, their server stops forwarding and shows its own page instead.
Many “free” generators produce dynamic codes by default without making the consequence obvious. Everything works for the first weeks, the code goes onto 500 menus, and then the trial ends.
How to tell which kind you have
You do not need special tools — just look at the link the code contains:
- Point your phone camera at the code. Before opening it, most phones show a preview of the link in the prompt.
- Read the domain. Is it your website, or the name of a QR company or a short-link service?
- If it is the generator’s domain, you have a dynamic code, and that company controls whether it keeps working.
If the link points to your own domain — yourcafe.com/menu — and still fails, the problem is not the QR vendor; the page itself has moved or the website is down. That one is fully in your hands (see below).
What you can do right now
Contact the vendor or pay. If the code goes through the vendor’s server, they are the only ones who can turn it back on. Check your account with them: reactivating may be the quickest fix when you have thousands of printed items in circulation. Read what you are signing up for — whether it is a recurring charge and what happens if you cancel later.
Reprint with a static code. If the printed run is small or due for replacement anyway, make a static code that points straight to your own page and reprint. In the QR code generator, choose Link, paste your URL, and download SVG for the print shop. The code contains only your link; there is no account, trial or redirect server behind it.
Cover the old code. For menus, table cards or posters you want to keep using, a sticker with the new code over the old one is a practical bridge until the next print run. Make the sticker big enough to cover the old code fully, so phones do not pick up the wrong one.
If the code points to your own domain, redirect it yourself. When the link inside the code is on a domain you control and the page simply moved, set up a redirect on your website from the old address to the new one. Your web host or website builder can usually do this. Every code already printed starts working again without reprinting anything.
How to avoid it next time
- Use a static code. For anything printed, a static code is the safe default: it cannot expire because nothing sits on a server.
- Point it at your own domain. Even with a static code, link to a page on your own website rather than to a file-sharing link or a third-party page that may disappear.
- Want flexibility? Build it in yourself. Use a stable address on your own site, such as
yourcafe.com/menu, and change what that page shows — or redirect it — whenever the menu changes. You get the main benefit of a dynamic code without depending on anyone else. - Check before printing. Scan the final proof with two different phones, open the link, and confirm the domain is yours. A static code cannot be edited later, so a typo in the URL means reprinting.
Other reasons a QR code won’t scan
Not every failure is a switched-off redirect. If the phone does not recognise the code at all, the cause is usually physical:
Low contrast. Light grey on white, or dark blue on black, gives the camera too little difference to work with. Fix: use a dark code on a light background with strong contrast. The generator warns you when contrast is too low.
Inverted colours. A light code on a dark background looks stylish, but many scanners cannot read it. Fix: keep the code darker than the background; the generator flags inverted colours.
Too small, or no margin. A tiny code on a business card or a code printed right against other graphics can be hard to pick up. Fix: print it larger, and keep a clear light border around all four sides.
Damaged print. Scratches, folds, stains, glare from lamination or a logo placed over the middle can remove too much of the pattern. Fix: choose the highest damage tolerance (error correction) when you create the code — it adds redundancy so the code survives partial damage — and use a matte finish where possible.
Too much data. The more text a code holds, the denser and smaller its squares, and the harder it is to scan. Long URLs with tracking parameters are a common culprit. Fix: use a shorter link — a clean page address on your own site — and print the code a bit bigger. The generator tells you when the content is too long for one code.
For Wi-Fi codes on tables or in rentals, there are a few extra points to watch; see how to make a Wi-Fi QR code.
Frequently asked questions
Do QR codes expire on their own?
No. A QR code is just a printed pattern. Static codes never expire; dynamic codes stop working only when the redirect server behind them stops forwarding visitors.
Can I change where my static QR code points?
Not the code itself — the link is part of the pattern. But if it points to a page on your own domain, you can change that page or redirect it to a new address.
Will a code from this generator stop working if the site disappears?
No. The QR code generator makes static codes in your browser. Your link lives inside the pattern, so the code keeps working without this website.
Why does my code work on one phone but not another?
Usually it is borderline: low contrast, small size, glare or a damaged print that a better camera can still read. Improve contrast and size and raise the damage tolerance, then test again on several phones.