Print size and module resolution
There's a difference between how big a QR code looks on your screen and how cleanly it actually prints. Cheap thermal or inkjet packaging printers — the kind used for run-of-the-mill labels and cartons — can blur or spread fine detail, so a QR code that looks crisp in a design file can turn into a smudged mess on the actual box. Err on the side of larger and simpler than you think you need: a shorter destination URL means fewer modules, and fewer modules means each one is physically bigger and more forgiving of a slightly blurry print head.
Before committing to a full production run, print a handful of labels or boxes on the actual printer and material you'll use, then scan them with a couple of different phones under normal lighting. It's a five-minute check that catches problems no amount of on-screen zooming will show you.
Curved surfaces distort the pattern
A QR code wrapped around a bottle, can, or tube doesn't stay square — it stretches and compresses unevenly as the surface curves away from the camera, and that distortion gets worse toward the edges of the code. A pattern that would scan instantly on a flat label can fail entirely once it's wrapped around a narrow cylinder, especially if it spans a big enough arc that the outer modules are angled sharply away from a straight-on view.
Where you can, put the code on a flat panel of the label rather than the curved body of the container itself — most bottle and can labels have at least one flatter section. If a flat panel isn't an option, size the code up significantly beyond what you'd use on a flat surface, keep it away from the seam where the label wraps around, and test-scan it from a realistic angle, not just straight-on from a few inches away.
Contrast, and what to actually link to
A QR code needs strong contrast between the modules and the background to scan reliably — a dark code on a light background, or vice versa. Packaging art is often busy or dark, so don't drop the code straight onto a photo, a pattern, or a dark brand color without checking it; a small solid-color panel behind the code (white, or whatever color contrasts most against your chosen module color) solves this cleanly without disrupting the rest of the design.
As for what to link to: instructions or a user manual, a warranty registration form, ingredient or nutrition detail that didn't fit on the label, proof of authenticity for higher-value goods, or recycling instructions for the packaging itself are all solid uses. Since the code is static, the destination is baked in at print time — that's fine for content that's stable across a production run, but if you need a different link per batch or serial number, that's a job for a dynamic QR system, which is a separate, subscription-based category QRSen doesn't offer.