← All posts

March 1, 2026 · 10 min read

QR Codes for Small Business: A No-BS Guide

QR codes had a moment during COVID and then became a permanent fixture of business life. Most small businesses use them — but most use them badly. The codes are either static (no analytics, can't be updated), linked to the wrong destination, placed somewhere nobody will scan them, or all three.

This guide covers where to put QR codes, what to link them to, how to measure whether they're working, and the operational details that separate codes that drive engagement from codes that just sit there.

Where QR Codes Actually Work

Not every surface is a good placement. The scan has to be convenient — the person needs to be stationary, phone accessible, and willing to interact. If any of those conditions aren't met, the placement won't convert.

Good placements:

Bad placements:

The test: can a person comfortably stop, take out their phone, scan, and wait for the page to load? If the physical context doesn't allow for that, the placement won't convert regardless of what you link it to.

What to Link QR Codes To

A QR code is only as useful as what it leads to. The destination has to be worth scanning — mobile-optimized, fast-loading, and directly relevant to what the person just saw.

High-value destinations:

Low-value destinations:

The mobile test is non-negotiable. Scan your QR code on your own phone and experience what the customer experiences. If the page is slow, hard to navigate, or requires scrolling through irrelevant content to find what you're offering, fix the destination before printing.

Dynamic Codes Are Non-Negotiable for Business

If you're using QR codes for anything that will be printed, use dynamic codes. Always. Here's why it matters in practice:

Your URLs will change. You'll redesign your website. You'll switch booking systems. You'll move to a new e-commerce platform. Your menu URL will change when your menu service updates their URL structure. Every URL change breaks a static code permanently.

You need to know what's working. Without analytics, you're printing blind. A dynamic code tells you how many scans each placement gets, when they happen, where your visitors are coming from, and what devices they use. That data is the only way to know whether your physical marketing is working.

Print runs last. You print 500 business cards. You install signs. You put codes on product packaging. These materials last months or years. A lot can change in that time. Dynamic codes let you update the destination without touching the physical materials.

The cost is $20/year per code at TwoDollarQR. That's less than the cost of reprinting 50 business cards. The math is simple.

A Practical Setup for Common Business Types

Restaurant

CodeDestinationPlacement
Code 1Digital menuTable tents (all tables)
Code 2Online orderingTakeout bags, register counter
Code 3Google review requestReceipt, exit signage

Cost: $60/year for 3 dynamic codes with full analytics.

Compare that to reprinting 200 table tents because your menu URL changed: $200–400+ in print costs. The dynamic codes pay for themselves in a single URL-change event.

Retail Store

CodeDestinationPlacement
Code 1Loyalty program signupRegister counter, receipt
Code 2Product detail / how-to videoShelf tag on featured product
Code 3Google reviewStorefront window / receipt

Cost: $60/year. Analytics tell you which placement drives the most engagement.

Service Business (plumber, HVAC, consultant, etc.)

CodeDestinationPlacement
Code 1Booking / contact pageBusiness card
Code 2Portfolio / testimonialsLeave-behind one-pager
Code 3Service menu with pricingVehicle wrap / yard sign

Cost: $60/year. The business card code alone can drive meaningful appointment volume if the booking page is well-designed.

Event Organizer

CodeDestinationPlacement
Code 1Event schedule / speaker biosEvent program
Code 2Post-event surveyExit signage, receipt
Code 3Next event registrationFollow-up email, thank you materials

Cost: $60/year. The post-event survey code is often the highest-ROI QR application for events — it catches attendees before they've left and while engagement is highest.

Reading Your Analytics

Once you have dynamic codes running, actually look at the data.

Weekly habit: Check scan counts. Is the trend up, flat, or down? Flat doesn't mean the code isn't working — it may mean consistent usage. Declining is worth investigating.

After a print drop: Did that mailer drive scans? Compare the two weeks before distribution to the two weeks after. That delta is your response rate.

Location check: If you have a physical location and scans are coming from an unexpected city, your code got shared somewhere online. That can be good news — it means your material or content spread beyond your immediate geography.

Device check: Mostly mobile? Good — that's expected for QR. If you see substantial desktop traffic on a code that's only on physical materials, people are typing your URL manually rather than scanning. The QR code placement may not be working as intended.

Zero scan events: A code that consistently gets daily scans and suddenly drops to zero means something broke. Either the physical material was removed, the destination URL changed, or there's a technical issue. Catch this in your analytics before customers encounter the dead code.

Design Best Practices

Minimum size: 1 inch square for close-range scanning (table tents, business cards). For anything scanned from a distance — window signs, signage — increase proportionally. A good rule: the code should subtend at least 10% of the field of view at the expected scanning distance.

Color and contrast: Black code on white background is the reference standard. Colored codes can work if the contrast ratio is sufficient. Avoid inverting (white code on dark background) — it's unreliable with some scanners. Never use a light color on another light color.

Error correction: Most QR tools default to a medium error correction level (M or Q). This allows the code to scan successfully even if 15–25% of the pattern is obscured. If you're embedding a logo in the center of the QR code, use the highest error correction level available.

Test on multiple devices: Android and iOS QR scanning algorithms differ slightly. A code that scans perfectly on your iPhone may fail on a lower-end Android, especially if it's dense or has design customizations. Test on both before printing.

Download the right file format: For print, download PNG at 1000px or higher resolution, or SVG (infinitely scalable). A 200px PNG printed at 3 inches will pixelate and may fail to scan reliably.

Leave breathing room: Don't run text or other design elements right up to the edge of the QR code. The "quiet zone" — the white border around the code — is part of the spec. Violating it can cause scanning failures.

Integrating QR Codes with Your Other Marketing

QR codes don't have to operate in isolation. They work best as part of a connected flow:

Append UTM parameters to destination URLs. If your destination is yoursite.com/menu, use yoursite.com/menu?utm_source=qr&utm_medium=print&utm_campaign=table-card. This tags QR-sourced traffic in Google Analytics or any other analytics tool, letting you see what happens after the scan — bounce rate, pages viewed, orders placed.

Rotate destinations for A/B testing. Dynamic codes let you change the destination URL. Run a promo, change the destination to the promo page. When the promo ends, change back. You can use scan volume before and after as a rough measure of engagement.

Cross-reference with revenue. If you run a promotion with a dedicated landing page and measure orders from that page, QR scan data is your top-of-funnel metric. Sales from that page / QR scans = QR-to-purchase conversion rate. Measure this across campaigns and you'll know which physical placements drive actual revenue.

Common Mistakes

Making the QR code too small. The most common design mistake. When in doubt, make it bigger.

Low contrast. Dark code on busy background. Always check scanability before printing.

Linking to non-mobile pages. Test your destination on an actual phone. This catches more broken flows than any other step.

Using the same code for everything. Segment codes by placement so you can compare performance.

Not testing before printing. Scan the code before you send 500 flyers to print. Confirm the redirect works and the destination loads correctly on mobile.

Ignoring the analytics. You're paying for dynamic codes. The tracking is part of the value. Check it.

Not updating the destination URL when things change. The whole point of dynamic codes is that you can update them. If your menu URL changes and you don't update the code, it breaks. This only takes two minutes to fix when you know to do it.

Getting Started

The fastest path from nothing to working QR codes:

  1. Pick your first use case — menu? business card? window sign?
  2. Create a dynamic QR code at TwoDollarQR — takes two minutes
  3. Set the destination URL (use UTM parameters if you have website analytics)
  4. Download the PNG at 1000px or higher, or download SVG
  5. Drop it into your design at the appropriate size
  6. Print and deploy
  7. Check analytics after two weeks

Start with one code. See the scan data come in. That data will tell you whether the placement is working and make the case for expanding to additional codes.

The entire system costs $20/year to run. It pays for itself the first time you update a URL without reprinting.


Ready to get started? Create your first QR code for $20.

QR code tracking for $20/year

Dynamic QR codes with scan analytics. No subscriptions that drain your wallet.

Create your first QR code →