Product

QR menus that survive a price change and a laminator

Table QR codes fail for three reasons: printed too small, encoded with a PDF URL, or laminated over a link that expires. How to build one that lasts a year.

By Wasim Idrishi · Updated · 4 min read

A 62-character URL funnelling down to a 4-character code, 10 characters end to end

Walk into ten restaurants with QR menus and three of the codes will not scan on the first try. The reasons are always the same three, they are all decided before printing, and none of them is about the menu.

Failure one: the code is too small

The working ratio is ten to one. Readable scanning distance divided by ten gives the minimum width of the symbol.

A diner holds a phone about 30 cm from a table card, so the code needs to be about 3 cm across. Most table cards we have measured carry a code between 1.5 and 2 cm, because the designer wanted room for the logo. That code scans on a desk in good light and fails at a candlelit table with a phone two years old.

Then there is the quiet zone: four modules of blank space on every side, required by ISO/IEC 18004. It gets cropped constantly, usually by a bleed or a border added at the last minute.

A QR containing https://restaurant.example.com/menus/autumn-2026.pdf is a photograph of one file path. Change the menu, change the file, and 60 laminated table cards point at nothing.

Encode https://gc.mw/eat instead. The card is permanent; the destination is a field you edit from a phone in the kitchen. New prices at 4pm, live at 4:01, no reprint.

Failure three: it points at a PDF

A PDF on a phone opens slowly, renders at the wrong zoom, and needs two hands to read. Diners give up and ask for a paper menu, which defeats the exercise.

Point at a web page that reflows. If today all you have is a PDF, point the QR at a short link that currently opens the PDF, then build the page later and swap the destination. Nothing on the table changes.

A worked example

A 40-cover restaurant put gc.mw/eat on table cards, gc.mw/win on the window vinyl, gc.mw/bag on takeaway bag stickers, and gc.mw/box on the insert that goes into delivery orders. All four point at the same menu page.

Four codes, four numbers, and the numbers told a story nobody expected.

The window code out-scanned the table cards on weekday afternoons, which meant people were reading the menu from outside before deciding whether to come in. The restaurant moved the vinyl to eye height and added the price range next to it, and walk-ins on those afternoons rose.

The delivery insert code kept collecting scans days after each order, because the insert lives on a fridge. That is repeat-order intent, invisible to the delivery platform's own dashboard, and it justified continuing to print inserts that the owner had been about to cut.

Scans are counted separately from clicks, the QR encodes the link with a ?qr marker, so none of this blurred into the Instagram bio traffic pointing at the same page.

Practical details for the print run

Use the SVG, not the PNG. gc.mw/eat.svg is vector, so the printer can size it to the card without softening the module edges, and gc.mw/eat.svg?fg=1a1a2e&bg=ffffff sets brand colours in the URL.

Keep the contrast strong and dark-on-light. Inverted codes, light modules on a dark card, fail on a significant number of older phone cameras, and a restaurant table is exactly where old phones show up.

Print the URL under the code. gc.mw/eat is nine characters, and our alphabet drops 0, O, I and l so nobody mistypes it. Some guests will not scan, and that line recovers them for the cost of one line of type.

Test the paper proof at the table, in the evening light, on the oldest phone in the building.

Build the code

QR Code Generator

Open the full tool

For a link you already own, the .svg endpoint is the print asset and there is nothing else to generate. The tool above also does the static codes a restaurant needs elsewhere, the guest Wi-Fi code for the wall, which renders entirely in your browser so the password is never uploaded anywhere.

The QR code product page covers logos and error correction, and branded links covers editing a destination after the laminating is done.

Questions people ask

How big should a table QR code be?

About 3 cm across for a code scanned at arm's length, which is roughly 30 cm. Ten to one is the working ratio. Add four modules of blank quiet zone on every side, and do not put it inside a fold, a menu holder lip, or under the glass of a table top where reflections kill it.

Should the QR point straight at a PDF?

No. A PDF opens slowly on a phone, pinches badly and cannot be read one-handed. Point at a web page. If a PDF is all you have today, point the QR at a short link that currently opens the PDF, so you can swap in a real page later without reprinting anything.

Can I change the menu without reprinting the code?

That is the entire point of encoding a short link rather than the menu URL. Edit the destination and every table card follows within about a second. Prices, specials and a whole seasonal menu change without touching the laminate.

Do I need a different code for each table?

Only if you want per-table data, which most restaurants do not. What is worth splitting is placement: the table card, the window, the takeaway bag and the delivery insert should each have their own code, because those are four different customers.

Sources

  1. ISO/IEC 18004:2024, QR Code bar code symbology specification · checked 5 September 2026

One platform, two surfaces

A short link and a business card are the same object here.

Point a link at a card and you have a handshake you can print, say out loud or tap across. Both halves report into one dashboard on one plan.

You hand this over

GC.MW/riya

Ten characters. Short enough to say on a call, print on a badge or fit inside an SMS.

It opens this

CARDS.GC.MW/riya

Your digital business card, on its own host, with a contact file the phone can save.

  • One link, one card

    A short link can resolve to your card, so the thing you hand over is 10 characters long.

  • One dashboard

    Links, cards, domains and codes are managed from the same screen under the same login.

  • One analytics view

    Clicks on a link and views on a card read from the same rollups, so a campaign is one number.

  • One plan, one key

    A plan covers both halves and one API key creates either. No second bill and no second vendor.

The other half

Digital business cards

A card that opens in a second, saves to a phone, and never runs out.

Bio page and card

You are here

Short links

Ten characters, an alias you choose, and a click count that updates in seconds.

Branded links on GC.MW

A rising 14-day click chart with top country, referrer and device ranked beside it

Try it with your own link

Paste a long link and get a 10-character gc.mw link with a QR code. No account needed for 30 days; free forever with one.