A QR code can use one of four error correction levels. Higher error correction forces denser codes, but allows scanning in more situations. A trade-off!
TL;DR: Pick L or M error correction depending on expected conditions. It is recommended to increase the error correction level unless it results in the QR code resolution (aka version) increasing. Many generators have this option. If you own the destination domain, use a short URL that is descriptive and contains/redirects to the page/resource in question, such as http://zooberlin.de/map?qr → https://www.zooberlin.de/wp-content/uploads/2020/06/karte_mobile.pdf?utm_campaign=poster (fictional example).
TL;DR: Pick L or M error correction depending on expected conditions. It is recommended to increase the error correction level unless it results in the QR code resolution (aka version) increasing. Many generators have this option. If you own the destination domain, use a short URL that is descriptive and contains/redirects to the page/resource in question, such as http://zooberlin.de/map?qr → https://www.zooberlin.de/wp-content/uploads/2020/06/karte_mobile.pdf?utm_campaign=poster (fictional example).