Do QR Codes Expire? The Pattern Never Does

by KoloQR TeamBasics

A tilted sticker on a blue background: a lime QR code with round modules inside a thick black frame that reads "SCAN ME" along the top, with a white pill label across the lower edge showing a calendar icon and the word "Expire?".

No. A QR code is a printed pattern, and the QR standard has nowhere to put an expiry date, so a symbol on a menu decodes to the same characters in twenty years as it did the day it was made. Four things behind it can stop working: the destination URL, the provider's redirect that a dynamic code resolves through, a scan allowance on a free plan, and the printed surface itself. Only the last one is visible on the object, which is why the other three are the ones that surprise people.

Key points

  • QR codes do not expire. The QR standard defines how characters are encoded into a grid of modules, and there is no field in that grid for a date, an owner or a licence - so no generator can put a shelf life into a symbol even if it wanted to.
  • A static QR code has nothing to expire. The destination is written into the pattern, no account holds it, and a downloaded file decodes to the same URL on a phone that has never heard of the company that made it.
  • A dynamic QR code expires exactly as reliably as its subscription. The pattern encodes a short link on the provider's domain, and when the plan behind that link lapses the printed copies stop resolving - Uniqode, for example, states that dynamic codes go inactive when a trial expires or a subscription is cancelled, while static codes keep working.
  • "My QR code expired" almost always means the page behind it died: a domain left to lapse, a campaign URL retired with the campaign, or a site migration that dropped the path. Link rot is the process by which a published address stops resolving because something behind it was retired, moved or switched off, and it is repairable at the web host without touching the print.
  • Scan allowances are the failure nobody plans for, because the code works when you test it and stops in the middle of the campaign. QRCodeChimp pauses scans past 1,000 a month on its free plan; QR Planet's free account allows 100 scans a day.
  • A printed code can wear out even though it cannot expire. Thermal receipt paper fades, outdoor stickers chalk in UV, and a laminated menu picks up scratches that scatter light across the finder patterns - all of which is a reprint, not an expiry.

Four Different Things People Call an Expired QR Code

"The QR code expired" is a description of a symptom, not of a cause, and the four causes behind it need four different fixes. Three of them are repaired without touching the printed material; one of them is a reprint. Working out which one you are looking at takes a minute and decides everything that follows.

What actually failedWhat a scan doesWhose decision it wasHow it is fixed
The destination URLOpens a 404, a parked domain, or somebody else's pageYours, usually by accidentAt the web host or the registrar, without reprinting
The provider's redirect, on a dynamic codeOpens the provider's error page, an upgrade prompt, or nothingThe provider's, or your billingBy restoring the plan - otherwise by reprinting
A scan allowance or free-tier capWorks for the first people who scan it and not the restThe provider's pricingBy upgrading, or by reprinting a static code
The printed surfaceThe camera never detects a code at all, at any distanceNobody's - ink, sun, water and handlingReprint, on a more suitable material
The second and third rows only exist for dynamic codes. A static code has no account, no redirect and no allowance, which removes three of the four failure modes and leaves the two that belong to the web and to the printer.

Notice which column the interesting information is in. Two of the four failures are somebody else's decision arriving on your printed material without notice, and neither of them changes anything a customer can see on the object. The code looks exactly as it did the day it was printed, which is what makes the phone call about it so confusing.

The Symbol Has Nowhere to Put an Expiry Date

A QR code encodes characters and nothing else. The standard, ISO/IEC 18004, describes how text is turned into a grid of light and dark modules, how that grid carries error correction, and how a decoder finds and reads it - and it defines no field for a creation date, an expiry date, an account, a licence or an owner. There is nowhere for a shelf life to live.

That is why the answer is the same whichever generator made the code. A static QR code is a code whose destination is stored in the pattern itself, so no server sits between the scan and the page. Any tool that hands you a static file has handed you something with no dependency: the file decodes offline, on an aeroplane, on a phone in a country where the company that made it has never operated.

What people are remembering when they expect an expiry date is a free trial. Several platforms give away dynamic codes on a trial, and a trial does end - but what ends is an account on a service, not a property of the symbol. The distinction matters because it tells you what to check: never the code, always the thing the code points at.

One consequence is worth stating plainly, because it cuts the other way. A static code cannot be switched off, which also means it cannot be recalled. If a printed code points somewhere you would rather it did not, the only remedies are changing what is served at that address or collecting the printed material back in.

A Dynamic Code Expires Because Its Redirect Does

A dynamic QR code is a code that encodes a short link belonging to the provider, which redirects to wherever you currently point it. The pattern therefore contains a hostname you do not own, and that hostname keeps resolving for exactly as long as somebody keeps paying for it. This is the one case where "the QR code expired" is a fair description of what happened.

The vendors document what lapsing does, and the answers differ enough to be worth reading before choosing one. These are statements the vendors published, verified for this site's comparison pages in July and August 2026 - policy pages move, so confirm the current wording before relying on any of them.

  • The codes go inactive. Uniqode states that dynamic codes become inactive once a free trial expires or a subscription is cancelled, and that static codes continue to work. The Uniqode comparison has the full picture.
  • Some codes survive and some do not. QRCodeChimp pauses scans once the free plan's 1,000 monthly scans are used, and a lapsed paid account keeps only the ten most recent dynamic codes active - so which of your printed codes survives depends on the order they were created in.
  • The allowance runs out mid-campaign. Pageloot counts scans per year, 15,000 on Starter through 250,000 on Pro, and QR Planet's free account allows 100 scans a day. A campaign spends an allowance in bursts, so the tier that matters is the one covering the peak week rather than the yearly average.
  • The link is deleted rather than expired. Bitly's support documentation states that a deleted link and any QR codes attached to it are removed permanently and cannot be recovered, and that anyone scanning afterwards lands on a Bitly error page.
  • Something is inserted in front of your page. ME-QR's free dynamic codes display advertising between the scan and the destination. The code still resolves, which is why this one never shows up in testing - you see your own page, and the customer sees an advertisement first.

The structural version of this is not about any one vendor's reliability. Google retired its own URL shortener: its developers blog stated that goo.gl links "will no longer return a response after August 25th, 2025", a plan later narrowed to links that had shown no activity in late 2024. Anyone who had printed a goo.gl code received an announcement they had no part in and a deadline they could not act on, because the address was in ink. What a dynamic QR code subscription actually buys works through what that costs over the life of a printed object.

If reading this has turned the question from "will my code die" into "which kind should I have printed", that is a different question with a different answer - static or dynamic, decided before anything is printed takes it from the top.

Do Canva, QRCode Monkey or Bitly Codes Expire?

The brand-level version of the question has a brand-independent answer: a code expires if and only if the tool made it dynamic. What varies between vendors is which kind of code you got, and whether you were told which kind it was.

  • QRCode Monkey. No. Its codes are static and it says so plainly - they "do not expire and will work forever", with no cap on scans. Whether QRCode Monkey is really free covers what that does and does not include.
  • Canva. Its built-in QR code app was static-only for years, and a static code from it has nothing to expire. Canva's help centre now documents dynamic codes with analytics on the business tiers, and a dynamic code depends on the plan behind it - so check in the editor which kind you generated rather than assuming, and see the Canva comparison for what the export gives you.
  • Bitly. A bit.ly QR code is a dynamic code by construction: the pattern encodes a bit.ly link. Bitly states that bit.ly links keep resolving if you downgrade or the account is deleted for inactivity, and that a link you delete yourself takes its QR codes with it permanently.
  • Any generator that asked you to create an account before downloading. That is the tell worth knowing. An account is where a dynamic code's destination is stored, and a tool that hands over a file without one has nothing to store - though several account-based tools make static codes too, so it is a hint rather than a proof.

The reliable way to settle it for a code you already have is to read the code rather than the marketing. Decode the file and look at the URL inside: if it is your own address, the code is static and permanent; if it is a short link on somebody else's domain, everything about its future belongs to them. The QR code scanner reads a file back and shows you the string.

How Long a Printed QR Code Lasts on the Object

A printed QR code lasts as long as the contrast between its dark and light modules survives, which is a property of the ink, the substrate and the environment rather than of the code. This is the only sense in which a QR code has a lifespan, and it is the one the software vendors never write about, because the failure happens on paper rather than in an account.

Four things end a printed code, and each has a substrate it happens on first:

  • Thermal paper fades. Receipts, ticket stubs and label-printer output darken and then bleach with heat, sunlight and time. A code on a receipt is a code with a service life of weeks in a warm car.
  • UV chalks outdoor ink. Stickers, window decals and vehicle graphics lose density from the sun, and the dark modules lighten before the substrate does - which narrows contrast from the side that matters.
  • Handling abrades the surface. A menu, a loyalty card or a hang tag picks up scratches, and a scratched gloss laminate scatters light across the symbol at the angle a phone is held. Matte vs gloss printing covers which finish survives handling and which one only looks like it will.
  • Water and grease change the substrate. Anything on a table absorbs oil, and an absorbed light module is no longer a light module. Lamination fixes this and introduces the glare problem in the same step.

Error correction buys some margin here rather than immunity. Level M recovers roughly 15% of a damaged symbol and level H roughly 30%, which is what lets a scuffed code keep reading - but that budget is also spent by anything else damaging the symbol, and it does nothing for a code whose contrast has fallen uniformly across the whole surface.

The test worth running is one nobody suggests: rescan the oldest printed copy you still have, with an ordinary phone, in the light the code actually lives in. It costs nothing, it is the only measurement of how your ink behaves on your substrate in your environment, and it turns the reprint from a surprise into a scheduled item. Before the next run, the print checklist covers the nine numbers that decide how much margin the new one starts with.

Work Out Which of the Four Actually Failed

Run these in order on a code that has stopped working. The order matters because each step rules out a whole class of cause: the first two separate a code problem from a web problem, and the third separates a problem you can fix from one that belongs to a provider.

  1. Scan the Original File, Not the Printed Copy. Open the exported PNG or SVG on a screen and scan it, or decode it with a scanner tool. If the file scans and the print does not, the symbol is fine and the fault is physical - stop here and go to the print checks. If neither scans, the fault is in the destination or the redirect.
  2. Read the URL Out of the Code and Look at It. Decode the code and inspect the string. Your own domain means a static code and a web problem you own. A short link on a provider's domain means a dynamic code, and everything after this step belongs to that provider.
  3. Open That Exact URL in a Browser. Paste the decoded string into a browser rather than searching for the page. A 404, a parked domain or a redirect to somebody else's site is link rot, and it is repaired at the host or the registrar without touching the print.
  4. Check the Account Behind a Dynamic Code. For a provider's short link, sign in and look for an expired trial, a cancelled plan, a failed payment, a deleted link, or a scan allowance that has been reached. If the code works for you and not for customers, the allowance is the first suspect.
  5. Inspect the Printed Copy Against a Fresh One. Print the same code again on office paper and scan both side by side. If the new one reads and the old one does not, the print has degraded - faded, scuffed, greased or bleached - and the answer is a reprint rather than anything in software.

If the code never worked at all, this is the wrong page: nothing expired, and the fault is in the size, the contrast, the quiet zone or the destination as it was first generated. Why a QR code is not scanning works through those in order.

How to Print a Code That Cannot Be Switched Off

The arrangement that removes every failure in the table except the printed one is a static code pointed at a short path on a domain you own, with that path configured to redirect to the real destination. The pattern is permanent, the destination stays editable in a hosting panel, and no account can lapse underneath it - the only dependency left is a domain registration you control.

KoloQR, a free QR code generator with circular and custom-shaped QR codes, makes static codes only, which is why it can say the codes never expire without qualifying it: there is no account holding the destination, no redirect to keep alive and nothing to cancel. The generator exports SVG, PDF, EPS and PNG without a signup. It is also why it cannot count scans or re-point a printed code - that is the trade, and it is the whole trade.

  • Encode a path you control, not the final page. Something like example.com/menu, short and meaningless. A path named after this year's campaign becomes a lie next year, and the pattern cannot be corrected once it is printed.
  • Register the domain for longer than the print run. The dependency has moved to something you own, and something you own can still be forgotten. Auto-renew, on a card that outlives the sign.
  • Print a short readable URL beside the code. It rescues the print run if anything in the chain fails, and it serves everyone whose camera does not cooperate. This is the cheapest insurance on the artwork.
  • Keep a list of which printed code points where. Two lines per code in a spreadsheet. It is what turns "a customer says the sticker is broken" into a five-minute fix instead of an investigation.
  • Diary the reprint for anything outdoors or handled. Codes on stickers, receipts and menus are consumables. Deciding that in advance is cheaper than discovering it from a customer.

None of this makes a dynamic platform a mistake. It makes the expiry question answerable in advance: a static code fails only when the web address behind it does or when the paper wears out, and both of those are yours to manage rather than somebody else's to announce.

Make Your QR Code

Free, with no account and no watermark. Choose a shape, add a logo, check the contrast, and export SVG, PDF, EPS or PNG - a static code with no subscription behind it.

Generate QR Code

Questions? Answered

No. The QR standard has no field for a date, an owner or a licence, so the symbol itself has no shelf life and decodes to the same characters forever. What can expire is the service a dynamic code redirects through, or the web page any code points at. A static code has neither of those dependencies.

The pattern lasts indefinitely; the printed copy lasts as long as its contrast does. A code on coated card indoors will outlive the campaign it was made for. A code on thermal receipt paper can fade in weeks in a warm car, and an outdoor sticker loses ink density to UV. Rescan the oldest copy you have to find out where yours sits.

Nearly always because the page behind it moved or was deleted, not because the code changed. Decode the code, paste the URL it contains into a browser, and see what answers. A 404 or a parked domain is a web fix. A provider's error page means a dynamic code whose plan has lapsed.

Free static codes do not - there is no account behind them to end. Free dynamic codes usually do, in one of two ways: the trial ends, or a scan allowance is reached. QRCodeChimp pauses scans past 1,000 a month on its free plan and QR Planet allows 100 a day, so a free dynamic code can stop mid-campaign while looking fine.

The symbol has no scan counter, so a static code has no limit at all. Dynamic codes are limited by whatever the plan allows, because every scan passes through the provider's redirect and is counted there. Check the allowance and the period it resets on before printing anything in quantity.

A static code from Canva's QR app does not, and that app was static-only for years. Canva's help centre now documents dynamic codes with analytics on its business tiers, and those depend on the plan behind them. Check in the editor which kind you generated - the presence of scan tracking is the tell.

Yes, in two ways, and neither touches the code. A dynamic code's provider can retire the service or deactivate the account, as Google did with its own URL shortener. And a domain you let lapse can be registered by somebody else, at which point your printed code points at their page rather than nowhere.

If the redirect lapsed, restoring the plan usually restores the printed codes - confirm with the provider, since some restore only the most recent codes. If the destination died, republishing anything at that exact URL fixes every printed copy at once. If the print has faded, nothing in software helps and the answer is a reprint.

Any generator that gives you a static file makes codes that cannot expire, because the destination is inside the pattern rather than in an account. The question to ask a tool is not whether its codes expire but whether they are static - and whether you can download one without creating an account, which is usually the same question.

Why KoloQR?

  • Create QR codes for websites, menus, Wi-Fi, PDFs, and business cards
  • Customize colors, logos, and unique shapes
  • Download high-quality PNG and SVG files
  • Built for both print and digital
Generate QR Code
A plain black QR code beside the same code restyled as a circle with brand colors