What is a restaurant menu QR code?

A menu QR code is a URL QR code. That is the whole technical story. The QR specification has no "menu" type — there is no menu format, no restaurant mode, nothing a scanner treats differently. The code contains a plain web address such as https://example.com/menu, the camera reads that string, and the phone opens it in the browser. This is why the generator on this site sends you to the URL type: it is the correct tool, not a substitute for a missing one.

Understanding that has a practical payoff. Everything that determines whether your menu code works well is on the other side of the link — where the menu is hosted, how fast it loads, whether it reads on a 5-inch screen, and whether the address stays the same when the menu changes. The square of pixels is the easy part.

It also means you do not need a paid "dynamic QR" subscription for this. Vendors sell dynamic codes on the promise that you can change the destination later. For a menu you get the same benefit for free by keeping the URL fixed and changing the page behind it. Print example.com/menu, and when the spring menu replaces the winter one, you publish new content at the same address. The printed code never needs to change, and no third party sits between your guests and your menu.

The codes here are static: the URL is encoded directly into the image, with no redirect and no expiry. As long as that address serves a page, the code works.

When to use it

  • Table service, replacing laminated menus. The real saving is not paper — it is being able to change a price on Tuesday morning instead of living with it until the next print run.
  • In the window, facing the street. Arguably the highest-value placement of all. People want to see prices before committing to walking in, and a window code answers that without a member of staff hovering.
  • Takeaway bags and delivery boxes. A code inside the lid catches the reorder. The customer already knows the food is good; the barrier is finding you again.
  • Wine and cocktail lists. Tasting notes, producers, regions and vintages that would never fit on a printed card. Wine lists change more often than food menus anyway.
  • Daily specials. A page you update each morning beats a chalkboard nobody at the back of the room can read, and it survives being photographed and shared.
  • Food trucks and market stalls. No wall space, no shelter, weather that destroys printed boards. A code on the hatch does the work of a menu board a metre wide.
  • Hotel rooms and in-room dining. A card by the phone linking to breakfast, room service and bar hours, updated centrally rather than reprinted per room.
  • Allergen and dietary information. The strongest case for a web menu. Full ingredient detail is impossible on a printed card and needs to be correct today, not correct last quarter. Keep this page current and easy to reach.
  • Event and wedding catering. One link per event covering courses, allergens and timings, shared with guests before they arrive.

How to create one

  1. Publish the menu at a permanent address on your own domain. Choose a short path you will never change: /menu, /drinks, /specials. Resist dated or versioned paths like /spring-menu-2026 — that is how a code becomes obsolete.
  2. Build it as a web page, not a PDF. A responsive HTML page reflows to the screen, loads in well under a second, works with screen readers, and lets Google index your dishes. A PDF opens in a viewer, downloads several megabytes on a weak connection, and forces the guest to pinch-zoom around a page designed for A4.
  3. Check it on a real phone, on mobile data with WiFi turned off. Body text at least 16 px, prices as selectable text rather than baked into an image, total page weight ideally under 500 KB, and no cookie banner covering the first course.
  4. Copy the final URL, including https://, and strip any tracking parameters. Every character you remove makes the printed code coarser and easier to scan.
  5. Generate the code using the URL type. Error correction M is right for table tents and window vinyl; use Q for anything that gets handled, wiped down or splashed all shift.
  6. Download SVG for print. It scales cleanly when your printer resizes the artwork. PNG is fine for screens, and if PNG is all you have, export at 1000 px or wider.
  7. Print one proof at final size on the final material and test it while seated at a real table, in your actual evening lighting, on both an iPhone and an Android. Candlelight and dim rooms break more codes than bad generators do.

The link and data format

What gets encoded is literally the URL string, character for character:

https://example.com/menu

Part Example Why it matters
Scheme https:// Include it. Without a scheme some scanners treat the content as plain text and show it instead of opening it. Use HTTPS — browsers warn on plain HTTP.
Host example.com Your own domain, ideally. Case-insensitive. Skip www. if your site works without it; that is four fewer characters.
Path /menu Case-sensitive on most servers. Keep it short and permanent — this is the part that makes the code reusable for years.
Query string ?utm_source=table Optional, and it costs you. Query strings add length and force a denser grid. Use a distinct path per placement instead, e.g. /menu/t for tables.

Length is the thing to watch. https://example.com/menu is 24 characters and encodes into a coarse, forgiving grid that survives 20 mm on kraft paper. Something like https://example.com/wp-content/uploads/2026/02/spring-menu-final-v3.pdf is 71 characters, produces a visibly finer grid, and will need roughly 30—40% more printed width for the same reliability. Short URLs are not tidiness; they are scan reliability.

One optimisation worth knowing if you are printing very small. QR codes have an alphanumeric mode covering digits, uppercase A–Z, space and a handful of symbols ($ % * + - . / :), and it packs characters more tightly than the byte mode used for lowercase text. Encoding HTTPS://EXAMPLE.COM/MENU in uppercase can therefore produce a smaller grid than the lowercase version. Hostnames are case-insensitive so the domain is safe, but paths usually are not — only do this if your server resolves the uppercase path, and test it before printing a thousand table tents. Note also that ? and = are outside that character set, so any query string cancels the benefit.

Placement and sizing

Work from the distance the code is read at: printed width ≈ scan distance ÷ 10. Add 20—25% on kraft, uncoated card or corrugated board, where ink spread softens the module edges. Keep the quiet zone — four modules of blank margin on all four sides — and never let a code run across a fold or a table edge.

Placement Scan distance Recommended width Notes
Table tent / A-frame card 35—45 cm 25—30 mm Print on both faces so it works from either side. Matte laminate only — gloss reflects downlights straight back into the lens.
Table-top decal or edge sticker 45—60 cm 30—35 mm Guests lean back, so size up from the table tent figure. Choose a vinyl that survives sanitiser.
Coaster 35—45 cm 22—28 mm Absorbent board plus condensation rings. Go to the top of the range and use error correction Q.
Bill folder / check presenter 30—40 cm 25—30 mm Better used for a review code than a menu code — by then they have eaten.
Window, read from the pavement 1—1.5 m 90—150 mm Mount at 130—150 cm. Check for reflections at the hours you actually trade, including after dark.
Pavement A-board 1.5—2 m 120—200 mm Upper half of the board, above the level of passing bags and legs.
Food truck hatch or side panel 1—2 m 100—180 mm Keep it out of direct sun where possible; glare on vinyl defeats the camera.
Takeaway bag (kraft) 25—35 cm 28—35 mm Kraft is the worst common substrate: brown, absorbent, creased. Size up and print dark on the lightest panel available.
Pizza box or delivery lid sticker 30—40 cm 25—30 mm Corrugated flute distorts the grid. Use a printed label rather than direct-to-board printing.
Hotel room card 25—35 cm 20—25 mm Coated card scans well at small sizes. Keep the WiFi code on a separate card.

Common mistakes and how to fix them

Symptom Cause Fix
Camera finds nothing at the table, even close up Printed under 20 mm, or gloss laminate reflecting a ceiling light or candle Go to 25—30 mm on a table tent and switch to matte. Re-test in evening light, not daylight.
Phone downloads a file instead of showing the menu The URL points at a PDF Publish an HTML page. If the PDF has to stay, link a page that displays it and keep the file under 1 MB.
"This site can't be reached", or a request-access screen The menu lives on Google Drive, Dropbox or a file host, and the file was moved, renamed or left private Host on your own domain at a fixed path. Cloud storage links are the single most common cause of dead menu codes.
Guests pinch-zooming and giving up A desktop-width page or an A4 PDF being viewed on a phone Responsive layout, 16 px minimum body text, one column, prices as text not images.
Prices or dishes on the menu are out of date A new file was uploaded at a new URL, so the printed code still points at the old one Keep one permanent path and replace the content behind it. Never version the URL.
Code scans instantly, page takes ten seconds Multi-megabyte hero photography, or a heavy site builder theme, on a saturated mobile network Compress images hard, drop the video header, aim for a page that loads in under two seconds on 4G.
Reads on Android but not on iPhone, or vice versa Inverted colours, low contrast, a brand tint that is too pale, or a logo covering the centre Dark modules on a light background with strong contrast. Keep any logo under roughly 20% of the area and re-test after every design change.
The code on the table tent fails but the same file works elsewhere The quiet zone was trimmed away, or the code sits across the fold or the die-cut edge Leave a four-module blank margin and 5 mm of clearance from any fold, cut or crease.
Older guests ask for a paper menu and look irritated No fallback exists Keep a handful of printed menus behind the bar. It is an accessibility issue as much as a service one, and it costs almost nothing.
Nobody in the corner of the room can load anything No mobile signal and no guest WiFi Put a WiFi QR code next to the menu code, or on the reverse of the same card.

Getting more scans

The wording under the code decides most of it. "Scan me" tells the guest nothing, so it competes with conversation and loses. Name the payoff and remove the friction in one line: "Scan for today's menu and allergens — opens in your browser, no app needed." Three objections answered in eleven words: what is on the other side, whether it is current, and whether they are about to be asked to install something.

That last point matters more than people expect. A meaningful share of guests hesitate because they assume a restaurant QR code means an ordering app, an account, or handing over an email address. Saying explicitly that it is just a web page removes the hesitation at no cost.

Things that reliably help:

  • Print the short URL underneath. example.com/menu in small type is a fallback for cracked lenses, dead cameras and guests who simply prefer typing.
  • Put the code in the seated eyeline. On the table, on the tent, on the coaster — not on a wall behind the guest's shoulder.
  • Label the window code with intent. "See the menu and prices" collects far more scans from the pavement than a bare square, because the passer-by's actual question is whether they can afford to walk in.
  • One code per surface. Menu, WiFi, review and Instagram codes crowded onto one card produce fewer scans of every one of them. Split them across surfaces and moments.
  • Have staff mention it once, casually. "Menu's on the code, or I can bring you a printed one." This is the biggest single lever, and it costs nothing.
  • Read your own analytics. Static codes cannot report scans, but your web server can. Page views on /menu by hour tell you whether the window code works at lunchtime, and a separate path per placement (/menu for tables, /menu/w for the window) gives you a crude but honest split without any tracking service.

A note on ordering platforms. If the code goes to a third-party ordering system rather than your own page, you are handing a commission and your customer relationship to someone else for the convenience of not building a page. That is sometimes the right trade for delivery. For a guest already sitting at your table, it rarely is.

FAQ

Is a menu QR code different from a URL QR code?

No — it is the same thing with a different name. The code carries a web address, and the phone opens it. Anyone selling you a special "menu QR" product is selling hosting, an editor, or a subscription redirect, not a different kind of code.

Do guests need to install an app?

No. Every current iPhone and Android reads QR codes from the built-in camera app, and the menu opens in the default browser. Saying so on the printed card is worth doing, because plenty of people assume otherwise and never scan.

Can I use a PDF instead of a web page?

You can, and it is the most common shortcut. It also gives the worst experience: a viewer window, pinch-zooming through an A4 layout, and a download that stalls on a weak connection. If you must use a PDF, keep it under 1 MB and design it portrait at phone proportions rather than A4.

Can I update the menu without reprinting the codes?

Yes, and this is the main reason to do it this way. Keep the URL fixed — /menu — and change what that address serves. New dishes, new prices, seasonal changes: all invisible to the printed code. The only thing that forces a reprint is changing the address itself.

Do I need a paid dynamic QR subscription?

Not for a menu. Dynamic codes exist to let you repoint a printed code and count scans. You get the repointing for free by keeping the URL stable, and your server logs give you the counts. You also avoid the real risk with dynamic codes: if that vendor's redirect ever disappears, every printed code you own dies at once.

Is a Google Drive or Dropbox link good enough?

It works until it doesn't. Those links break when a file is renamed, moved, re-shared or has its permissions changed, and they often show a download or sign-in screen first. For something printed on a hundred table tents, host it on your own domain.

Can I track how many people scan the code?

Not from the code, but you can track the page. Views of /menu in your analytics or server logs are effectively your scan count, broken down by hour and device. Give each placement its own path and you can compare the window against the tables.

What size should a table tent code be?

25—30 mm across for a seated guest at 35—45 cm, printed matte, with a four-module blank margin. Go to 30—35 mm for a flat table decal, because people lean back further than you think.

Which colours can I use?

Dark modules on a light background, with real contrast. Deep brand colours usually work; pastels, mid-greys, red on black and gradients often do not. Inverting the code (light on dark) looks good in a design mock-up and fails on a meaningful number of scanners — not worth the risk on a hundred printed cards.

Do menu QR codes expire?

Static codes have no expiry and no account behind them. What expires is the destination: a lapsed domain, a rebuilt site with changed paths, or a cloud file that was moved. Scan your printed material after any website change, and again once a quarter.

Should we get rid of printed menus entirely?

No. Keep a small stack for guests without a phone, with a flat battery, or who find small text difficult. In some jurisdictions accessibility rules effectively require an alternative, and either way a guest who has to ask twice for a menu is a guest who leaves a worse review.

Related QR code guides

  • URL QR codes — the format a menu code actually uses; read this for the full detail on link length and encoding.
  • WiFi QR codes — the essential companion. No connection, no menu.
  • Google Review QR codes — put this one on the bill, not the table.
  • WhatsApp QR codes — take bookings and takeaway orders by chat without a platform commission.
  • PDF QR codes — if you are set on a PDF menu, do it properly.
  • vCard QR codes — useful for events, catering enquiries and supplier contacts.
  • EPC payment QR codes — SEPA bank transfers for deposits and event invoices.
  • amount.