The short answer: encode a plain maps URL, not a deep link
A QR code for directions is just a QR code that encodes a map URL. The camera reads the link, the phone opens it, and the map app draws a route. The only real decision is which link you put inside, and that choice decides whether the scan works for everyone or only for the phone you happened to test with.
The reliable default is a plain Google Maps web link in this shape:
https://www.google.com/maps/search/?api=1&query=Your+Business+Name,+City
That format works because it's a normal HTTPS web URL, not a proprietary app scheme. Scan it on an Android and it opens the Google Maps app. Scan it on an iPhone and it opens Google Maps if installed, or the Google Maps web map in Safari if not. Either way the person sees your location and a Directions button. Paste that URL into the free location QR generator, brand it, and download. That covers most people reading this.
The rest of this guide is for the details that decide whether the code still works at 15 feet on a yard sign: what to encode, which format each map app needs, the cross-platform trap most directions guides skip, and how to test before you print.
Address vs GPS coordinates vs Plus Codes: what to encode
Before you pick a map app, decide what the map should point at. There are three ways to name a place, and they route differently.
A street address is usually the right answer. Type the full address the way you'd write it on an envelope: 1600 Amphitheatre Parkway, Mountain View, CA. Map apps geocode a real address to the building's registered entrance, so the route ends where a person can actually walk in. Use it for a storefront, office, restaurant, or venue. If your goal is specifically an address code with a 'find us' framing, we cover that end to end in the address QR code guide.
GPS coordinates are for places an address can't describe. Decimal-degree coordinates like 37.7749, -122.4194 (latitude first, longitude second) drop a pin at an exact point. That precision cuts both ways. It's perfect for a trailhead, a boat ramp, or a field with no address. It's a bad default for a business, because the coordinate might sit on the roof or the alley behind you, and the map routes to the pin, not the door. Use coordinates only when there's no address, or when the pin is genuinely more accurate than the geocode.
Plus Codes cover the rest. A Plus Code is Google's free, open location format, a short string like 849VCWC8+R9 that names a roughly 3-by-3-meter square anywhere on the planet. You get one by dropping a pin in Google Maps and reading the code from the place card. Plus Codes are the honest fix for warehouse docks, market stalls, event booths, and rural properties that have GPS but no mailing address. Drop one into a Google Maps query the same way you would an address.
| What you encode | Example | Routes to | Use it for |
|---|---|---|---|
| Street address | 742 Evergreen Terrace, Springfield | The building's registered entrance | Storefronts, offices, restaurants, venues |
| Business name + city | Blue Bottle Coffee, Oakland | The verified Business Profile pin | Any business with a Google listing |
| GPS coordinates | 37.7749, -122.4194 | The exact lat/long point | Trailheads, docks, fields, no-address spots |
| Plus Code | 849VCWC8+R9 | A 3m square, address or not | Warehouses, booths, rural or informal sites |
Tips
- Latitude comes first, longitude second, and longitude is negative in the Americas. Reverse them and your pin lands on the wrong continent.
- If your business has a verified Google Business Profile, encode the business name and city rather than the street address. Google routes to the pin you've confirmed, which is often more accurate than the raw address geocode.
Google Maps vs Apple Maps vs Waze: the link format each app needs
Each map app has its own URL shape, and they are not interchangeable. Here's the exact format for each, plus the one that matters most: does the link open correctly when it's scanned on the other platform.
Google Maps. Search: https://www.google.com/maps/search/?api=1&query=ADDRESS. Turn-by-turn directions: https://www.google.com/maps/dir/?api=1&destination=ADDRESS. Replace spaces with + or %20. This is the cross-platform champion because it degrades to a real web map on any phone.
Apple Maps. https://maps.apple.com/?q=ADDRESS, or with coordinates https://maps.apple.com/?ll=37.7749,-122.4194. Add &dirflg=d to launch driving directions. On an iPhone this opens the native Apple Maps app instantly. On Android and Windows, maps.apple.com opens a basic web version of Apple Maps, not an app, and the experience is noticeably worse.
Waze. https://waze.com/ul?ll=37.7749,-122.4194&navigate=yes for coordinates, or https://waze.com/ul?q=ADDRESS. The waze.com/ul universal link opens the Waze app if it's installed and falls back to Waze's web map if not. Avoid the raw waze:// app scheme in a printed QR; it does nothing at all when Waze isn't installed, which is most phones out of the box.
The table below is the part to screenshot.
| App | Link format to encode | Opens correctly cross-platform? | Best for |
|---|---|---|---|
| Google Maps | google.com/maps/search/?api=1&query=... | Yes — app on Android, app or web on iPhone | The safe default for a mixed audience |
| Apple Maps | maps.apple.com/?q=... | iPhone only; Android gets a weak web map | Codes seen mostly by iPhone users |
| Waze | waze.com/ul?q=... or ?ll=lat,lng | Only if Waze is installed; else web fallback | Driver-heavy audiences who run Waze |
Tips
- Whichever app you standardize on, always use the `https://` web link, never an app-scheme link like `comgooglemaps://` or `waze://`. App schemes fail silently when the app isn't installed.
- Add `&dirflg=d` (Apple) or `&navigate=yes` (Waze) or use the `/dir/` path (Google) when you want the scan to start navigation immediately instead of just showing the pin.
The cross-platform problem most directions guides ignore
Here's the part almost every 'QR code for Waze' or 'QR code for Apple Maps' tutorial leaves out, and it's the one that gets signs reprinted. The most reliable directions QR is a plain Google Maps web link, not a Waze or Apple Maps one. Choose Apple Maps or Waze and you've quietly cut off a large share of the people who scan your code, and you won't find out until someone tells you the code is 'broken.'
Walk through what actually happens. You make an Apple Maps QR because you're on an iPhone and it opened perfectly when you tested it. Then an Android user scans the same code at your booth. Instead of the Google Maps app they use every day, they land on maps.apple.com in Chrome, a bare web map with no saved places, no account, and no smooth handoff to navigation. Roughly 40% of U.S. phones run Android, and worldwide it's over 70%. That's the share of your audience getting the degraded experience from an Apple Maps code.
Waze fails differently. Its waze.com/ul link falls back to a web map when the app isn't installed, but Waze is a third-party app most people don't have. Encode it on a storefront window and everyone without the app gets a 'get the app' detour instead of directions. Waze is the right call only for audiences you know drive and run it, like delivery drivers or rideshare pickups.
There are two honest fixes.
Fix one: use a plain Google Maps web URL. It's the only single link that opens a real, usable map on both iPhone and Android. When in doubt, this is the answer, and it's what the free location QR generator builds by default.
Fix two: use a dynamic redirect that detects the phone. A dynamic QR routes each scan through a server you control, so it can read the operating system and send iPhone scanners to Apple Maps and Android scanners to Google Maps from one printed code. It's the only clean way to give everyone their native app without printing two codes. It costs a subscription because it needs a live redirect, but for a permanent sign seen by thousands of mixed devices, it's the difference between 'directions' and 'directions for some of you.'
How to get the shareable map link from each app
You don't have to hand-write these URLs. Every map app hands you a shareable link, though the plain-web format above is more predictable than a copied share link, which sometimes comes back as a shortened URL that's harder to inspect.
Google Maps (phone or desktop). Search for the place, open its card, then tap Share and Copy link. On desktop you can also grab the URL from the address bar once the map centers on the place. If you'd rather not fish for a link, type the business name and city straight into the Google Maps QR generator and it builds the correct query for you.
Apple Maps (iPhone or Mac). Open the place card, tap Share, and choose Copy Link. That copies a maps.apple.com URL. Paste it into the Apple Maps QR generator, and remember the cross-platform caveat above before you print an Apple Maps code for a general audience.
Waze. In the Waze app, tap a place or a saved location, open Share, and copy the waze.com/ul link, or build it by hand from coordinates. The Waze QR generator accepts either. Waze has no desktop client for copying links, so you'll do this on your phone.
One option beats all three for a business: don't tie the code to any single app. A location QR built from your address lets each phone open the map it prefers, the right outcome for a storefront or a flyer aimed at strangers.
Tips
- Copied share links sometimes come back as short URLs (like `goo.gl` or `maps.app.goo.gl`). They work, but you can't read the destination by eye, which makes testing and troubleshooting harder. The full `?api=1&query=` format is worth the extra few characters.
- Always paste the finished link into your phone's browser once before you turn it into a QR. If the raw link opens the right place, the QR will too. If it doesn't, no QR generator can fix it.
Static vs dynamic: signs, delivery, events, and storefronts
A static directions QR encodes the map link directly, works forever, costs nothing, and can't be changed after printing. A dynamic one encodes a short redirect you can edit and that logs every scan. The right pick depends entirely on whether the destination will ever move, and the full static vs dynamic breakdown covers the general trade-off. For directions, here's how it lands.
Use a free static code when the location is fixed. A restaurant's front door, a permanent office, a store window, a museum entrance. The address isn't changing, so bake it into the code and forget it. A static location QR never expires and doesn't depend on anyone's server, so the 'do QR codes expire' worry never applies. Print it on the glass and it still scans in a decade.
Use a dynamic code when the destination moves or you need scan data. Four common cases:
- Real estate signs. One printed rider, many listings. Point it at the current property and repoint it to the next one when the house sells, no reprint. The real estate QR playbook walks the whole sign-to-showing flow, and it's the textbook argument for dynamic.
- Delivery and logistics. A code on a shipping label or a receiving dock that opens the exact gate for the driver. Dynamic lets you route each region's code to the nearest facility and track which docks get scanned most.
- Events and pop-ups. A festival, a trade show booth, a wedding venue that changes yearly. The same printed program can point at this year's location because you control the redirect.
- Storefronts running campaigns. A window code where you want scan counts by day, or want it to open a promo page during a sale and a plain map the rest of the year.
The dividing line is simple. If the address is permanent and you don't need analytics, stay free and static. If it moves, or you're printing at volume and can't reprint, or you want scan counts, pay for dynamic. Don't buy a subscription for a code that points at a door that isn't going anywhere.
Sizing a directions QR: yard sign vs business card
A directions QR fails more often from bad sizing than from a bad link. The rule is the 10:1 ratio: a code scans reliably from up to about 10 times its width away. A 1-inch code reads from roughly 10 inches; a 4-inch code from about 40 inches. Size for the real scan distance, not your desk.
Directions QRs live at wildly different distances. A business card is scanned from a hand's length; a real estate yard sign gets scanned from a car window 10 to 15 feet away, which is why sign codes need to be far bigger than people expect. Size for the farthest realistic scan, then add margin, because wind, glare, and a moving car all cost you.
| Placement | Typical scan distance | Minimum printed QR size | Notes |
|---|---|---|---|
| Business card / flyer | 6–12 inches | 0.8–1 inch | Small is fine; it's read up close |
| Menu / table tent / packaging | 1–2 feet | 1–1.5 inches | Keep clear space around the code |
| Storefront window / door | 3–6 feet | 2–3 inches | Account for glass glare; matte helps |
| Real estate yard sign | 10–15 feet | 3–4 inches | The most under-sized code there is |
| Trade show booth / banner | 10–20 feet | 4–8 inches | Size for the back of the aisle, not the front |
Tips
- Keep a quiet zone (blank margin) of at least four modules around the code. A directions QR crammed edge-to-edge against a sign border gets read as damaged and fails.
- Add a short line of human-readable text under the code, like 'Scan for directions.' It sets expectations and reassures people the code isn't a random sticker.
- For big-format print, export SVG or PDF from the generator instead of PNG. Vector output stays crisp at 4 feet wide; a low-res PNG blurs into an unscannable smear.
Test on a real iPhone and a real Android before you print
The one habit that separates a directions QR that works from one that gets reprinted: scan the actual proof with two phones before you order the run. A 60-second test beats a 500-piece reprint. This matters more for maps than for a plain URL QR, because the failure is platform-specific and shows up only on the device you didn't check.
Run this checklist on the printed proof, or at minimum on the on-screen preview:
1. Scan with an iPhone. Point the stock Camera at the code. Does it open the right map, with the pin on your actual entrance, and a visible Directions button? For an Apple Maps or Google Maps code this should be instant.
2. Scan with an Android. Use the Google Camera or Google Lens. Confirm it opens a real map, not a bare web page or an 'install this app' screen. This is where a Waze or Apple Maps code exposes its weakness.
3. Check the pin, not just that something opened. Zoom in. A code that opens Google Maps but drops the pin in the parking lot behind you is still broken. If the pin is off, switch from coordinates to a full address, or from the address to your verified business name.
4. Test at the real distance and in real light. Tape the proof where it'll live and scan from where people actually stand: the sidewalk, the car, the back of the booth. Glare on a glossy sign or a sun-bleached window kills scans, so tilt or reprint matte if the proof struggles.
If it passes on both phones, from the real distance, with the pin on your door, you're safe to print. If it only works on one platform, switch to a plain Google Maps link or a dynamic redirect before you pay for the full run. And if the same surface needs to save your contact details too, pair the directions link with a vCard QR so one card carries your location and your number.