A technically perfect QR code that nobody notices is worthless. Most "why isn't anyone scanning our QR code" problems aren't scanning problems — they're a sign nobody looked at twice.

Say what happens before they scan
"Scan for 10% off today" gets scanned far more than a bare QR code with no text. People don't scan codes out of curiosity nearly as often as marketers assume — they scan when the payoff is obvious and worth the two seconds it takes.
Size and placement over decoration
A small QR code buried in a busy poster loses to a larger, plainer one placed where eyes naturally land — near a price tag, at eye level at checkout, beside a product rather than on a wall across the room.
Don't stack too many QR codes together
A flyer with five QR codes ("Facebook! Instagram! LINE! Website! Menu!") makes people scan none of them — too many choices reads as effort, and effort kills impulse action. Pick the one thing you actually want this scan to do.
Test the whole path, not just the code
Test-scanning confirms the code works. Separately, walk through what happens after: does the linked page load fast on mobile data? Is the discount code visible without scrolling? A working QR code pointing to a slow, confusing page still loses the sale.