# QR code size for a menu

> Print menu QR codes at 2.5–3 cm for a menu held in the hand and 4 cm if it lies flat on the table, with error correction Q for wear. Specify matt laminate — a gloss surface under a restaurant downlight throws a specular hotspot that no error correction can recover.

Source: https://useqr.app/docs/print/qr-code-size-for-a-menu · Last reviewed 2026-08-21 · UseQR is free forever, MIT licensed, no signup.

---

## Seated distances

A diner scans from a chair, and the geometry is consistent everywhere:

| Context | Distance | Minimum code width |
|---|---|---|
| Menu held in the hand | 25–30 cm | 2.5–3 cm |
| Menu flat on the table | 40 cm | 4 cm |
| Sticker on the table surface | 35 cm | 3.5 cm |
| Wall menu behind a counter | 1.5–2 m | 15–20 cm |

**3 cm is the working minimum** for a physical menu — it covers the in-hand case with
margin. If the code is the menu (a card or sticker that stays on the table), size for
40 cm, because nobody picks up a glued-down sticker. Counter-service wall menus are
posters in disguise; size them with the
[ten-to-one rule](/docs/print/the-10-to-1-distance-rule), not menu instincts.

## Error correction: Q, for once

Menus lead a hard life — wiped nightly, stacked, splashed, scratched. That damage is
*localised*, which is precisely what
[error correction](/docs/spec/error-correction-levels-explained) repairs, so **EC Q (25%
recovery)** earns its density cost here. A short URL at EC Q still sits around version
3–4; at 3 cm that is a healthy 0.7–0.9 mm module.

## The laminate hotspot

The menu-specific failure is glare. Restaurant lighting is point-source — downlights and
pendants — and a gloss laminate reflects them specularly. At typical table geometry the
reflected hotspot lands more or less where the diner's phone is aimed, washing out a
patch of the code. Error correction cannot help: glare is not damaged modules, it is a
region with no contrast at all, and if the hotspot covers a
[finder pattern](/glossary/finder-pattern) the scanner never locates the code in the
first place.

The fixes, in order of effectiveness:

1. **Matt laminate.** Same durability, diffuse reflection. Specify it; gloss is the
   default at many print shops. See
   [laminate and varnish effects on scanning](/docs/print/laminate-and-varnish-effects-on-scanning).
2. Placement away from the table's overhead light line — the
   [glare guide](/docs/print/qr-codes-on-glossy-surfaces-and-glare) covers the angles.
3. A caption telling diners they can lift or tilt the menu — which they do anyway when a
   scan fails, but a hint shortens the fumble.

## Payload notes

Link straight to the menu, not the homepage — a [menu QR code](/menu-qr-code) pointing at
`yoursite.example/menu` keeps the payload short and the version low. Keep it stable: the
code outlives the laminate, so the URL must
[survive redesigns](/docs/basics/do-qr-codes-expire). Check the numbers with the
[size calculator](/size-calculator) and [verify the artwork decodes](/validate) before
laminating fifty copies. Presentation formats — stands, tents, stickers — are compared on
the [menus surface page](/qr-codes-on/menus).

## FAQ

### What size should a QR code be on a restaurant menu?
2.5–3 cm on a menu diners hold, 4 cm on anything read flat on the table. Seated scanning distance runs 30–50 cm, and the flat-on-table case is the one most menu codes are undersized for.

### Why won't the QR code on my laminated menu scan?
Usually glare. Gloss laminate reflects overhead downlights as a bright hotspot with no contrast, and if it covers part of the code — especially a corner finder pattern — the scan fails. Re-laminate in matt, or move the code away from the reflection line.

### What error correction level should a menu QR code use?
Q. Menus accumulate scratches, wipe marks and food stains, which are localised damage that 25% error correction genuinely repairs. The density cost is small for a short menu URL.

### Is a QR code on the table better than one on the menu?
Table stickers and tents survive menu redesigns and are always present, but they are read from further away — size them at 3.5–4 cm minimum and expect harder wear. Both work when sized for their actual distance.

## Try it

- https://useqr.app/menu
- https://useqr.app/url
- https://useqr.app/size-calculator
- https://useqr.app/validate
