A URL that opens a specific screen inside a mobile app rather than a web page, letting a QR code launch app content directly — with a web fallback for users without the app.
A deep link is a URL that resolves inside a mobile application instead of (or in addition to) a web browser. Where an ordinary link opens a homepage, a deep link opens a specific product page, a playlist, a document, or a checkout screen within the app. Encoded in a QR code, deep links bridge the physical-to-app journey: scan a code on a restaurant table and land directly on that restaurant's ordering screen in the app, not on a generic website.
The three mechanisms
Deep linking on modern phones works through three mechanisms. Custom URI schemes (myapp://product/123) are the oldest: simple to implement, but any app can claim a scheme and there is no verification of ownership. Universal Links (iOS) and App Links (Android) use ordinary https URLs with a verification file hosted on the domain (apple-app-site-association / assetlinks.json), so the operating system can cryptographically confirm that the app is authorized for the domain — this is the current best practice. The third pattern is deferred deep linking, where a click first passes through an attribution service that remembers the context and delivers it after the user installs the app.
Why QR codes pair naturally with deep links
QR codes are scanned overwhelmingly on phones, which is exactly where deep links work. The pairing solves the classic app-acquisition problem: a code on packaging or in-store signage can route existing app users straight into the relevant screen while sending everyone else somewhere useful. Without a deep link, the best a code can do is open a mobile web page and hope the user finds the app from there — a journey with heavy drop-off at every step.
The fallback problem
The hard part of QR deep linking is handling users who do not have the app. A raw custom-scheme QR code does nothing at all on a phone without the app — the scan appears broken. Robust implementations therefore encode an https URL (a Universal Link / App Link, or a smart routing URL) rather than a bare scheme: users with the app go straight into it, and users without it land on a mobile web page that offers the App Store / Google Play download, ideally carrying the original context through the install via deferred deep linking. Always test the no-app path, because it is the path most scanners will take.
Deferred deep links and attribution
Marketing teams often want to know which physical placement drove an install. Deferred deep linking services fingerprint the scan context (via the routing URL's parameters) and, after install, deliver the user to the intended in-app screen while attributing the install to the scan. This is powerful for measuring offline-to-app funnels, but it involves third-party SDKs and device fingerprinting, so review the privacy implications and platform policies before deploying it.
Practical checklist
Use verified Universal Links / App Links over custom schemes; always provide a web fallback; carry context parameters (product ID, campaign) through the routing URL; test on both platforms with and without the app installed; and keep the final URL short enough that the QR symbol stays scannable — deep link URLs with long parameter strings benefit from sitting behind a short link.
Diagram description: Decision flowchart for a QR deep-link scan: app installed → open in-app screen; app missing → mobile web fallback with store badges and context preserved for post-install routing.
