Scope the work before selecting technology
A QR code is a two-dimensional barcode that stores data in a grid of black and white modules rather than the single row of bars used in traditional linear codes. The "quick response" name refers to its original design goal: faster scanning than a standard barcode, achieved by reading data in both directions at once.

Three large squares in three of the four corners act as position detection patterns. A scanner uses these to identify the code's orientation, size, and skew almost instantly. Smaller timing patterns between them help the decoder determine the size of each module. Around the edges, quiet zones — blank white space — separate the code from surrounding graphics or text. Without adequate quiet zones, scanners frequently fail to detect the code at all.
The remaining modules carry the actual payload: a URL, plain text, a vCard, or another data type. This payload is encoded using a defined character set and then masked with one of several patterns to ensure an even distribution of light and dark modules, which helps scanners read the code reliably under varied lighting.
Error correction is the feature that most affects practical deployment. QR codes use Reed-Solomon error correction at one of four levels: L (around 7% recovery), M (15%), Q (25%), and H (30%). A higher level means the code remains scannable even when part of it is obscured, damaged, or overlaid with a logo. The trade-off is that higher error correction reduces the amount of usable data space, which matters more at smaller print sizes or with longer URLs.
Static vs Dynamic QR Codes
The distinction between static and dynamic QR codes is not a visual one — both look the same to a scanner. The difference lies in what the encoded data actually does.
A static QR code contains the complete destination URL or data string directly within the pattern itself. The code is self-contained: point a camera at it and the browser navigates straight to that address. Change the target URL and you must generate and print a new code. There is no server in the middle and no ongoing cost, but there is also no way to update the destination after printing.
A dynamic QR code contains a short redirect URL — typically belonging to a QR management platform. When scanned, the user's device first hits that redirect server, which then forwards the request to the actual destination URL stored in the platform's database. Because the destination lives on the server, you can change where the code points without reprinting anything. You can also collect scan analytics, apply geographic routing, or schedule time-limited campaigns.
For a museum exhibit label that will never change, a static code printed directly onto the panel may be the simplest and most resilient option. For a retail promotion that needs to switch destinations weekly, or an event programme where session links change after print, dynamic codes remove the need for reprints and the risk of pointing visitors to outdated pages.
Dynamic QR Codes Explained
The redirect chain in a dynamic QR code typically completes in well under a second on a reasonable mobile connection, but it introduces a dependency that does not exist with static codes. If the redirect service experiences an outage, every printed code in the deployment stops working simultaneously, regardless of whether the destination website itself is online.
This makes service-level agreements and uptime monitoring practical concerns for any large-scale deployment. A venue with hundreds of dynamic codes on permanent signage needs confidence that the redirect infrastructure will remain available for the lifespan of those signs — which could be years in a museum or heritage setting.
Dynamic codes also raise questions about long-term cost. Most platforms charge a subscription, and the economics shift depending on how many codes are in circulation and how long they need to remain active. A temporary event running codes for a weekend has very different cost considerations from a permanent installation where codes must redirect reliably for five years or more.
Another operational detail often overlooked: what happens if the QR management company ceases trading or discontinues the product. With a static code, the destination is independent of any third-party service. With a dynamic code, the short URL is tied to that provider's domain. If the provider disappears, the codes become dead ends unless you have a migration path or control the domain yourself.
When evaluating dynamic QR services, practical questions to put to a provider include whether you can use your own domain for the redirect, what happens to your codes if you stop paying, whether export functionality exists to migrate redirects elsewhere, and what historical scan data you can retrieve.
QR Code Scanning on Mobile Devices
Since iOS 11 and Android 9, the native cameras on most smartphones have been able to detect and decode QR codes without a third-party app. The user points the camera at the code, a notification appears, and tapping it opens the URL in the browser. This behaviour has made QR codes far more accessible than they were in the early smartphone era, when a dedicated scanning app was required.
However, "no app required" does not mean the experience is uniform. Different operating systems and device manufacturers handle QR detection slightly differently. Some devices are quicker to recognise codes than others. Some open the URL in an in-app browser rather than the user's default browser, which can affect session state, saved logins, and cookie behaviour. For proximity deployments that rely on recognised sessions — for example, linking a scan to a user's existing account — this inconsistency matters.
Non-URL data types behave differently again. A QR code encoding a vCard may trigger a contact-saving prompt. A WiFi QR code (a standard format defined for Android and later adopted more broadly) can prompt the device to join a network. Plain text codes may display the content on screen without any further action. If your deployment depends on a specific behaviour — opening a web page, not just displaying text — the encoded data format must match that intent precisely.
Camera quality and processing speed also vary across the device installed base. Older or budget devices may take longer to focus and decode, particularly in lower light or when the code is at a distance. For venues expecting a broad public audience, testing across a range of common devices rather than only recent flagship phones is a sensible part of any pilot.
QR Code Limitations and Failure Modes
QR codes are remarkably tolerant of partial damage thanks to error correction, but they are not indestructible. Physical failure modes include scratching, fading from UV exposure, water damage on paper-based media, and peeling or delamination on applied stickers. In outdoor or high-traffic environments, printed codes can degrade within weeks if the material is not suited to the conditions.
Glare is a consistent problem on glossy surfaces. A QR code printed on a laminated poster or a glass panel may be perfectly legible to the human eye but unreadable to a camera when overhead lighting or window reflections create bright spots across the modules. Matte finishes or angled placement to avoid direct light reflection are straightforward mitigations that are still frequently missed.
Size and scanning distance follow a practical relationship: the code must be large enough for the device's camera to resolve the individual modules at the expected scanning distance. A common rule of thumb suggests the printed code should be at least one-tenth of the scanning distance, but this varies with module density, print resolution, and the camera in use. A code that works when held at 15 centimetres may fail consistently at arm's length if it is too small or printed at low resolution.
Placement errors cause more failures than most operators expect. Codes positioned too high, too low, or at an awkward angle force visitors into uncomfortable postures or require two-handed phone operation. Codes placed where queues form may be physically blocked by other people. Codes near bright windows or directly under downlights suffer from contrast and glare issues. A walk-through of the visitor's actual physical path, phone in hand, usually reveals problems that a floor-plan review misses.
For dynamic codes specifically, the redirect server is an additional point of failure. Network congestion in a busy venue can slow the redirect enough that visitors assume the code is broken and walk away. Testing under realistic load conditions — not just a quiet Monday morning — is worth building into any pilot plan.
Accessibility is a limitation that deserves explicit attention. QR codes are inherently visual and require a camera-equipped smartphone with sufficient motor control to aim and hold steady. Visitors with visual impairments, motor difficulties, or without smartphones are excluded from any information or service delivered solely through a QR code. In museums, heritage sites, and public venues subject to accessibility obligations, QR-only information delivery should be treated as a supplement to, not a replacement for, other formats.



