The basic sizing formula
There's a rough ratio between scan distance and QR size. A common rule of thumb: the QR's side length should be at least 1/10 of the scan distance. Scanning from 1m away needs a code at least 10cm on a side.
This ratio shifts with camera quality, lighting, and how much data the QR holds, so it's not an absolute rule — but it's the most practical starting point before printing.
Recommended sizes by medium
Business card (held in hand, 10–20cm away): at least 1.5×1.5cm, 2×2cm for comfort.
Flyer / menu (30–50cm away): at least 3×3cm, 4×4cm recommended.
Storefront sticker / table stand (50cm–1m away): at least 5×5cm, 7×7cm recommended.
Poster (1–2m away): at least 10×10cm, 15×15cm recommended.
Banner / large signage (3m+ away): at least 30×30cm, 50×50cm+ recommended beyond 5m.
What matters as much as size
Even at a sufficient size, a QR with no margin (quiet zone) around it scans worse. Leave empty space of at least 4 modules — roughly a tenth of the QR's width — with nothing in it.
The more data a QR holds (a long URL, a vCard), the denser its modules get, so it needs a closer scan distance at the same print size. Using a shortened link where possible helps keep the print size down.
One last check before printing
Print (or zoom to actual size on screen) at the real final size and test-scan with your own phone from the expected distance. Print shops vary in resolution, so a QR that looks fine on screen can blur on paper.
QR codes from this site download as SVG, which stays sharp at any size — scale freely to match the size table above for whichever medium you're printing.