Why Your QR Code Stopped Working (and How to Make One That Can't)

You printed it. It worked. Now it goes to an error page, a paywall, or nowhere. Here's what happened.

Do QR codes expire?

No. A QR code is just a picture. The pattern of squares can't expire any more than a printed phone number can.

What expires is the service behind it. Most QR code generators make what they call a dynamic code: the squares don't hold your URL, they hold a short link on the generator's own servers. When a phone scans it, their server forwards the phone to your site. That redirect is what stopped.

What happened to yours

One of these, almost certainly:

  • The free trial ended and the redirect was turned off.
  • The subscription lapsed, or the card on file expired.
  • The service moved your code behind a paid plan.
  • The company shut down or changed domains.

In every case the code on your menu, card, or sign is fine. The middleman is gone.

How to tell if your code is dynamic

Scan it and watch the address bar. If the phone first goes to a domain that isn't yours (a shortener like qr-something.io/abc123) and then bounces to your site, it's dynamic. If it lands straight on your URL, it's static and it can't expire.

Most QR scanner apps also show you the raw URL before opening it. Same test: is that your URL, or someone else's?

How to fix it

You can't fix the printed code. The squares point at the dead redirect, and the only people who could change where it goes are the ones who turned it off. You need a new code, and this time it should be a static one: your URL baked into the squares, no service in between.

Make a static QR code from your URL, then reprint. It will keep working for as long as your website does, with nothing to renew and nobody who can switch it off.

The honest caveat

A static code can't be edited after it's printed. That's the trade: dynamic codes let you change the destination later, and in exchange someone else holds the keys.

The workaround is simple. Point the code at a page you control, and change what's on that page. The code never needs to change.

Make a QR code that can't expire

Free. No sign up. Points directly to your URL.