Restaurants

How to Make a QR Code Menu for Your Restaurant

A QR code menu is one of the cheapest upgrades a restaurant can make, and one of the easiest to do badly. The square code itself costs nothing to generate. What separates a menu that actually helps you from one that just frustrates guests is the thing the code opens. Point it at a live page you own and it becomes a sign you can edit in seconds, a reorder channel that skips delivery fees, and a page Google can read. Point it at a PDF and you have built a tiny dead end. Here is how I set them up for restaurant clients.

A QR code menu replaces the laminated card or the paper handout with a small printed square. The guest sits down, points their phone camera at the code, taps the link that pops up, and your menu opens on their screen. No app, no account, no typing a web address. That simplicity is the whole appeal, and it is also why a QR menu spread through restaurants during the pandemic and then stuck around: it is genuinely faster to update a web page than to reprint a hundred laminated menus every time the kitchen changes a special.

But the code is only a pointer. It does nothing except open a destination. The entire value of a QR menu lives in what that destination is. Choose well and you get a self updating menu, a reorder button, and a page that shows up when someone searches your food. Choose a static PDF and you throw all of that away. This walkthrough is built around that one choice.

Why use a QR code menu at all?

A QR menu works on every phone with no app to download, it costs nothing to print more copies, and you can change a price or pull an out of stock item in seconds instead of reprinting. For a small restaurant it removes the single most annoying ongoing cost of a printed menu: the menu itself going stale the day after it is printed.

The no app part matters more than people assume. Years ago a QR code required a separate scanner app, which killed adoption. That is over. Every iPhone since iOS 11 and effectively every Android phone now reads QR codes directly from the native camera app. The guest opens their camera, the code is recognized, a yellow or blue link banner appears at the top of the screen, and one tap opens your menu in the browser. The friction is gone, which is why scan rates at the table are high when the code is placed well.

The cost story is just as real. A laminated menu runs a few dollars apiece and has to be reprinted whenever you change a price, add a seasonal dish, or run out of the halibut. A QR menu inverts that. You print the code once, and the menu behind it changes for free. When beef prices jump and you nudge the burger from 14 to 16 dollars, you edit one line on a web page and every code in the building, every code on every receipt you ever printed, now shows 16. Nothing on paper had to change.

Why a live page beats a PDF or an image?

A PDF or a photo of your menu is the most common mistake and the worst destination. It pinches and zooms badly on a phone, a screen reader cannot read it to a blind guest, Google cannot index its contents, and you cannot change a single price without re-exporting the whole file and reprinting every code. A live web page fixes all four problems at once.

Picture the guest experience with a PDF. They scan, the camera opens a download, and a multi page document built for an 8.5 by 11 sheet loads sideways on a 6 inch screen. They pinch to zoom into the appetizers, scroll, pinch back out, lose their place. It works, technically, but it feels like reading a tax form at dinner. A web page that is built to flow on a phone shows your sections stacked, your prices aligned, and text that resizes itself. The guest reads it the way they read everything else on their phone.

The bigger problem is what a PDF does to your business behind the scenes. A PDF is a frozen file. To change a price you open the design, edit it, export a new PDF, upload it, and if the file name or link changed you may have to reprint codes. Worse, a PDF is invisible to search. When someone in your town types your dish into Google, a live menu page can show up; a buried PDF effectively cannot. And a PDF fails accessibility outright, which I cover below. A live page, the kind that lives on your restaurant website, solves the update problem, the search problem, and the accessibility problem in one move.

How do you actually make one, step by step?

Put your menu on a web page at a fixed address like yourrestaurant.com/menu, then generate a QR code that points at exactly that address. Never let the address change. Download the code as an SVG so it stays sharp at any print size, then test it with two different phones before you print a single copy.

The order matters, so build the destination first. Get your menu onto a real page on your own domain, with each section as a heading, each item as a name, short description, and price. If you do not have a site yet, this is the natural reason to get one, because the menu page becomes the thing the code opens and the thing Google ranks. Decide on the permanent address now, for example yourrestaurant.com/menu, and write it down, because the entire plan depends on never changing it.

Then generate the code. Here is the sequence I follow:

  • Use a static code, not a "dynamic" one from a subscription tool. A static code encodes your own web address directly. A dynamic code encodes the vendor's tracking address that redirects to yours, which means if you stop paying that vendor, every printed code dies. Encode your domain and you owe no one.
  • Generate it from a free, no account tool or have it built into your site. Paste in https://yourrestaurant.com/menu and produce the code.
  • Download it as SVG or high resolution PNG. SVG is vector, so it prints razor sharp on a table tent or a 2 foot window decal. A small JPEG will look fuzzy when enlarged and fuzzy codes scan slowly or fail.
  • Keep a quiet border around it. Leave white space around the code; printing it edge to edge or on a busy photo background makes cameras struggle.
  • Test before you print. Scan it with an iPhone and an Android, in dim light like your actual dining room, and confirm it lands on the menu, not a download.

Where should you place the codes?

Put a code anywhere a customer is already holding their phone or waiting. The three highest value spots are the table, the receipt, and the takeout bag, because each one catches the guest at a different moment: deciding what to order, deciding whether to come back, and deciding what to order next time from home.

On the table, a small standing tent card or a sticker on the corner works. Add one short line of instruction, something like "Scan to see today's menu," because a bare code with no context gets fewer scans than one that tells people what they will get. Keep it where a seated guest can point a phone at it without leaning across the table.

The receipt and the takeout bag are the spots most restaurants forget, and they are where a QR menu stops being a convenience and starts being marketing. A code printed at the bottom of every receipt turns a finished meal into a reorder prompt; the guest got great service, they glance down, and your menu is one scan away. A code on the takeout bag or the to go box does the same thing days later, when they are at home holding the bag and thinking about lunch. That same code, opening that same page, is now working as a reorder channel rather than a dine in convenience. You print it once and it follows the food home.

How does the same code become commission-free reordering?

If the page your code opens has an order or reorder button tied to your own checkout, a scan can become a paid order with no marketplace in the middle. A delivery app skims 15 to 30 percent of every ticket; orders that come through your own QR page keep that margin and keep the customer's contact information with you.

This is where a QR menu pays for itself many times over. A delivery marketplace is convenient for discovery, but it is expensive rent. On a 40 dollar order, a 25 percent commission is 10 dollars gone, plus the customer's name, phone, and habits stay with the app, not with you. When your QR code opens a page on your own site that has an "Order pickup" or "Order again" button wired to your own checkout, that same 40 dollar order keeps the full margin and the relationship.

The mechanics of building that ordering flow, including what payment and pickup tools to use and how to avoid the marketplace fees entirely, are their own subject. I wrote a full walkthrough on how to add online ordering to your website without DoorDash, and the QR code is simply the doorway into that system. The bag code and the receipt code feed it. Print the menu page with a reorder button on it, put the code on every bag, and you have turned packaging into a repeat order machine that costs you nothing per transaction.

What about accessibility and tracking scans?

A live menu page can be read aloud by a screen reader and resized by a guest with low vision, which a PDF or image cannot, so the live page is also the accessible choice. And because every scan is a page visit, you can see in plain analytics how many people scan, which dishes they look at, and whether the receipt and bag codes actually drive return visits.

Accessibility is not a nice to have here, it is a real difference between the two approaches. A guest who is blind or has low vision uses a screen reader, which reads text on a web page out loud and lets them enlarge it. A photo of a menu is, to that reader, a blank rectangle, and a typical PDF is barely better. A proper menu page made of real text and headings reads perfectly. So the same choice that helps Google find your menu also makes it usable by guests a PDF locks out, and in many cases keeps you on the right side of accessibility expectations rather than the wrong side.

Tracking is the quiet bonus. Because the code opens a real page, every scan is a measurable visit. With basic, privacy respecting analytics you can watch how many scans happen, which menu sections get the most attention, and, if you give the table, receipt, and bag codes slightly different addresses such as /menu?from=bag, which placement actually brings people back. That tells you whether the bag code is earning its ink. None of this is possible with a static file, and all of it comes free the moment your menu is a page instead of a picture.

Related Internal Links

Use these to connect the QR menu to the website and ordering setup that make it actually earn money.

FAQ

Do customers need an app to scan a QR code menu?

No. Every iPhone and Android phone made in the last several years reads QR codes straight from the built in camera. The customer points the camera at the code, a link bubble appears, and they tap it. There is nothing to download.

Is a PDF or an image a good QR code menu?

No. A PDF or image is a dead end. It does not resize well on a phone, it cannot be read aloud by a screen reader, it is invisible to Google, and you cannot change a price without re-uploading the whole file and reprinting every code. Point your QR code at a live web page instead.

How do I update a QR code menu without reprinting the codes?

Point the QR code at a fixed web address such as yourrestaurant.com/menu and never change that address. When you update the prices or items on that page, every printed code instantly shows the new menu because the code only points to the address, not to the content.

Can a QR code menu take orders without DoorDash fees?

Yes. If the page the code opens includes an order or reorder button tied to your own checkout, customers can order directly from the table or from home and you keep the full ticket instead of losing 15 to 30 percent to a delivery marketplace.

Want a menu page that updates itself and takes orders?

Joseph W. Anady hand-codes restaurant websites with live menu pages, QR codes that point where they should, and commission-free ordering wired to your own checkout, so the code on your bag actually brings people back.

Impression Growth Library

Crafted by ThatDeveloperGuy.com