How-to

How to create a QR code for a restaurant menu

Updated September 20, 20266 min read

A menu QR code fails for one of two reasons: it points at a file that gets replaced, or it is printed too small to scan from a seated position. Both are fixed before you print, and this guide does it in four steps.

The code encodes a link, so the link decides whether the code survives your next menu update. Avoid anything that changes address when the file changes.

What to point a menu QR code at
DestinationVerdictWhy
A page on your site (/menu)BestYou edit the page; the code never changes.
A dynamic QR codeBestYou edit the destination from the dashboard, even after printing.
A PDF uploaded to cloud storageRiskyRe-uploading usually creates a new address and breaks the code.
A social post or story linkAvoidLinks expire and force guests into an app login.

2. Generate and design the code

Open the URL generator, paste the menu link, and keep the design conservative: dark modules on a light background. Guests scan in low restaurant light, where a low-contrast code simply does not read.

Qreator URL generator with a menu link, the print pre-flight verdict and the PDF export option highlighted
1 the menu link, 2 the pre-flight verdict with contrast and minimum print size, 3 the PDF export for the printer.
  1. Paste the menu link in the Website URL field.
  2. Leave the Ink preset, or pick a dark brand colour on a light background.
  3. Check the pre-flight line: contrast should stay above 4:1 and the minimum print size tells you how small you can go.
  4. Download SVG or PDF for anything that gets printed; PNG only for screens.
The same generator on a phone, with the menu link, the pre-flight verdict and the PDF option
The same three checkpoints on a phone, in case you are building the code from the floor.

3. Print it at the right size

Table tents and menu cards are scanned from roughly 30 cm, so the usual minimum works well: about 25 mm of printed code plus a quiet margin all around.

Menu placements and practical sizes
PlacementScan distancePrinted code size
Table tent, menu card~30 cm25 mm
Laminated placemat~40 cm30 mm
Window or A-board1–2 m80–150 mm
  • Keep a clear margin of at least four module widths around the code — never crop to the edge.
  • Print on matte stock; gloss and lamination create reflections that blind the camera.
  • Add a short instruction such as “Scan for today's menu” so guests know what they get.
  • Never place the code where a plate or a napkin holder will cover it.

4. Track scans and update the menu

With a dynamic code the printed card stays valid forever: you change the destination in the dashboard and the next guest lands on the new page. Scan data also tells you which room, shift or table set actually gets used.

Scan analytics for a restaurant campaign with totals, devices and daily trend
Scans per day, device and country for a restaurant campaign.
  • Use one code per room or per table range to see where scans happen.
  • Watch the first fortnight: a flat line usually means the card is badly placed, not that guests dislike QR menus.
  • Change the destination when the seasonal menu goes live — the printed cards need no reprint.

Frequent questions

Do I need a website to make a menu QR code?
No. A dynamic QR code can point at a hosted menu page you build in Qreator, so you can print the code before you have a website.
How big should a menu QR code be?
About 25 mm of printed code for a table tent scanned at 30 cm, 30 mm on a placemat and 80–150 mm for a window, always with a clear margin around it.
Can I change the menu without printing new cards?
Yes, if the code is dynamic. You edit the destination in the dashboard and every printed card opens the new menu immediately.
Should the menu be a PDF?
Prefer a web page. PDFs pinch-zoom badly on phones and re-uploading a file often changes its address, which breaks the printed code.
Can I see how many guests scan the menu?
Dynamic codes count every scan with day, device, browser language and country, without cookies or personal data.

In-depth guides