Quick QR Maker
Back to Blog

Do QR Codes Expire? Static vs Dynamic Explained

The direct answer, how to tell which kind of QR code you have, and a full comparison of static vs dynamic QR codes so you can pick the right one.

Comparison · 12 min read

Static QRDynamic QRQR BasicsComparison

The short answer is: a QR code, as a technology, cannot expire. What people actually experience as "my QR code stopped working" is almost always a dynamic QR code whose provider stopped forwarding it: a business decision, not a flaw in the QR standard. This guide explains the difference plainly, gives you a way to check which kind you have, and tells you when paying for a dynamic code is actually worth it.

Can a QR code expire on its own?

No. A QR code is a two-dimensional barcode with built-in error correction, standardized by ISO/IEC 18004. Once that pattern is printed or saved as an image, decoding it always produces the same result: there is no clock inside it, no expiry date, and no way for the pattern itself to "turn off." If a QR code has genuinely stopped working, one of three things happened: the thing it points to no longer exists (a web page was taken down, a WiFi password changed), the code is a dynamic code and its provider stopped redirecting it, or the code was damaged or printed too small to scan reliably.

Most reports of an expired QR code trace back to the second case, so it is worth knowing exactly how that happens.

How do I tell if my QR code is static or dynamic?

The easiest way to check is to scan it and look at what opens.

  1. Scan it with your phone's camera, the way anyone else would.
  2. Look at the URL bar if it opens a web page. If the domain is the one you expect (your own website, or the destination you originally set), you very likely have a static code, or a dynamic code that is currently still working.
  3. If the domain is unfamiliar (a short-link domain like bit.ly, qr.page, qrco.de, or a provider's own redirect domain that is not the site you meant to link to), you have a dynamic code. The scan first hits the provider's server, which looks up your real destination and forwards you there.
  4. If it is not a URL at all (it fills in WiFi credentials, opens a contacts card, or pre-fills a text message or email directly), it is static by definition. Those content types have nothing to redirect through; the data is in the code itself.

If you did not create the code yourself and have no way to scan it (a code that already stopped working, printed on something you cannot access), you cannot tell which kind it was after the fact. That is itself a small argument for static codes: their behavior is never a mystery.

What is the difference between static and dynamic QR codes?

StaticDynamic
ExpiryNever; the content is baked into the patternStops working if the provider's redirect service is discontinued, the account lapses, or the subscription ends
Editable after printingNo; a new destination needs a new codeYes; change the destination URL without reprinting
Scan analyticsNone; nothing calls homeYes; scan counts, timestamps, device and location data
CostFree, indefinitelyUsually free to create, but ongoing analytics and multiple active codes are typically paywalled
Code densitySlightly denser for long content, since the full destination is encodedUsually simpler and denser-looking codes, since it only encodes a short redirect link
PrivacyNothing is logged by a third partyThe provider can see every scan: when, roughly where, and on what device
DependencyNone; works as long as the destination itself existsDepends on the provider staying in business and keeping that specific redirect active
Best forAnything permanent or one-off: business cards, WiFi signage, product labels, plaques, warranty infoTime-limited campaigns where the destination may change, or where scan analytics is the point

Do Canva, Chrome, Vistaprint or QR.io codes expire?

People ask this about specific tools far more often than about QR codes in general, and the answer is almost never about the brand. It is about whether that tool made a static code or a dynamic one. A generator that writes your destination into the pattern makes a code nothing can switch off. A generator that routes scans through its own domain makes a code that lasts exactly as long as that company keeps forwarding it.

Do Chrome QR codes expire?

No. Chrome's built-in "Create QR code for this page", from the address bar or the right-click menu, writes the page URL straight into the pattern. There is no Google redirect in the middle and nothing to switch off. A code made this way keeps resolving to the same address for as long as that address exists. If the page later moves or comes down, the code is not the thing that failed.

Do Canva QR codes expire?

Canva runs two separate QR tools, so the honest answer is that it depends which one you used. Its static QR app fixes the destination at the moment you generate the code. Its dynamic QR codes are built to be changed: Canva's help pages say you can update the destination URL at any time and the change applies everywhere that code appears, with no reprinting. That editability is the point of them, and it is also the dependency, because a dynamic Canva code reaches its destination by asking Canva where to go first.

Canva does not publish what happens to an already-printed dynamic code if the account that created it goes away. If you have printed one, the check earlier in this guide is worth the two minutes.

Do QR.io codes expire?

The dynamic ones do, and QR.io documents it plainly, which is more than most do. Its free trial runs seven days. The help center states that when the trial ends, dynamic QR codes "will be paused" and are reactivated if you upgrade, while "Static QR Codes do not expire and will work forever."

A paused code is precisely what people mean when they say a QR code expired: the pattern is intact, the printing is fine, and the scan goes nowhere because a subscription lapsed.

Do Vistaprint QR codes expire?

Vistaprint does not publish an expiry policy for the QR codes added through its design tool, and most print vendors do not either. No published policy is not a promise in either direction, so treat a code from any print vendor as unknown until you have scanned it and seen where it goes.

How do I check whether a provider's codes expire?

The check does not change: scan the code and read the domain in the address bar. Your own domain, or the destination you actually chose, means the code is yours and permanent. A short-link or provider domain you never chose means the code works at that provider's discretion. Before committing to a print run, find the provider's own wording on what happens when a plan ends. If you cannot find it, plan for the code to stop.

Why did my printed QR code stop working?

Almost always because it was a dynamic code and the provider stopped forwarding it, or because the destination itself moved. The printed pattern is rarely what failed.

To find out which, first scan it (if you still have a working copy or photo of it) to see whether it is dynamic and check what domain it tries to reach. If it is a dynamic code and the provider's service is gone, there is no way to recover the original destination through the code itself. You will need to know what it originally pointed to from your own records, generate a new code (ideally a static one this time), and replace every printed copy. If it is a static code, the QR code itself did not fail; check whether the destination changed instead: a moved web page, an expired promotional URL, or a changed WiFi password.

How do I make a QR code that never expires?

Use a static QR code type for anything permanent: a URL you control and do not expect to change often, WiFi credentials, a vCard, a phone number, or an email template. A static QR code generator that draws the image in your browser, with no server-side redirect in the middle, has nothing to switch off later. See QR codes that never expire for a fuller explanation of how that guarantee holds.

If you do need the destination to be editable (say, a link that starts at a "coming soon" page and later needs to point at a live product page), use a URL you control directly (a page on your own site that you can edit, or your own redirect) rather than relying on your QR generator's business model to keep a third-party redirect alive for years. That is the whole of what a dynamic QR subscription sells, and you can run the redirect yourself in about three lines of configuration.

When is a dynamic QR code worth paying for?

Dynamic codes earn their cost in two situations: campaigns with a real need to change the destination after printing (a limited-time offer, an A/B test between two landing pages), and situations where scan analytics is the actual deliverable (proving a print ad or poster drove traffic, for example). A large batch of physical signage that would be expensive to reprint, where a single dashboard update beats sending someone out to re-laminate a hundred table tents, is a reasonable case too.

If you need any of those, pick a dynamic QR provider you have reason to expect will still be operating in a few years, read what happens to a code when a subscription lapses before you commit, and treat the code as valid only for as long as you keep paying for it, not as a permanent asset the way a static code is. For everything else (the vast majority of business cards, menus, WiFi signs, warranty labels, and product packaging), a static code does the job for free, does not carry an ongoing bill, and works for as long as you need it.

To make one with nothing to renew, create a free static QR code and download it as PNG, SVG or PDF.

Make your QR code

Free, no sign-up, no watermark. The code is static, so it never expires.

Create a QR Code That Never Expires

Related Articles

Comparison

Best QR Code Generators Compared

A feature-by-feature comparison of QRCode Monkey, Bitly, QR TIGER, Canva, Adobe Express, GoQR.me and Quick QR Maker, including what each free tier does and does not include.

12 min read

Read Article

How-to

Change a QR Code's Destination Without a Dynamic QR Subscription

A dynamic QR code is a static code pointing at a redirect somebody else owns. Point one at a redirect you own instead, and keep the editable destination without the monthly bill.

9 min read

Read Article