Do QR codes expire? Static vs dynamic, explained honestly

Static QR codes do not expire: the content is stored in the pattern itself, so the code keeps working for as long as what it points to exists. Dynamic QR codes send every scan through the maker’s server, so they stop working if that service, subscription or free trial ends.

7 minute read · updated 2026-11-02

Search for a QR code generator and you meet two camps. One says static codes are old-fashioned. The other says dynamic codes are a trap. Both are selling something. They are different tools, and each has a real cost.

What a static code is

A static QR code holds your content directly. Scan it and the phone reads exactly what was encoded: a web address, a Wi-Fi credential, a phone number, a contact card, a line of text. Nothing is contacted in between. The code is the data.

That means the image is self-contained. Once printed, it works for as long as the thing it points to works. Nobody can switch it off, bill you for it, or go out of business and break it.

What a dynamic code is

A dynamic QR code holds a short address belonging to a QR service, something like qr.example.com/a7k2. When someone scans it, their phone goes to that address, the service looks up where you have told it to send them, and redirects them on.

Because the destination lives in the service's database rather than in the image, you can change it afterwards. The same printed code can point at your autumn menu in October and your Christmas menu in December. And because every scan passes through the service, it can count scans and record rough details such as time, country and device type.

The real trade-offs

Static codes:

Dynamic codes:

None of that makes paid dynamic services a bad deal. For a team running campaigns across several print runs, editable destinations and scan reporting are worth paying for. The point is to know what you are buying: convenience and data, in exchange for an ongoing dependency.

When static is the right answer

Most everyday uses. A Wi-Fi code for a holiday let. A contact card on a business card. A phone number on a van. A link to your website homepage, which is not going to move. A menu link for a restaurant whose web address has been the same for years.

Static is also the only sensible option for anything that is not a web link at all. Wi-Fi credentials, a calendar event, a plain text note, a SEPA payment request, a location — these have no destination to redirect to, so a dynamic code would make no sense. If you are generating one of those, you are generating a static code whether you think about it or not.

And static is right whenever the code outlives any plausible subscription. Something engraved on a plaque, etched into a tool, or printed in a book should not depend on a company's billing system still working in ten years.

When dynamic earns its keep

When the destination genuinely will change and reprinting is expensive. Fifty thousand leaflets, a permanent sign, packaging with a long shelf life, a code on a product already in customers' hands.

When you need to know whether the code is working. If you are deciding whether to spend again on the same campaign, scan counts answer a question you cannot otherwise answer. And when you are running enough codes that they need managing in one place.

The middle path

There is a third option that gets overlooked, and it is often the best of the three: print a static code pointing at a short URL you control yourself.

Put a redirect on your own domain — something like yourbusiness.co.uk/menu — and point the static QR code at that. The code never changes. The redirect is yours to edit whenever you like, from whatever runs your website. You get editability without renting it, and because the address is short the code stays sparse and easy to scan.

Your web host's own statistics will tell you roughly how many people hit that address, which is usually enough to answer the only question most people really have, which is whether anyone is scanning at all. If you need per-scan detail and campaign reporting, that is the point at which a paid service starts to make sense.

The one requirement is that you keep the domain. If you let it lapse, you are in the same position as someone whose QR provider shut down, except the fault is closer to home.

A note on the tool you use

The Codeshed website makes static codes only, in the browser, with no account and nothing sent to a server. That suits the uses above. If you need to change where a code points after printing, or count its scans, you need a dynamic code from a service you trust, or your own redirect.

Codeshed’s own tracked codes

The Codeshed app for iPhone, iPad and Android (coming soon) has dynamic codes of its own, called tracked codes. They come with Codeshed Plus, the app’s subscription: £3.99 a month or £29.99 a year, with a 7-day free trial. Since we are now one of the services this guide describes, here is exactly what you get and what you depend on.

For most codes, static is still the better choice, and the website stays free for those. Tracked codes are for the cases in “When dynamic earns its keep”: a destination that will change, or a print run where you need to know whether anyone is scanning.

Whichever route you take, keep the original file and a note of what each code points at. The commonest regret is not choosing wrongly between static and dynamic — it is having a printed code and no record of what is inside it.

Read next

Make a code in the workshop →

Codeshed is a trading name of Third Coffee Studio Ltd, registered in England and Wales, company number 17517422.