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!
Yeah I went through this whole struggle making qr code generators. It's honestly kind of a nightmare and we should just invent something better:
phones have different cameras and processing
you want redundancy in the qr (the data is duplicated) but too much makes the dots too small and quickly toasts reliability
short urls are everything, because then you can store less data and replicate it a bit more
even still, various combos of data & phone will refuse a scan and cause support tickets
people are still quite confused about how you're supposed to scan them, so you have to explain on the card/flyer. Thankfully basically all phone cameras do it by default, but variations in the software don't help, and the ux can differ a bit
people don't love sketchy links in general, and if the scan is taking too long to aim right, they will give up
qrs are ugly and changes in color or adding logos quickly causes problems. Qrs don't support logos, people just put em on and use the error correction (as if it's a defect). Lack of spec means logos must be very small
So yeah how about a thing that works and looks good, next time our civilization reinvents bar codes
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).
Many restaurants have their menu just being a qr code nowadays. It became usual during covid, but manu stull keep it on the tables. The other day I was told explicitly to use it since they didn't have a physical version.
They're still used for instant login on multiplatform services like Steam or Discord. A device that's not logged in will show a QR code next to the login prompt, and scanning it with a logged in device will show a prompt to allow the other device to log in to your account without needing to enter a username or password.
Other than that, I only see them at restaurants to open their menus in a web browser.