MyQRx Sign up free
Techniques

The QR Code Pre-Print Checklist: 40 Checks Before It Goes to Press

Forty binary, verifiable checks across payload, construction, branding, placement, measurement and governance before any QR code print run starts.

A tall outlined sheet, slightly rotated, holding two columns of checklist rows with a small code motif at its foot; the final checkbox is filled orange and ticked.

A checklist earns its place on a bookmark bar by being complete enough that nothing important gets left to memory, and specific enough that every line can be answered yes or no rather than argued about. What follows is organised into six groups, covering everything from the destination URL itself through to who's allowed to change it after the fact, and every check below is written so a person can verify it directly, on the actual artwork, before a print run starts.

Most of the individual checks below have their own dedicated explanation elsewhere in this archive. This page exists to pull all of them into one place, in a form that can actually be run through in a few minutes rather than requiring a person to remember which article covered which rule. Print it, work through it top to bottom against the actual artwork and destination, and treat any single "no" as a genuine stop rather than a note to revisit after the run has already gone to press.

Group Checks What it protects against
Payload and destination 7 A working code pointing at a broken, wrong, or unsafe destination
Code construction 8 A technically valid code that still fails to scan
Branding 6 Brand elements that compromise reliability instead of merely decorating it
Placement and environment 7 A well-made code let down by where and how it's actually encountered
Measurement 6 A campaign that runs successfully but produces no usable data afterwards
Governance 6 A code nobody can explain, fix, or account for once it's live

Payload and destination

The most expensive mistakes in this entire list hide here, because a wrong or untested destination looks identical to a correct one right up until someone actually scans the code.

  • Confirm the destination URL loads correctly on a mobile device, not only on a desktop browser.
  • Confirm the destination is the current, intended page, not a draft, staging, or placeholder URL.
  • Confirm the destination has been checked against reputation and phishing databases before print.
  • Confirm the code type (URL, vCard, WiFi, plain text) matches what the placement actually needs.
  • Confirm any query parameters in the destination URL are complete and correctly formatted.
  • Confirm the destination page itself has been tested on a real mobile connection, not just office WiFi.
  • Confirm a fallback exists (printed URL or contact detail) for anyone who can't or won't scan.

Code construction

These checks catch a technically valid code that still fails in the real world, usually because it was only ever tested on a screen rather than on the actual printed surface.

  • Confirm the module size meets or exceeds the minimum for the realistic scanning distance.
  • Confirm the quiet zone is at least four modules wide and genuinely free of any printed content.
  • Confirm contrast between modules and background is strong under the lighting the placement will actually see.
  • Confirm the error correction level matches the environment (higher for outdoor, industrial, or logo-bearing codes).
  • Confirm the code has been tested on the actual substrate, not only as a digital file.
  • Confirm the code avoids crossing a fold, seam, or tight curve on its physical surface.
  • Confirm the printed proof has been scanned with more than one device, including an older phone.
  • Confirm the code's data payload is as short as practical, favouring a dynamic redirect over a long static URL.

Branding

Brand elements spend the code's error-correction capacity, so every choice here needs to be checked against how much headroom is actually left over for wear and print imperfections.

  • Confirm any centre logo covers no more than roughly 10-15% of the code's total area.
  • Confirm the error correction level is set to the highest available whenever a logo is present.
  • Confirm colour choices have been tested for contrast under a camera, not judged by eye on a screen.
  • Confirm an inverted, light-on-dark design (if used) has been tested more thoroughly than a standard code.
  • Confirm no decorative frame, border, or text sits inside the required quiet zone.
  • Confirm a plain, high-protection fallback version exists if the branded version is for a controlled setting only.

Placement and environment

A well-made code can still fail entirely if the spot it's placed in never gives a scanner the time, stillness, or lighting a scan actually needs.

  • Confirm the code sits at the realistic eye level for whoever is meant to scan it.
  • Confirm the placement gives the scanner enough time and physical stillness to complete a scan.
  • Confirm the placement has been ruled out if it involves motion, unsafe footing, or a legal obligation to keep eyes elsewhere.
  • Confirm glare and reflection have been checked at more than one time of day, for any code behind glass or on a glossy surface.
  • Confirm the code is positioned within any required proximity to an existing linear barcode, where both appear on the same item.
  • Confirm the substrate (metallic, curved, fabric) has been accounted for with adjusted size, contrast, or margin.
  • Confirm the surrounding artwork doesn't compete visually with the code for a passer-by's brief attention.

Measurement

A campaign can run smoothly from a scanning perspective and still produce nothing usable afterwards if tagging and per-placement attribution weren't set up before launch.

  • Confirm a UTM parameter set, or equivalent tracking, is applied to every dynamic destination.
  • Confirm the medium parameter reflects the physical channel, not a generic label like "qr" that erases the placement.
  • Confirm each distinct physical placement has its own code, even when several placements share one destination.
  • Confirm parameter naming follows a consistent, lowercase, agreed convention across the whole campaign.
  • Confirm someone has been assigned to actually check the resulting scan data once the campaign is live.
  • Confirm a baseline expectation exists for what a reasonable scan count looks like for this specific placement.

Governance

This group outlives the print run itself, covering what happens to the code months or years after launch, once whoever set it up may no longer be the one answering for it.

  • Confirm who is authorised to edit this code's destination after it's printed.
  • Confirm an audit trail or change log exists for any edit made to a live code.
  • Confirm a documented process exists for what happens if the destination is later found compromised.
  • Confirm the platform's continuity position is known: what happens to this code if the account lapses.
  • Confirm someone has been identified as the point of contact for a reported problem with this code.
  • Confirm this code's expected retirement date or end-of-life plan has been noted somewhere it won't be forgotten.

Why this order matters

The six groups above aren't arbitrary, and running them roughly in this order catches problems before they compound. A destination mistake found while it's still a link in a spreadsheet costs nothing to fix; the same mistake found after a code has already stopped working in the field costs a reprint at best. Construction and branding checks matter next, since size, contrast, and logo placement all interact with each other in ways a single check in isolation won't catch. Placement and measurement come after the code itself is confirmed sound, because sizing a code for its actual environment and tagging it correctly only matter once the underlying code is known to work. Governance closes the list because it's the one group that outlives the print run entirely, covering what happens months or years after the ink has dried.

What this means for your next campaign

Run the full 40-point list before any print run, small or large, and treat a "no" on any single check as a stop, not a note for later. Packaging specifically tends to fail the payload and construction groups hardest, given its long lead times and unforgiving substrates, so weight extra attention there when a campaign involves plate-based print. Keep this list open and shareable rather than filed away in a private document, since a checklist only prevents mistakes on the print runs that actually consult it.

Build the code this checklist is checking

Questions

Straight answers

Do I need to run all 40 checks on every QR code I print?

Most apply to any printed code; a handful, the ones tied specifically to packaging substrates or multi-code campaigns, only bite when they're relevant. Running the full list takes a few minutes and costs nothing, whereas skipping a relevant check and finding out about it after a print run has shipped costs the run itself. Treat it as a five-minute habit, not a formality reserved for high-stakes campaigns.

Which section of this checklist catches the most expensive mistakes?

Payload and destination, because a mistake there is invisible until someone actually scans the code, and by then the print run is usually already committed. Code-construction mistakes, size, contrast, quiet zone, at least tend to show up in a basic scan test before print. A wrong or untested destination can sail through every visual check and still fail completely the first time a real customer scans it.

Should this checklist be used before every single print run, even small ones?

Yes, and especially small ones, since a short run gets less scrutiny precisely because it feels low-stakes, which is exactly when an overlooked check slips through. The checklist takes the same few minutes regardless of run size, and a mistake on a hundred-unit run is just as embarrassing to the person who signed off on it as the same mistake on a hundred-thousand-unit one.

Why isn't this checklist gated behind a signup form?

Because gating it would defeat the entire reason it exists. A checklist like this earns its use by being bookmarked, shared, and linked to directly by other people, and every one of those depends on the page being open. Trading that reach for a handful of email addresses would be a poor exchange, and it isn't one this checklist makes.

Read next

More on techniques