Make a free QR code that opens your restaurant menu on any phone, keep it working forever, and print it big enough to actually scan. Step by step.
A table tent with a QR code costs about a dollar to print and saves you reprinting a stack of menus every time the kitchen changes a price. That's the appeal. The trap is that a lot of the menu codes we scan in the wild are broken: they point at a file nobody can read on a phone, or they were printed so small the camera just sits there focusing forever.
None of that is hard to avoid. Here's how to make a menu QR code that opens fast, reads cleanly, and keeps working long after the printer runs out of ink.
What a menu QR code actually does
It's a square barcode that holds a web address. A phone camera reads the square, opens that address, and your menu loads. The whole value is that the address can be anything you already have: a page on your website, a hosted PDF, an online ordering page, or a simple mobile menu page you set up in a few minutes.
The mistake is thinking the QR code "contains" the menu. It doesn't. It contains a link. So the real question is what you point it at, because that link has to survive longer than the sticker on the table.
The 10-minute setup
- Decide the destination first. The best target is a plain web page that shows your current menu on a phone without pinching or zooming. If you don't have one, an online ordering page works. A PDF works too, but only if it reads well on a small screen (more on that below).
- Generate the code. Paste the destination into a free QR code generator, set the size to something large (1000 px or more), and download it as a PNG or SVG. SVG is worth grabbing if your printer or designer will take it, because it stays sharp at any size.
- Test it before you print anything. Scan it with two different phones, one iPhone and one Android if you can. Confirm it lands on the right page and the page looks right. This 20-second check catches the single most common failure, which is a typo in the link.
- Print it big and give it room. On a table tent, aim for the code to be at least 2 cm (about 0.8 in) across, with clear white space around all four edges. That white border is called the quiet zone and cameras genuinely need it. A code jammed against artwork or text scans slower or not at all.
- Add one line of text. People hesitate at a naked square. "Scan for menu" under the code roughly doubles the odds a first-timer bothers. Tiny detail, real difference.
That's the job. The tool part takes two minutes. The choices around it are what separate a code people scan from one they ignore.
Print rules that decide whether it scans
We see the same three problems on real menus every week:
- Too small. A code shrunk to fit a corner of a flyer is the number one reason a scan fails. If someone has to hold the phone an inch away, it's too small.
- Low contrast. Dark code on a light background, always. A code printed in a brand colour on a dark photo looks lovely and scans terribly. If you want it on-brand, tint the background lightly, not the code.
- No quiet zone. Designers love to crop the white border to make things tidy. Don't let them. The border is functional, not decoration.
One more: matte finishes beat glossy. A glossy laminate under a ceiling light throws glare right across the code and the camera reads a white smear.
Static or dynamic: which one you actually need
This is where people overspend, so here's the honest version.
A static QR code has your link baked into the square. It's free, it never expires, and it works forever. If your menu lives at a stable web address that you control, and that address won't change, a static code is genuinely all you need. Don't pay for more.
A dynamic QR code points at a short redirect you own, and you can change where that redirect goes without reprinting the code. That matters in exactly three situations: your menu link might change later, you run seasonal or daily menus off the same printed code, or you want to see how many people scanned it. If none of those apply, dynamic is a feature you'll pay for and never use.
The one trap worth naming: never point a static code at a file whose link can change. A PDF on a shared drive often gets a new share URL when you re-upload it, and the day that happens every printed code on every table goes dead at once. If you're going to use a file, use a dynamic code or a fixed page you control, so you can swap the file behind a link that stays put. Dynamic codes, custom short domains, and scan tracking are where the paid plans earn their keep, and nowhere else for a menu.
Should you point it at a PDF?
Usually no. A PDF built for letter-size paper opens as a tiny, zoom-to-read mess on a phone, and hungry people don't zoom, they leave. A mobile-friendly menu page beats a PDF almost every time. If a PDF is all you've got today, at least make a phone-shaped version: one column, big type, no two-page spreads.
A neat middle option is to send the code to a single link-in-bio style page that lists your menu, your ordering link, and your hours as big buttons. We wrote a full walkthrough for setting one of those up, and the same page can serve your Instagram bio and your table QR at once.
Tracking, if you want it
The only reason to track a menu QR is to learn something you'll act on. Scan counts by day tell you whether people actually use it or default to asking a server. If nobody scans, the code is too small or too hidden, and that's a five-minute fix, not a reason to give up on it. If you're not going to look at the numbers, skip tracking and keep the free static code.
Frequently asked questions
Is a menu QR code free?
Yes. Generating the code is free and a static code never expires. You only pay if you want a dynamic code you can re-point later, a custom short domain, or scan analytics. For a menu that lives at a stable web address, free is all you need.
Do QR codes expire?
A static QR code doesn't. The square itself never stops working. What "expires" is the link it points to, so if the page or file at that address goes away, the code lands on a dead end. Keep the destination alive and the code lasts as long as the print does.
What should a restaurant menu QR code link to?
A mobile-friendly web page that shows your current menu without zooming, or your online ordering page. Avoid a print-shaped PDF if you can, because it reads badly on a phone. Whatever you choose, make sure you control the address so it won't change out from under you.
How big should I print a menu QR code?
At least 2 cm (about 0.8 in) across on a table tent, bigger on a poster or window. Leave clear white space around all four sides, keep it dark-on-light, and skip the glossy laminate that causes glare. When in doubt, print it larger than feels necessary.
Can I change the menu without printing a new code?
Only if you use a dynamic code or point a static code at a page you update in place. A dynamic code lets you swap the destination anytime while the printed square stays the same. A static code pointed at a fixed page also works, as long as you edit that page rather than replacing its link.