6 min read
Most restaurant owners who search for a QR code menu solution end up paying a monthly subscription they do not need. The services advertising "QR code menus" are selling dynamic codes tied to their platform. Stop paying and the code stops working. Your printed table cards, window stickers, and receipts become dead links overnight.
There is a simpler approach that costs nothing and never expires. A static QR code pointing to your menu file, hosted somewhere you control, is permanent by design. You can create one in minutes using the ForgeToolz free QR code generator for restaurants with no account, no subscription, and no watermark.
Here is exactly how to set it up.
Before getting into the setup, it is worth understanding why so many restaurants end up paying for something that should cost nothing.
The major QR code platforms, such as Beaconstac, Flowcode, and QR Tiger, default to generating dynamic QR codes. A dynamic code does not encode your menu URL directly. Instead, it encodes a short URL on their server, which redirects to your actual menu. The code itself is just a pointer to their platform.
This architecture gives them a business model. As long as you pay, the redirect works. If your subscription lapses, the redirect is suspended. Every table in your restaurant now shows customers a broken link or a paywall message.
A static QR code works differently. It encodes your menu URL directly into the pattern. When a customer scans it, their phone reads the URL from the code and opens it. No redirect, no server, no third party involved. The code cannot be "turned off" because there is nothing to turn off.
The static approach is permanently free because it requires no ongoing service.
The QR code is the last step, not the first. Before generating it, you need a stable URL for your menu that you control.
Option 1: Host a PDF on your website.
Upload your menu as a PDF to your restaurant website and copy the direct link to the file. Most website platforms including WordPress, Squarespace, and Wix allow file uploads. The URL will look something like yourrestaurant.com/menu.pdf. As long as your website stays live, this URL is permanent.
Option 2: Use Google Drive. Upload your menu PDF to Google Drive, set the sharing to "Anyone with the link can view," and copy the shareable link. This is free and requires no website. The link remains stable as long as you do not delete the file or change sharing settings.
Option 3: Link to a page on your website. If you have a dedicated menu page on your website, use that URL. This is the most flexible option because you can update the page content whenever the menu changes without touching the QR code.
Option 4: Use a free hosting service. Services like Notion, Google Sites, or a simple GitHub Pages site can host a menu page for free. Create a page with your menu content, make it public, and copy the URL.
The key principle is that the URL needs to be stable. If the URL changes, the QR code becomes outdated and needs to be regenerated. Choose a hosting location you intend to maintain long-term.
Once you have your menu URL, the code generation takes under a minute.
Step 1: Open the ForgeToolz QR Code Generator in your browser.
Step 2: Paste your menu URL into the input field. The preview updates in real time.
Step 3: Customize the appearance if needed. You can change the foreground and background colors to match your restaurant branding. To add your restaurant logo to the center of the code, upload it as a PNG, JPG, or SVG file. The generator uses high error correction automatically when a logo is present, which keeps the code scannable even with the logo covering part of the pattern.
Step 4: Download the finished code. Use SVG format if you plan to print it at different sizes, such as table cards, menus, or window stickers. SVG scales to any size without losing sharpness. Use PNG for digital display or standard-size prints.
The code you download encodes your menu URL directly. It is a static code and will work permanently as long as your menu URL remains accessible.
Mistake 1: Using a dynamic code from a subscription service without realizing it.
If you generated your code through a platform that required you to create an account, there is a good chance it is dynamic. Dynamic codes are identifiable because the encoded URL (visible if you decode the QR code with a reader) points to the platform's domain rather than your own. If the encoded URL says something like qr.yoursaasplatform.com/abc123 instead of your actual menu URL, the code depends on that platform staying active.
Mistake 2: Linking to a URL that will change. If you link to a Google Drive file and later reorganize your Drive, change sharing settings, or delete and re-upload the file, the URL changes and the old code breaks. Choose a stable, permanent location for your menu file before generating the code.
Mistake 3: Printing the code too small. QR codes need to be large enough for a smartphone camera to resolve at typical table scanning distances of 20 to 40 centimeters. A minimum size of 3 by 3 centimeters is recommended for table cards. For denser codes with logos, larger is safer. Test the printed code on multiple phones before printing all your table materials.
One of the practical concerns restaurants have about static QR codes is what happens when the menu changes. With a dynamic code, you can update the destination URL through the platform dashboard. With a static code, the encoded URL is fixed.
The solution is straightforward: update the content at the destination rather than changing the URL.
If your code points to a PDF hosted at yourrestaurant.com/menu.pdf, replace that file with the updated menu PDF while keeping the filename and URL identical. The code still works and customers see the new menu.
If your code points to a menu page on your website, update the page content. The URL stays the same and the code remains valid.
If your code points to a Google Drive file, update the file in place by uploading a new version through the version history feature, which preserves the same shareable link.
This approach gives you the flexibility of dynamic codes through an updatable menu, with the permanence and zero cost of static codes.
Once you have the code, consistency in placement improves the customer experience and scan rates.
Table cards and table tents: The most common placement. Position the code so it is visible from a natural seated position. Include a short instruction such as "Scan to view our menu" since not all customers automatically recognize a QR code as scannable.
Printed menus: Adding a QR code to a physical menu lets customers access a digital version with photos or more detail. Some restaurants use this to link to allergen information or specials that change more frequently than the printed menu.
Window and door stickers: Useful for communicating hours, Wi-Fi, or a takeaway menu to people outside the restaurant. SVG format is important here because window stickers are often printed at larger sizes.
Receipts: A QR code at the bottom of a printed receipt linking to a feedback form, loyalty program, or upcoming events menu keeps customers engaged after they leave.
Will this QR code ever stop working? The static QR code itself does not expire. If your menu URL remains accessible, the code works indefinitely. The only way it stops working is if the file or page it links to is deleted, moved, or set to private.
Do I need a website to use this approach? No. Google Drive, Google Sites, Notion, and similar free tools can host a publicly accessible menu page or file without a dedicated website.
Can I use my restaurant logo in the QR code? Yes. The ForgeToolz QR Code Generator supports logo embedding at no cost. Upload your logo and the generator places it in the center of the code using high error correction to keep it scannable.
What if I want to change the menu URL later? If the destination URL changes permanently, generate a new code and replace the printed materials. This is the one real-world limitation of static codes. Designing the setup correctly from the start using a stable, controlled URL avoids this situation in most cases.