Migrating a QR campaign that is already in print
The codes cannot be recalled, so the work is entirely in the redirect layer and in what you leave behind.
By ShortFreeURL Team · 26 August 2026
The constraint that shapes everything
Printed codes are permanent. They are on packaging in warehouses, on signage installed by contractors, on brochures in racks and on vehicles you do not control. Whatever those codes encode, they will encode forever. If they encode a dynamic short link, the campaign is fully migratable. If they encode a destination URL directly, you are limited to whatever you can do at that destination.
This is why the encoded value should always be a short link you control, even when the destination seems permanent. The cost is one redirect. The benefit is that every decision after printing remains reversible, which for a print run measured in tens of thousands is not a small thing.
Inventory what exists before changing anything
Start with a list of every code in circulation: what it encodes, where it was printed, roughly how many exist, when they were produced and who owns the surface they are on. Most organisations discover at this stage that they do not know. Codes were generated by different people in different tools, some encode short links, some encode raw URLs, and a few encode a URL that has since been retired.
Scan a physical sample of each. Do not rely on the artwork file or the ticket that requested the code. What matters is what is on the object in the field, and reprints, regional variants and last-minute artwork swaps mean the two are not always the same.
Change the destination in stages, not all at once
If several codes point at the same destination, repointing them together makes any resulting problem indistinguishable. Move one code first, watch its scans and the behaviour of the new destination for a day, and then move the rest. Scan volume on print is slow enough that a staged move costs little and tells you a great deal.
Keep the change reversible for the whole period. That means the old destination stays live and unchanged until you are confident, so reverting is a single edit rather than a rebuild.
Preserve the parameters that identify the surface
A printed code usually carries knowledge that exists nowhere else: which pack, which region, which billboard. That knowledge lives in the campaign parameters appended to the destination, or in the slug itself. When you repoint the link, carry those parameters across intact.
The common mistake is repointing several distinct codes at one clean new URL, which merges them and destroys the ability to tell surfaces apart. Give each code a distinct destination, differing only in parameters if the page is the same. It costs nothing and it preserves the only measurement you have for print.
Decide what happens to codes for a campaign that has ended
A code for last year's promotion will still be scanned, sometimes years later, by someone who found the leaflet in a drawer. Sending them to a 404 wastes a person who was interested enough to scan. Sending them to your home page is better but tells them nothing about why the thing they scanned did not work.
The right destination is a short page that acknowledges what they scanned, explains that the promotion has finished, and offers the nearest current equivalent. Keep the scan counting so you can see how long print keeps producing traffic, which is usually longer than anyone expects and is genuinely useful when planning the next print run.
Do not change the code image if you can avoid it
If the encoded value stays the same, the printed image stays valid and no reprint is needed. Any change to the encoded value means new artwork, new print, new distribution and a period where both old and new codes exist in the field. Exhaust the redirect options before accepting that cost.
When a reprint is genuinely required, treat the old code as permanently live anyway. Every code you have ever printed should resolve to something sensible for as long as the domain exists, because you have no way to collect the old ones.
Keep a record that outlives the people who made it
Print campaigns outlast staff. The person who knows which code went on which pack will leave, and the artwork files will be archived somewhere nobody searches. Maintain a single register of printed codes with the encoded value, the surface, the print date, the current destination and the date it last changed. It does not need to be sophisticated; it needs to exist and to be findable by someone who was not there.
The test of the register is whether a new colleague, handed a physical object with a code on it, can identify the link within a few minutes and see its history. If the answer is that they would have to scan it and work backwards from the redirect, the register is not doing its job.
Guard the short domain harder than the campaign
Everything above assumes the domain in the printed code still resolves and still belongs to you. A lapsed registration on a short domain that is printed on physical goods is the worst outcome available: the codes keep working, and they now point at whoever bought the domain.
Set the registration to multi-year auto-renewal, put the renewal on a calendar owned by a person rather than an inbox, and lock the domain at the registrar. Treat it as infrastructure with the same seriousness as the main site, because unlike the main site you cannot correct a mistake by editing a page.

