miinideckmiinideck
PricingUse casesBlog
Sign in
How-to & formats

A QR code you can update after it's printed (2026)

Printing a QR code fixes the URL forever. It doesn't have to fix the content. The difference is entirely in what you point the code at — and it's the one decision to get right before the print run.

By miinideck ai research team·July 26, 2026·6 min read
TL;DR
  • A QR code encodes a string, usually a URL. It cannot encode a file, and once printed it cannot be edited. The ink is permanent.
  • The content doesn't have to be. If the code points at a URL you control, you can replace what's behind that URL forever and every printed code follows.
  • This is all a "dynamic QR code" ever was: the code was static, the destination was swappable. Doing it with a link you own avoids renting the middle of your own URL from a service that can lapse.
  • Two things kill printed codes: a host that mints a new URL on every re-upload, and a link that expires on a timer. Check both before the print run.
  • Distributed only by code, a page's view count is effectively its scan count.

There's a specific flavour of dread that arrives about a week after a print run, when someone points out that the menu has the wrong price on it, or the schedule changed, or the one-pager references a person who's left.

Five hundred copies. Each with a QR code on it. Pointing at the old version.

Whether that's a five-minute fix or a reprint was decided long before anyone noticed the error — at the moment you chose what the code pointed at.

What a QR code actually is

Worth being precise, because the misconception underneath most of this is small and load-bearing.

A QR code is a visual encoding of a string of text. That's it. Usually a URL, sometimes a phone number or a wifi credential, but always just text, baked into a pattern of squares.

Two things follow:

  1. A QR code cannot contain a file. It points at where a file lives. "Make a QR code for this PDF" is really "put this PDF at a URL, then encode that URL."
  2. A printed QR code cannot be edited. It's ink. The string it encodes is the string it will encode forever.

So the code is permanent. Which leaves exactly one lever: what you put at the other end.

The "dynamic QR code" is a URL you can point around

QR services sell "dynamic" codes as a feature, and it's a real convenience, but it's worth knowing what you're buying.

A dynamic code doesn't encode your destination. It encodes a redirect URL owned by the service, which forwards to whatever you've currently configured. Change the configuration, and every printed code lands somewhere new. You also get scan analytics, because every scan passes through their server.

That's genuinely useful — particularly if you need to repoint codes at entirely different destinations, which is the one thing a plain URL can't do.

The cost is a dependency in the middle of your own link. Every printed code you own now routes through a third party. If the subscription lapses, the company folds, or the service is acquired and sunset, the codes don't degrade gracefully — they die, all at once, everywhere, including the ones printed on things you can't recall.

For a lot of use cases, that's a big permanent dependency bought to solve a problem you don't have.

The simpler version: a stable URL you control

Most people don't need to repoint codes at different destinations. They need the content at one destination to stay current.

That's achievable without any redirect layer, provided the URL is stable across content updates. Upload the page, get a link, print the code from that link. Then when the menu price changes, replace the file behind the same link. The URL never moved, so every code already printed now serves the corrected version.

No reprint. No redirect service. No dependency you have to keep paying.

The catch is that this only works if your host keeps the URL stable when you upload a new version. Plenty don't — many file-sharing services mint a fresh URL per upload, which is exactly the behaviour that breaks printed codes. Confirm the re-upload behaviour before you commit a code to ink; it's the single most important property and it's rarely advertised.

The other thing that kills printed codes: expiry

This one is quieter and catches more people.

Lots of free hosting tiers put links on a timer — a set number of days and the URL stops resolving. Behind a code on a conference slide, that's fine and arguably good. Behind a code on a business card, a package insert, or a permanent sign, it's a bomb with a delay.

So match the link's lifetime to the object's lifetime, deliberately:

  • Event-scoped — a slide, a booth, a printed program for one weekend. A short-lived link is fine, and an expiry can be the point rather than a limitation.
  • Long-lived print — business cards, packaging, signage, anything filed away and scanned months later. You need a link that doesn't expire, full stop. Here that starts on the Solo plan; wherever you host it, verify it before printing.

The failure is nasty because it's delayed and silent. Nothing breaks on print day. It breaks in month four, to someone you'll never hear from, who concludes your company is defunct.

The sequence that avoids the reprint

  1. Put the content at a URL you control — a hosted page, not a file-sharing link that rotates.
  2. Verify the URL survives a re-upload. Upload a v2 and check the address didn't change. Two minutes now, five hundred reprints later.
  3. Match the link's lifetime to the print's lifetime. Long-lived print needs a link that never expires.
  4. Generate the code from the final URL, and scan it with a real phone — not a preview — before the print run.
  5. Keep access to the destination, so you can replace the content later.

Step two is the one everyone skips and the only one that determines whether the answer to "can we fix the menu price" is "yes, done" or "how many did we print."

Upload the page, open the ⋯ menu, and generate its QR code. The link keeps its address when you replace the content — so the printed code keeps working.

See how it works

And afterwards: did anyone scan it?

If a page is distributed only by a printed code, its view count is effectively its scan count. That answers the question most people actually have — whether the poster, the insert, or the table tent did anything at all.

What plain link analytics won't give you is per-code attribution when several codes point at the same page. If you want to compare the code on the poster against the code on the flyer, give each one its own link and read them separately. Same principle as treating any link open as a signal: the data is only as granular as the number of distinct links you handed out.

More in How-to & formats

You attached an HTML file and it opened as raw code (2026)

The attachment arrived, nothing was blocked, and your recipient sees markup instead of the page. That's three different email failures people keep merging into one. Here's which one you hit, and why the fix isn't a different attachment.

August 5, 2026·4 min read

You put an HTML file in Google Drive and it shows the code (2026)

Upload an .html file to Drive, open it, and you get a wall of markup instead of the page. Nothing is broken — Drive is doing exactly what a filing cabinet does. Here's the mechanism, the workarounds people try, and what actually renders it.

August 5, 2026·5 min read

Sending a 50MB HTML file when email refuses (2026)

Email providers cap attachments around 20-25MB. The fix when the file is bigger isn't to compress harder — it's to send the URL instead.

August 4, 2026·7 min read

Send your own private link.

miinideck turns a single HTML file into an unguessable link with optional password and expiry. Default-private, never indexed.

Try it free →See pricing
miinideck

HTML files, finally as links — for AI builders, agencies, and consultants. Default-noindex, default-private, default-yours.

Product

  • Pricing
  • Use cases
  • Try it free

Resources

  • Blog
  • Featured on
  • Report abuse

Legal

  • Privacy
  • Terms
© 2026 miinideckMade for people who don't want their work indexed.