Seems that the solution is to add more redundancy (and stop covering the center pixels with an icon). The codes are designed to be self-correcting if the damage is slight enough or more redundancy is added.
* https://shkspr.mobi/blog/2025/02/why-are-qr-codes-with-capit...
I hear you, and at the same time we're solving the wrong end of that pipeline, in my opinion. Almost every QR code I have ever seen in my life either points to bit.ly or some other link-shortener or marketing tracker domain which I would put good money will be dead way before the QR code's ink deteriorates
I don't mean that QR is a terrible standard, but at least until we can get URL forms that are on the whole less than 128 characters, I wish they had met the world where it is. I believe the http2 compression scheme comes with dedicated dictionary slots for header strings that they know are going to appear, so QR would have benefited from the same (e.g. http/https taking less than 4/5 bytes, :// less than 3)
Then again, having thought further about this, I guess Marketing's Razor is the most likely explanation: it wasn't a technical reason they're using bit.ly, it's for those sweet engagement metrics
I'd like to find a way to repair QR codes through software. However, that begins with collecting a bunch of broken and corrupted QR codes people stumble across and fixing them up by hand. This will help spot patterns in how they fail. So please help out by submitting your QR code that doesn't scan. Please don't create QR codes that don't scan just to submit them. Thank you! In the past I have fixed one QR code by hand and it is shown at the link.