The short answer
You can change where a printed QR code goes — but only if it was printed as a redirect. If the code encodes your destination directly, the printed pattern is that URL, and nothing can be done to it short of reprinting.
So the question is really about what got printed. Scan your code and look at the address that comes up before the page loads. If it is the page you expect, the code is static and the URL is fixed in the ink. If it is a short address on somebody else’s domain — a redirector — then the destination is a setting, and settings can be changed.
Why a printed code cannot be edited
A QR code is not a reference to a record held on a server. It is the text itself, encoded as modules. Those black and white squares are the characters of the URL, spelled out in a grid, with error correction blocks appended so the code still reads when part of it is scratched or obscured.
Change one character of the destination and a different grid is required. There is no field to update, because there is nothing on either side of the paper holding a mapping — the paper holds the whole answer. This is also why a QR code has no owner and needs no service to work: a static code scanned in fifty years will still resolve to the same string it was printed with.
That permanence is a genuine feature. It is just the opposite of what you want on a menu that changes seasonally.
What a dynamic code actually changes
A dynamic code moves the destination off the paper. What gets encoded — and therefore printed, and therefore permanent — is a short address that belongs to you, something like inkhop.io/r/spring-menu. The destination sits behind it as a value you can edit.
A scan then takes one extra step. The phone opens the printed address, the redirect looks up where that address currently points, answers with a redirect to it, and the visitor lands on your page. The hop is fast enough that nobody notices, and it is the whole product: the printed artifact never has to be right about the destination, only about the address.
Which means a reprint is no longer the unit of change. Repointing a thousand printed posters is a form submission.
What has to be true for it to keep working
This is where dynamic codes are usually oversold, so it is worth being exact. A redirect that outlives a print run has to get three things right, and two of them are invisible until they fail.
The address can never be reused
Your printed code is a permanent physical claim on one address. If the issuer ever recycles that address — hands it to another customer after you delete your link, say — then a flyer still sitting in a waiting room starts routing strangers to somebody else’s destination. Inkhop’s slugs are globally unique forever and are never reissued, including after deletion. Nothing else is ever printed at your address.
The hop must not be cached
A redirect can be sent as permanent or as temporary. A permanent one (301 or 308) tells every browser and CDN in the chain to remember the answer and stop asking — which is exactly the wrong instruction for a destination you intend to move. Visitors who scanned before the change keep landing on the old page, sometimes for months, and you cannot clear their caches.
Every Inkhop hop is a 302 with Cache-Control: no-store. It is asked fresh every time, so an edit is live on the next scan. If you are evaluating another provider, this is the single most useful thing to check.
The redirect has to outlive the paper
A dynamic code depends on its issuer continuing to answer. That is the real trade you are making, and no amount of engineering removes it. Print runs outlive companies, so it is a fair question to ask of anyone — including us — before you commit a code to fifty thousand units of packaging.
If your code is already printed and static
Then the honest answer is that the code cannot be changed. But the code is not always the only thing in the chain, and the destination sometimes is yours to move:
- If it points at a domain you control, you can change what lives at that URL — edit the page, or add a redirect at your own server or host from that path to the new one. The printed code stays wrong about nothing, because the address it names is still yours.
- If it points at a page you control on someone else’s platform — a shop listing, a form, a booking page — check whether that platform lets you edit the destination behind a stable URL. Some do.
- If it points at a third party’s URL, or at a link shortener whose account you have lost, there is no recovery. The next print run is the fix.
When you do reprint, that is the moment to switch: print a redirect instead of a destination, and you will not be here again. The reprint you are already paying for is the cheapest time to make the change.
Doing it in Inkhop
Making the code needs no account. Open the generator, name the code, give it a destination, and design it — colours, module and corner styles, a call-to-action frame. Export print-resolution SVG for the printer or PNG for everyone else. What comes out is already a real dynamic link with a permanent address, whether or not you ever subscribe.
Changing where it points, and reading how it has been scanned, is what a subscription buys. Sign in with the email you used, claim the code into your workspace, and the destination becomes a field you can edit — on the artwork already at the printer, already on the wall, already in the post.
Scans are recorded from the first one, including scans that arrive before you subscribe and scans that arrive at a code you have paused or retired. A code you thought was finished still pulling traffic is the only evidence the printed material is out there — so it is reported rather than discarded.
If you are still deciding which kind of code to print, the trade-offs are laid out in dynamic and static QR codes.
Print one that you can still move.
Make a code free, with no account and no card. It is a real dynamic link from the moment it is issued, so the decision to subscribe can wait until after the material is on the wall — the artwork never has to change.