How a URL QR code works
The code holds the web address itself, character for character. If you type example.com/menu, the generator adds https:// for you, so the code contains https://example.com/menu. When someone points a phone camera at it, the phone recognizes the link and offers to open it in the browser. Nothing sits in between: there is no redirect service and no account that has to stay active.
On iPhone, the built-in Camera app shows a banner with the address; tapping it opens Safari. Most Android phones do the same through the camera app or Google Lens. Because the person sees the address before opening it, a short, recognizable domain builds more trust than a long string of tracking parameters.
The longer the address, the more squares the code needs. A 30-character link gives a coarse, easy-to-scan pattern; a 300-character link with many parameters produces a dense one that needs a bigger print. Links that start with javascript: or data: are refused, since a scanner should never run code.
Where it helps
- A restaurant prints the code on table cards so guests can open the menu page instead of waiting for a paper copy.
- A shop window shows a code that leads to opening hours and online ordering, useful for people passing by after closing time.
- A product label links to the setup guide or warranty page, so the printed manual can stay short.
- A speaker puts a code on the last slide that opens the talk's notes, so nobody has to copy a URL from the screen.
Tips before you print
- The code is static: if the address changes, you need a new code. Point it at a page you control, such as yourdomain.com/menu, so you can change what that page shows without reprinting.
- Trim tracking parameters you don't need. A shorter link gives a cleaner pattern that scans faster from a distance.
- As a rule of thumb, make the code at least one tenth of the scanning distance wide: about 2 cm (0.8 in) for something held in the hand, 30 cm (12 in) for a poster read from 3 m away.
- Open the link on your own phone after saving. A typo in the address is the most common reason a printed code fails.