What's actually happening
When you hold your phone upright, the camera sensor still captures in its fixed landscape orientation. Instead of rotating millions of pixels on the spot, the phone saves the raw sensor image plus a one-byte note in the file's EXIF metadata: "rotate 90° clockwise for display". Every viewer that reads the note shows the photo upright. Every viewer that ignores the note shows the sensor image — sideways.
Why it's so inconsistent
Your phone gallery, modern browsers and current WordPress read the flag. Older CMS versions, custom upload scripts, many web applications, digital signage and some email clients don't — or worse, they resize the image (losing the metadata) without applying the rotation first. That's how a photo can be upright on your Mac, sideways on the iPad and upside down in the newsletter.
The permanent fix: bake the rotation in
The only robust solution is to physically rotate the pixels and clear the flag — then there's nothing left to interpret. Any photo you process with everyimg gets exactly this treatment automatically: we decode the image with its EXIF orientation applied and export a file whose pixels are simply upright. It then displays correctly in every viewer, no matter how old.
Bonus: strip the metadata you don't want public
EXIF data contains more than rotation — often GPS coordinates of where the photo was taken, camera model and timestamps. Re-encoding through everyimg produces a clean file without the original metadata, which for photos published on a website is usually exactly what you want, both for privacy and for a few saved kilobytes.