A Brief History of QR Codes
The QR code was invented in 1994 by Masahiro Hara, an engineer at Denso Wave, a Toyota subsidiary in Japan. The original purpose was purely industrial: tracking automotive parts through the manufacturing process. Standard barcodes could only hold about 20 characters of data; the new two-dimensional "Quick Response" code could hold over 7,000 characters and could be scanned from any angle, even when partially damaged.
For nearly two decades, QR codes remained a niche technology โ used in factories and occasionally in Japanese marketing campaigns, but rarely seen elsewhere. Then smartphones arrived. By 2010, every phone had a camera, and QR code scanning apps became common. The technology finally had a consumer use case.
The COVID-19 pandemic in 2020 accelerated adoption dramatically. Restaurants worldwide replaced printed menus with QR codes to reduce contact. Contactless became the default, and QR codes became permanently embedded in everyday life. Today, billions of QR codes are scanned every month worldwide.
How QR Codes Store Data
A QR code is a matrix of black and white squares arranged on a grid. The data is encoded in the pattern of these squares. Unlike a standard one-dimensional barcode (which only encodes data horizontally), a QR code encodes data in both directions โ horizontally and vertically โ which is why it can hold so much more information.
The code consists of several distinct areas:
- Finder patterns โ The three large square patterns in three corners of the code. These allow a scanner to locate and orient the code regardless of the angle it's scanned from.
- Alignment patterns โ Smaller square patterns that help correct for distortion, especially in larger or curved codes.
- Timing patterns โ Alternating black and white modules that help the scanner determine the grid size.
- Data modules โ The rest of the squares encode the actual data using a binary encoding scheme.
- Error correction โ QR codes include redundant data using Reed-Solomon error correction, which means a code can still be read even if up to 30% of it is damaged, dirty, or obscured. This is why you can put a logo in the centre of a QR code and it still works.
What Can a QR Code Contain?
The most common use is encoding a URL โ scan the code and your phone opens a website. But QR codes can hold many other types of data:
- URLs โ Any web address, including links with tracking parameters
- WiFi credentials โ Network name, password, and security type, so scanning connects you automatically
- Contact cards (vCard) โ Name, phone number, email, and address, so scanning adds to your contacts
- Plain text โ Any text message up to several hundred characters
- Phone numbers โ Scanning opens the dialler with the number pre-filled
- Email addresses โ Scanning opens the mail app with the recipient pre-filled
- App store links โ Direct links to download an app on iOS or Android
- Payment information โ Used in many countries for direct bank transfers and mobile payments
Static vs Dynamic QR Codes
A static QR code has the destination permanently encoded in the pattern itself. Change the URL and you need a new code. Static codes are generated once and never change. They are free to create and have no ongoing costs.
A dynamic QR code encodes a short redirect URL managed by a service. The actual destination can be changed at any time without reprinting the code. Dynamic codes typically require a paid subscription to the redirect service. They also provide scan analytics (how many scans, from which devices, in which locations).
For most personal and small business uses, static QR codes are sufficient and completely free. Our QR Code Generator creates high-quality static QR codes with no account or payment required.
How to Make Your QR Codes Scan Reliably
- High contrast โ Keep the foreground dark and background light. Avoid low-contrast colour combinations like light grey on white.
- Minimum size โ Print at a minimum of 2cm ร 2cm (roughly 0.8 inches square) for reliable phone scanning. Larger is better.
- Quiet zone โ Leave a blank white border around the code (at least four modules wide). Scanning fails without this margin.
- Test before printing โ Always scan the code yourself before distributing it, especially before printing large quantities.
- Avoid decorative distortion โ Artistic QR codes with heavy graphic overlays can fail. If you use a logo overlay, test extensively across multiple devices.