Do QR Codes Expire? No, But the Redirect Inside Yours Might

A QR code is a printed string of text and it never changes. What stops working is the redirect a dynamic QR service put inside it. How to tell which one you have, and how to keep a code you can...

Do QR Codes Expire? No, But the Redirect Inside Yours Might

喜欢就分享一下吧

No. A QR code is a printed pattern that encodes a string of text, and that string will still be the same string in fifty years. What expires is the web address written inside it, and if you used a dynamic QR service, that address belongs to them and not to you.

That swap is why this question gets asked so often, and why the first page of Google is full of companies selling the exact product that creates the problem.

Nothing in a QR code can expire

The pattern is a grid that spells out characters. Your camera reads the characters. If they look like a URL, your phone offers to open it. There is no expiry field in the QR specification, no license check, no server that has to still be running for the squares to keep meaning what they mean.

Someone in the r/qrcode megathread framed it well: asking whether you can change a QR code after printing is like asking whether you can change a book that has already been printed. Another put it more bluntly. QR codes are just text. This one reads Hello World, and it will always read Hello World.

So when a code "expires," one of two things happened. Either the page it points at went offline, which is a website problem and would break a plain link the same way. Or the code points at somebody else's redirect and the redirect stopped. The second is what nearly everyone means.

Static vs dynamic QR code

A static code contains your actual destination. Type https://yourdomain.com/menu into a generator and those characters are what the pattern encodes. Nobody sits between the scanner and the destination. Nothing to renew.

A dynamic code contains the vendor's short domain instead, something in the shape of qr.somevendor.io/a1b2c3. When a phone scans it, the vendor's server looks up where you currently want people sent and forwards them there. You can change the destination without reprinting anything. That is a genuinely useful feature, and it is the thing dynamic services are actually selling.

The bill comes as a dependency. Your printed code now relies on the vendor's domain, the vendor's server, the vendor's continued existence, and your subscription staying paid. Any one of those four failing takes the printed code with it. Marketed as "QR codes expire," it sounds like a property of QR codes. It is a property of renting a redirect.

What that looks like when it fails

These are reports from people on r/qrcode who hit the problem, not audited case studies. The pattern in them is consistent enough to be worth reading.

The bronze plaque. Someone posted about a dynamic QR code cast in bronze at a historical landmark roughly fifteen years earlier. The company that generated the code no longer exists, so the redirect is dead and the plaque points nowhere. The metal outlived the startup. The top reply was not gentle: putting a third party dynamic QR code on a bronze plaque was called an extraordinarily stupid idea.

Ads on printed business cards. A business owner printed QR codes from a free generator onto business cards. When the trial ended, the generator started showing ads on the redirect page. The cards were already in clients' hands. Their words: really embarrassing when clients scanned them.

The runaround. The largest thread in that subreddit is somebody looking for a generator that does not do this. "Every purportedly free generator I've tried so far pulls some sneaky trick. Either it won't let me download the code without signing up or it tries to direct me to paid services." The top answer explains the business model: most QR "sites" are dynamic QR services, selling you a tiny website for landing pages at an inflated price.

Put a domain you own inside the code

You can have an updatable destination without renting one.

Encode a URL on a domain you control, such as https://yourdomain.com/qr/menu, into a plain static code. Then run the redirect yourself: point that path wherever the menu currently lives, and change it whenever you like. The printed code never needs to change, because it always said the same thing. It said your domain. Your server logs count the scans.

The trade is real and worth stating. You need to own a domain, remember to renew it, and keep a redirect running. If your registration lapses, you are in the same position as the bronze plaque, only the failure is yours to prevent. A one-line redirect rule in whatever already hosts your site covers most of it, but it is still one more thing you own.

When paying for a dynamic service is the right call

There are honest reasons to buy one.

You do not have a domain and do not want one. You need per-code scan counts with dates, rough locations and device breakdowns in a dashboard, rather than digging through server logs. You are running dozens of codes across campaigns, handed to people who will never touch a config file. You need destinations changed quickly by someone who is not on the engineering team.

In all of those, a paid dynamic service does the job and the subscription is fair value. Know what you are buying: a hosted redirect with a dashboard on top. Budget for it the way you budget for a domain, because it stops working the moment it lapses. And keep it off anything you cannot reprint, which includes engraved signage, permanent installations, and any print run large enough that you will not throw it away.

Find out which kind you already have

You cannot tell by looking. Two codes with completely different futures look identical on paper.

Decode one and read the string. The QR Code Decoder takes an image three ways: upload a file or drag it onto the drop area, paste an image straight from your clipboard, or give it a direct URL to an image file. The reading happens in your browser through a WebAssembly decoder, so the image goes nowhere.

Then look at what comes out:

What you see What it means
Your own domain Static and yours. It lasts as long as your domain registration
A short domain you do not recognise A rented redirect. It lasts as long as that service and your plan
Plain text, WiFi credentials, a vCard No URL at all, so there is nothing to expire

If you are making a new one, the QR code generator here encodes exactly the text you type. It draws the pattern in the page with a JavaScript library, with no account, no shortening step, and no server between the text and the code. That also means it cannot change the destination for you later. If you want that, type your own redirect URL into it and keep the pointing on your side.