The distance-to-size rule
A reliable rule of thumb: a QR code should be roughly one-tenth the distance it's meant to be scanned from. A poster on a table or a flyer someone's expected to walk up to and scan from about a meter (3 feet) away needs a code at least 8-10cm (3-4 inches) square. A poster meant to catch someone's eye and get scanned from across a room — say 4-5 meters (15-20 feet) away — needs a code proportionally much bigger, often 40-50cm (16-20 inches) square, which surprises most people the first time they see the math.
If you only have room for a smaller code, the honest fix isn't to shrink the code and hope — it's to plan for people to walk closer before they scan, and design the poster so that's an easy, obvious thing to do.
Placement: eye height, staples, and glare
Put the code at roughly eye height where possible — around 1.4-1.7m (4.5-5.5 feet) off the ground — rather than low on the poster where people have to crouch or lean in. Keep it away from the corners and edges most likely to catch a staple, thumbtack, or piece of tape, and away from any fold line if the flyer's been folded for handouts or mailing; a crease running through the code can be enough to break a scan.
Lamination is worth a second thought too — glossy laminate under venue lighting or streetlights can throw glare directly across the code and hide it from a phone camera at an angle, so matte lamination (or none at all) is the safer choice. And give the code its own clear quiet zone: posters tend to get crowded with lineup text, sponsor logos, and dates, and a QR code needs a clean, untouched margin around it to scan reliably — don't let other design elements creep into that space.
What to link to
Link straight to the registration page or ticket link — not a homepage someone then has to navigate from. Someone scanning a poster mid-walk has already decided they're interested; don't make them find the thing they wanted through a second click. A short line of text under the code ("Scan for tickets" or "Scan to register") also removes any doubt about what scanning it will do.
Since the code is static, the link is fixed once it's printed, which is exactly right for a single event with a single registration page. If you're reusing poster artwork for a recurring event series with a different link each time, just generate a fresh code for each printing — it takes a few seconds and avoids sending people to last month's event page.