QR codes spent a decade as a punchline and then quietly became infrastructure. The thing that changed was not the technology — it is essentially unchanged since the nineties — but the fact that phone cameras started reading them without an app. That removed the only real friction, and now people scan menus, parking meters, payment screens and conference badges without thinking about it.
That also means the bar has moved. Nobody is impressed by a QR code any more, so a code only earns its space if the thing on the other side is worth the scan. Most business QR codes fail here: the code scans fine and lands on a homepage that answers none of the questions the person had when they raised their phone.
This guide is about the whole chain — deciding whether a QR code is the right tool, choosing static or dynamic, placing it where people will actually use it, designing it so it scans first time, building the page behind it, and reading the numbers afterwards without fooling yourself.
What a QR code is, in the only terms that matter
A QR code is a picture of some data. Usually that data is a URL, but it can also be a phone number, a wifi network, a payment string or a whole contact record. When a camera reads the pattern, the phone gets that data and offers to act on it. There is no account, no tracking chip and no magic — it is a link you can point a camera at.
The pattern includes error correction, which is why a code still works with a logo in the middle or a coffee ring across the corner. You can typically obscure a meaningful portion of the code and still get a clean read, though the more you decorate it the more margin you burn.
The practical consequence of all this is simple. A QR code is only ever as good as the destination and the reason you gave someone to scan it. Everything else in this guide follows from that.
What QR codes for business are actually good for
The pattern that works is bridging a physical moment to a digital action. Someone is standing in front of something — a product, a table, a sign, a van, a stall, you — and there is something you want them to do that a phone does better than the physical world does.
The pattern that does not work is decoration. A QR code on a billboard beside a motorway, a code in a TV ad that disappears in two seconds, a code on the back of a t-shirt. If the person cannot comfortably scan it and does not want what is behind it, the code is a design element pretending to be a feature.
Here are the uses that consistently earn their place for small businesses and creators.
- Sharing contact details in person, replacing the paper business card
- Menus, price lists and service sheets that change often
- Event sign-ins, RSVPs and workshop registrations without a clipboard
- Collecting reviews at the point of a happy customer
- Booking a call or a service from a van, a stall or a shopfront
- Product packaging that links to instructions, warranty or reorder
- Table cards and receipts that link to a feedback form
- Payment links for market stalls and mobile services
Static vs dynamic QR codes: the one decision that matters most
A static QR code contains the final destination directly. It is free forever, depends on nobody, and can never be changed. A dynamic QR code contains a short link that redirects, which means you can repoint it later and count the scans, but you are dependent on whoever runs that redirect staying online.
The decision is about cost of replacement. If the code lives somewhere you can reprint in ten seconds — a slide, a screen, a sheet of paper on a counter — static is fine and one less dependency. If the code goes on ten thousand labels, a vehicle wrap, an engraved sign or a metal card, use dynamic. The one time you need to change that URL will pay for years of subscription.
There is a middle path worth knowing about. Make the code point at a URL on your own domain, and control the redirect yourself. You get the changeability of a dynamic code without handing the permanence of your printed materials to a third party.
- Static: free forever, no dependency, permanently fixed destination
- Dynamic: editable destination, scan counts, depends on a provider
- Use static for slides, screens and anything you reprint in seconds
- Use dynamic for labels, signage, vehicles, engraved and metal items
- Best of both: dynamic redirect hosted on your own domain
Where to place a QR code so people actually scan it
Placement is not a design question, it is a physics and psychology question. The person needs a free hand, a stable position, enough light, a reason, and a few seconds where scanning is the most interesting thing available. Fail any one of those and the scan rate collapses regardless of how good the offer is.
Waiting is your best friend. Codes perform well where people are already stationary and mildly bored: on a table, at a counter queue, in a waiting room, on the back of a seat, at the end of a talk while the room is still seated. They perform badly where people are moving, driving, or already occupied with a transaction.
Height and angle matter more than people expect. Chest height on a vertical surface is the sweet spot. Codes on the floor, above head height, on curved bottles or behind glare-heavy glass all lose scans that a fifteen-centimetre move would have saved.
- Counter and table cards, at an angle rather than flat
- Window stickers at eye level, readable from outside
- The back of a receipt or an invoice
- The last slide of a presentation, left up during questions
- Vehicle panels, large and high-contrast
- Product packaging, on the panel people look at while unboxing
- Name badges and lanyards at conferences
- Print ads and flyers, near the offer rather than in a corner
Writing the call to action next to the code
A bare QR code is a locked door with no sign. People need to know what happens if they scan, and the difference between a generic prompt and a specific one is often the difference between a two percent and a fifteen percent scan rate.
Say what they get, not what they do. Scan me tells them nothing. Scan for tonight's menu, Scan to book a free quote, Scan to save my number, Scan for the assembly instructions — each of those answers the only question in the person's head, which is whether this is worth the effort.
Keep the words close to the code, in a font that reads at the distance people will stand, and add the domain in small type underneath. The domain does two jobs: it reassures people the link is legitimate, and it gives them a way in if the scan fails.
How to design and print a QR code that scans first time
Contrast is the whole game. Dark pattern on a light background, with a genuine quiet zone — a clear margin roughly four modules wide around the outside — and no text or graphics crossing into it. Inverted codes, light-on-dark, are read inconsistently by some phones and should be avoided on anything you cannot reprint.
Size follows distance. A useful rule of thumb is a minimum of two centimetres square for something held in the hand, then roughly one extra centimetre for every 25 centimetres of viewing distance. A code on a shop window read from the pavement needs to be much bigger than most designers instinctively make it.
Then test the printed artefact, not the file. Print it at final size on the actual material, take it into the actual lighting, and scan it with an old cheap phone as well as a new one. Glossy laminate under a spotlight, dark ink on a dark textured card, and a code that crosses a fold are three common ways a code that worked on screen dies in the real world.
- Dark on light, never light on dark for print
- Keep a clear quiet zone around the code — no text touching it
- Vector file for print, not a resized screenshot
- Logo in the centre only if you test it after adding it
- Never place a code across a fold, a seam or a curved edge
- Matte finish beats gloss under bright lighting
- Test with at least two different phones before approving
The page behind the code: where most QR campaigns die
The scan is the easy part. The page that opens is where the value is created or lost, and the most common mistake in QR codes for business is pointing the code at a homepage. Someone scanning a table card wants the menu, not your company story. Someone scanning a van wants a quote form, not a navigation bar.
Build a dedicated destination for each code with one job. It should load fast on a mobile connection, be readable one-handed, and put the action in the first screen. Cut the navigation, cut the cookie wall if you can, and never bounce the scan through an app-install interstitial — that is the single fastest way to lose a person who was ready to act.
One more thing that costs nothing: make the page useful even to someone who scanned by accident or out of curiosity. A clear heading that names the business and what this is takes ten seconds to write and rescues a share of the traffic that would otherwise close the tab.
QR code tracking: how to measure scans honestly
With a dynamic code you can count scans, see the rough time and location, and compare codes against each other. That is genuinely useful, but scans are an intermediate number and treating them as a result is how people convince themselves a failing campaign is working.
Measure the funnel: scans, then time on page, then the action you actually wanted — a booking, a form submission, a saved contact, an order. A code with four hundred scans and two bookings is a placement success and a page failure. A code with thirty scans and eleven bookings is a page success and a placement problem. Those need opposite fixes.
Use different codes for different placements so you can tell them apart. Print one code for the window, one for the counter, one for the flyer, and after a month you will know which surface deserves the space. In our experience this is where the useful surprises come from — one placement usually carries most of the value and it is rarely the one people expected.
- Scans — proves placement and call to action are working
- Unique versus repeat scans — separates new people from regulars
- Time on the destination page — catches a mismatched landing page
- Completed actions: bookings, forms, saves, orders
- Scans per placement, using a separate code for each surface
- Day and hour patterns, which tell you when your signage is read
QR code security and trust: what to do about tampering
The real vulnerability of QR codes is physical, not technical. Someone prints a sticker with their own code and puts it over yours — on a parking meter, a payment sign, a poster — and the people who scan it end up somewhere else entirely. It has happened often enough that a share of the public is now cautious about scanning anything in a public place.
You cannot solve this with better encoding, so solve it with visible trust. Print your domain in plain text next to every code so people can see where they are going before they tap. Use a domain that clearly belongs to you rather than an anonymous shortener. Integrate codes into printed artwork rather than adding them as stickers, so a fake sticker looks obviously wrong.
Then check them. Any code on a public surface should be scanned by a staff member on a regular schedule — weekly for a busy shopfront, monthly for quieter placements. It takes seconds and it is the only reliable way to catch tampering.
Common mistakes with QR codes for business, and how to fix them
Most problems fall into three buckets: the code cannot be scanned, the person had no reason to scan it, or the destination wasted the scan. Almost everything below is a variation on one of those.
The fixes are cheap if you catch them before print. They are expensive afterwards, which is why a fifteen-minute test round on the physical proof is the highest-return step in the whole process.
- Static code on expensive print — you will need to change it one day
- Code too small, or too small for the viewing distance
- No call to action, so nobody knows what they get
- Pointing at a homepage instead of a purpose-built page
- A destination that is not mobile-friendly, or slow
- Code placed where people are moving, driving or paying
- Untested after a logo was dropped into the middle
- Free generator with a hidden expiry or a scan limit
A one-week QR code rollout for a small business
Day one, decide the single action you want. Not awareness — an action. Bookings, reviews, sign-ups, contact saves, reorders. Day two, build the destination page for exactly that action and nothing else, and get it loading quickly on a phone.
Day three, generate two or three dynamic codes for the placements you care about most, and write a specific call to action for each. Day four, print one proof of each at final size and test them on two phones in the real location and lighting. Day five, fix whatever failed, then print properly.
Give it a fortnight before you judge anything, then look at the funnel rather than the scan count. Move the codes that are not scanning and rewrite the pages that are scanning but not converting. You can build the pages, forms and codes behind all of this in one place at onesol.io — the code, the page it opens and the leads it collects live in the same account.