QRCodeStyled

Why a printed QR code suddenly stops working

The difference between static and dynamic codes, why a "free" code can die after printing, and how to check before you print a thousand of them.

Updated 2026-08-13

You print 500 wedding invitations. Two weeks later a guest scans the QR code and gets an error page — or worse, a page asking you to pay. This is not a technical fault. It is how a good number of QR generators are designed to work.

Static and dynamic codes are not the same thing

A static code contains your content directly. Scan one that points at https://example.com and those black and white squares literally spell out that string. Nobody sits in the middle. A static code cannot be switched off, cannot expire, and does not care whether the site that made it still exists.

A dynamic code contains the address of an intermediary server, something like https://qr-abc.com/r/xY9k. On scanning, the phone goes to that server, which then forwards to your real destination. In exchange you can change the destination after printing and count scans.

That forwarding step is a switch. It belongs to whoever runs the server, not to you.

Why "free" codes die

Many sites let you create a code for free without making it clear that the code is dynamic. After a 7 or 14 day trial, the forwarding stops. By then the code is on the invitations, the menu, the packaging, the banner.

This is not rare. One major generator in this space currently sits at 1.4–1.6 out of 5 across roughly 9,220 Trustpilot reviews, and the recurring theme is codes deactivated once a trial lapsed. Another disables codes after 7 days and then asks for around $200 a year to switch them back on. A third draws complaints that cancelling the subscription kills every code — including ones already printed into a photo book made as a gift.

There is a second variety people rarely anticipate: the code keeps working, but whoever scans it gets a full-screen advert before reaching your content. Your guests watch somebody else's advertising, on your invitation.

How to check, in thirty seconds

Scan the code you just made with your own phone, then read the link carefully before tapping it:

  • If it is your address → static, safe, nobody can turn it off.
  • If it is an unfamiliar domain that then forwards → dynamic. That forwarding step is what can be switched off later.

If the tool will not show you what it encoded, that is already a signal.

When a dynamic code genuinely earns its keep

Dynamic codes are not bad. They solve a real problem: you printed 10,000 packages and need to change the promotional link. What matters is that it is honest:

  • You know you are making a dynamic code.
  • You know what happens if you stop paying.
  • You chose it, rather than having it chosen for you.

For wedding invitations, business cards, the WiFi code on your kitchen wall, a bank transfer code — anything whose destination never changes — static is the right answer, and you should not have to pay a subscription for it.

Before you print in volume

  1. Look at the encoded content. Any tool should show you the exact string that goes into the code.
  2. Keep a vector file. SVG or PDF stays sharp at any size; a 300px PNG will be visibly rough in large print.
  3. Print one sheet at the real size and scan it with at least two different phones, in ordinary light.
  4. Archive the original file. If you reprint later, you should not need to make a new code.

Step three sounds obvious and gets skipped constantly. A code that looks perfect on a 27-inch display can be unreadable at 2cm on matte paper — and you only find that out with the real sheet in your hand.