EUQR
← All posts

28 Jun 2026

How to create a GDPR-compliant QR code menu for your restaurant

Static or dynamic? For a menu, go dynamic

You could encode a link to a PDF directly into a static code. It is free and it works. But the day you change a price, run out of the special, or update the seasonal menu, that static code is locked to the old version and you are reprinting every table tent.

A dynamic QR code points to a short link you control, so you can swap the destination — the new menu, the new PDF, the new page — and every printed code instantly points to the latest version. Print once, update forever. For a restaurant menu, that alone pays for itself the first time a supplier price changes. If you want the full distinction, we covered it in static vs dynamic QR codes.

Step 1: Put your menu somewhere it can live

Your code has to point at something. You have two clean options:

  • A web page menu. The best experience — it loads fast, reflows on a phone, and you can update it instantly. A simple page on your own site is ideal.

  • A hosted PDF. Fine if your menu is already designed as a PDF. Keep it light so it loads quickly on mobile data, and make sure the text is legible without pinching to zoom.

Whichever you choose, the destination should be mobile-first. Most guests will never see it on a desktop.

Step 2: Generate a dynamic QR code that points to it

Create a dynamic code and set its destination to your menu URL. Because it is dynamic, you can come back any time and change that destination without touching the printed code. With EUQR you can do this in seconds, and the scan analytics are privacy-first by default — more on that below.

Step 3: Make it look like it belongs on your table

A raw black-and-white square works, but a little design earns more scans and looks intentional. Set your brand colours, raise the error-correction level if you are adding a centre logo (higher correction keeps the code scannable even with a logo in the middle), and export a crisp SVG for print so it stays sharp at any size — from a small table tent to a window poster.

Practical tips that matter in a real dining room: keep the code at least 2–3 cm wide on a table tent, add a one-line instruction ("Scan for our menu"), and test it under your actual lighting. A code behind glare or printed too small is a frustrated guest waving down a waiter.

Step 4: Keep it GDPR-friendly

Here is the part that turns a menu into a compliance question. A plain menu that just shows dishes collects nothing sensitive. But the moment your menu page does more — an ordering system, a loyalty sign-up, a "leave us a review" prompt, a Wi-Fi login, or embedded Google Analytics and a Meta pixel — you are processing personal data, and EU rules apply.

A few principles keep you clear:

  • Only collect what you need. A menu does not need a guest's email to show them the soup of the day. If you add ordering or loyalty, collect the minimum and say why.

  • Get consent for non-essential cookies. If your menu page loads third-party trackers, you need a proper opt-in banner — not a pre-ticked box.

  • Mind where the scan data lives. Many QR tools route every scan through US servers and log full IP addresses. EUQR computes scan analytics from privacy-preserving daily-rotated hashes, stores no raw IPs, and sets no third-party cookies — so you learn that 80 guests scanned on Friday evening without ever holding data that identifies any of them.

For the full picture, see our guide on whether QR codes are GDPR-compliant.

Step 5: Print, place, and watch what works

Put codes where hands and eyes naturally fall: table tents, the bottom of the physical menu, the window for passers-by, the bill holder. Because your code is dynamic, you also get scan data — when people scan, on what device, roughly where. Use it. If the window code outperforms the table code, you have learned something about how guests find you.

Step 6: Update seasonally, never reprint

This is the long-term payoff. New season, new prices, a sold-out dish, a special event menu for the weekend — change the destination once and every code on every table is current. The printed square never changes; only what it points to does. And if you ever pause your subscription, EUQR keeps the code alive on a branded Recovery Page for 90 days rather than dropping diners on a dead link.

Frequently asked questions

Do customers need an app to scan a QR code menu?
No. Every modern iPhone and Android scans QR codes straight from the native camera — point, tap the link, done. That is a big part of why QR menus took off.
Is a QR code menu GDPR-compliant?
The menu itself usually is, because just displaying dishes collects nothing. It becomes a GDPR matter if the page collects personal data (ordering, sign-ups) or loads third-party trackers. Using a privacy-first generator that does not store raw IPs keeps the scan side clean.
Can I change my menu without making a new QR code?
Yes, if you use a dynamic code. You update the destination and the same printed code points to the new menu instantly. Static codes can't be changed once printed.
How big should a QR code menu be?
On a table tent, aim for at least 2–3 cm wide and export an SVG so it prints sharply at any size. Always test under your real lighting before a full print run.
Is it really free to start?
Static menu codes are free forever with no signup. Dynamic codes — the editable, trackable kind you want for a menu — start at €0.99/mo with unlimited scans.