I generate keys offline, they have never touched the internet/email/any web site. I create an encrypted partition on a bootable Linux USB key, with a 25 character password. My wife knows the password as well, so if I have a stroke, or die in a crash all is not lost. It would take several lifetimes to brute force the password, but it's a phrase that is easy for my wife and I to remember.
Rather than have "The One That Is Very Important", I have a dozen of them. One at my parents, one in my vehicle, one in my desk at work, one in safe deposit box, one with friends. They are all identical copies.
Inside the encrypted partition is a directory blatantly named "Bitcoin". I have public/private keys in a text file. I also have QR codes for each, generated/stored in there as well.
Because it's a bootable USB stick, when I boot to it in Linux, I am completely free from any possibility of Windows malware/keylogger/screenshot that could be present in the host PC.
Since I consider this a very secure environment, I also store other important things. I scanned the contents of my wallet. I have copies of my insurance, mortgage, paycheck stubs, eyeglasses prescription, I have exported my phone/PC contact lists, saved all my bookmarks. I have a huge zip file of important/personal family photos.
If I just did this on one USB stick, I would very probably run it through the laundry. With redundant off-site copies, I don't care if I lose one, or it gets destroyed.
That is a lot of work to achieve less security than you could have with a $20 Ledger HW.1 hardware wallet. At some point you will have to expose your private keys by importing into a wallet to spend. With the Ledger your private keys are never exposed.