← All posts

How-to · 6 min read

How to Create a QR Code That Actually Works After You Print It

July 18, 2026

The mechanics of creating a QR code are trivial. The reason so many printed codes fail — blurry, unscannable, or pointing to a broken page — is that the person creating them skipped the five decisions that make a code hold up in the real world.

Decision 1: Static or dynamic

If the destination might ever change, or you want to know who scanned it, create a dynamic code. Otherwise static is fine. Full comparison in /blog/dynamic-vs-static-qr-codes.

Decision 2: The content type

A URL isn't the only option. WiFi codes, vCards, SMS pre-fills, calendar events, and geo pins all have dedicated payload formats that phones handle natively — no landing page required. Browse the full list at /qr-types.

Decision 3: Size and file format

Download SVG for anything going to print — it stays sharp at any size. PNG is fine for on-screen use. Minimum recommended printed size is 2 × 2 cm; on packaging, err toward 3 × 3 cm with a small white margin (quiet zone) around it so cameras can lock on.

Decision 4: Colors and logo

Dark foreground on a light background scans best. If you invert (light on dark) or use color, keep the contrast ratio above 3:1. A center logo is safe up to about 25% of the code area — beyond that, error correction can't compensate.

Decision 5: The destination

Every scan is wasted if the landing page is slow, not mobile-optimized, or asks for personal info before the value is clear. Load the destination on your phone before you print — over cellular, not WiFi — and make sure it renders in under three seconds.

The step-by-step

  1. Go to /qr-code-generator and sign in (free tier is fine to start).
  2. Choose your content type. URL is the most common; WiFi and vCard are the biggest time-savers for the scanner.
  3. Fill in the content. For URLs, include https://. For UTMs to attribute scans in GA, add them here.
  4. Pick dynamic if you want editable destinations and per-scan analytics.
  5. Style: brand colors, module shape, center logo. Preview updates live.
  6. Download SVG (print) or PNG (web). Test-scan with two different phones before shipping.

Testing that catches problems early

Print the code at the smallest size it'll appear at, put it under the actual lighting it'll live in, and scan it from the furthest distance you expect. Every 'why doesn't this scan?' complaint started with a code that only got tested in office lighting.

Next

If tracking matters to you, read /blog/how-to-track-qr-code-scans — it covers exactly what you can and can't measure. Or jump straight to /qr-code-generator and create one now.

Try QR Lift free

Three dynamic codes, no watermark, no expiring links. Set up in under two minutes.

Create your first code