QR Code Design Tips
Design QR codes that are scannable, on-brand, and effective in both digital and print contexts.
How QR Codes Work
A QR (Quick Response) code is a two-dimensional barcode that encodes data — typically a URL — in a grid of black and white squares called modules. When a smartphone camera or QR reader app detects the pattern, it decodes the data and opens the embedded URL in a browser.
QR codes include built-in error correction, which means a portion of the pattern can be obscured or damaged and the code will still scan. There are four error correction levels: Low (7%), Medium (15%), Quartile (25%), and High (30%). Higher error correction allows more of the code to be covered — which is what makes it possible to place a logo in the center — but it also increases the density of the pattern and makes the code slightly harder to scan at small sizes.
MASK generates QR codes with Medium error correction by default. If you add a center logo, the error correction is automatically raised to High to compensate for the covered area.
Creating QR Codes in MASK
Navigate to the QR Codes section in your dashboard sidebar and click "Create QR Code." You can generate a QR code for any existing MASK short link, or enter a new destination URL and MASK will create a short link and QR code together.
The creation form lets you set several options upfront: a label for internal reference, the destination URL, foreground and background colors, an optional center logo, and the download format (PNG, SVG, or PDF). All of these can be changed later without invalidating the QR code, because the underlying short link stays the same.
Once created, you can download the QR code image immediately or copy a direct link to the hosted image for embedding in emails or web pages.
Custom Colors and Logos
MASK lets you customize the appearance of your QR codes while preserving scannability. Here are the key options and the rules to follow:
Foreground color: This is the color of the modules (the squares). You can change it from the default black to any dark color. The critical rule is that the foreground must be significantly darker than the background. A contrast ratio of at least 4:1 is recommended. Avoid light foreground colors like yellow or light gray — most phone cameras will fail to detect them.
Background color: This defaults to white. You can change it to any light color, but again, it must contrast clearly with the foreground. Transparent backgrounds are supported for SVG and PNG exports, but test carefully — if the QR code is placed on a dark surface, it may become unreadable.
Center logo: Upload a square image (your brand logo works well) and MASK will place it in the center of the QR code. The logo should not exceed 20% of the total QR code area. MASK enforces this limit automatically, but if you notice scanning issues, try a smaller logo or one with simpler shapes.
Always test your customized QR code with at least three different phone models before printing. Camera quality, lighting conditions, and scanning software vary enough that what works on one device may not work on another.
Sizing Guidelines
Size is the most common reason QR codes fail to scan. A code that looks perfectly sharp on screen may be too small when printed on a business card or too far away on a billboard. Use these minimum size guidelines:
Business cards, stickers: minimum 2 cm (0.8 in) per side
Flyers, brochures, menus: minimum 3 cm (1.2 in) per side
Posters (viewed at arm's length): minimum 5 cm (2 in) per side
Banners, signage (1-2 meters away): minimum 10 cm (4 in) per side
Billboards (5+ meters away): minimum 30 cm (12 in) per side
A general rule of thumb is that the scanning distance is roughly ten times the size of the QR code. A 3 cm code can be scanned from about 30 cm away. If your use case requires scanning from farther away, increase the code size proportionally.
When exporting from MASK, use SVG format for print materials. SVGs scale to any size without losing sharpness. PNG is best for digital use at a fixed resolution.
Print Placement Tips
Where you place a QR code is just as important as how you design it. Follow these guidelines for effective placement:
Flat surfaces only: QR codes do not scan well on curved surfaces like bottles or cylindrical packaging. If you must place a code on a curve, increase the size significantly and test thoroughly.
Leave a quiet zone: The quiet zone is the blank margin around the QR code. It should be at least four modules wide (MASK adds this automatically). Do not let other design elements — text, borders, images — encroach on this margin or the code may not be recognized.
Avoid reflective materials: Glossy finishes can cause glare that interferes with scanning, especially under artificial lighting. Matte or satin finishes are more reliable. If you must use a glossy material, test under the lighting conditions where the code will actually be scanned.
Add a call to action: A QR code on its own does not tell people what it does. Add a short label like "Scan for menu," "Scan to register," or "Scan for 20% off" directly above or below the code.
Do not place on moving objects: QR codes on the sides of vehicles, scrolling digital screens, or other moving surfaces are nearly impossible to scan. Use them only on stationary items.
Dynamic vs. Static QR Codes
A static QR code encodes the full destination URL directly in the pattern. Once printed, the destination cannot be changed. If you need to update the URL, you must generate an entirely new QR code and reprint the materials.
A dynamic QR code encodes a short redirect URL (like a MASK short link) instead of the final destination. The redirect URL never changes, so the printed QR code remains valid even if you update the destination later. This is how all MASK QR codes work by default.
Dynamic QR codes have several advantages beyond editability. Because the encoded URL is short, the QR code pattern is less dense and therefore easier to scan, especially at small sizes. They also enable click tracking — every scan passes through MASK, so you get full analytics on when and where people are scanning.
The only scenario where a static QR code might be preferable is when the destination must work without any network-dependent redirect, such as encoding a Wi-Fi configuration or a plain text string. For URL-based use cases, dynamic codes are almost always the better choice.
Tracking Scans
Because every MASK QR code points to a short link, scans are tracked with the same depth as regular link clicks. In your dashboard, you can see total scans, unique devices, geographic distribution, device types, and the time of each scan. Filter by date range or campaign to isolate the data you need.
If you create QR codes for different placements — say, one for a poster at a conference and another for a flyer in a store — create a separate MASK short link for each placement. Both can point to the same destination, but having separate links lets you compare scan performance between locations.
You can also add UTM parameters to the destination URL behind the QR code. This way, scans flow into Google Analytics with full campaign attribution. See the UTM Parameter Best Practices guide for details on structuring your tags.