By 37Design |

iPhone HEIC Photos and WordPress: How to Upload Without Conversion Hassles

Every iPhone sold since 2017 takes photos in HEIC format by default. Every WordPress site built before 2024 rejected HEIC files on upload. This mismatch has caused more confusion than any other format issue I've dealt with in 15 years of building WordPress sites.

The situation got better in late 2024 when WordPress 6.7 added native HEIC support. But "better" and "solved" aren't the same thing. There are still hosting environments where HEIC uploads fail silently, plugins that choke on the format, and a lot of conflicting advice floating around forums.

Here's what I've learned from actually dealing with this across dozens of client sites.

What HEIC Actually Is

HEIC (High Efficiency Image Container) uses the HEIF image format with H.265 compression. Apple adopted it in iOS 11 because it produces files roughly 40-50% smaller than JPEG at the same visual quality. A typical iPhone photo that would be 6MB as a JPEG comes out around 3MB as HEIC.

That size difference matters when you're uploading over cellular, and it matters for storage on your WordPress server. Smaller files, same quality. There's no downside to the format itself.

The downside is compatibility. For years, almost nothing outside of Apple's ecosystem could open HEIC files. Windows added support in 2018. Android in 2019. WordPress didn't add it until version 6.7 in late 2024, and even then, it depends on your server having the right image processing library installed.

WordPress 6.7 HEIC Support: What Changed

Before 6.7, uploading a .heic file to WordPress would give you a generic error: "Sorry, this file type is not permitted for security reasons." The fix was either converting every photo to JPEG before uploading (tedious) or adding a code snippet to functions.php to whitelist the MIME type (risky if your server can't actually process the file).

WordPress 6.7 added HEIC to the list of allowed file types and included basic support for generating thumbnails from HEIC files. If your server has ImageMagick compiled with HEIF support (or libheif for GD), WordPress can now handle HEIC natively.

That's a big "if."

Where it works

Most modern managed hosting providers (Cloudways, Kinsta, SiteGround on their newer infrastructure) have ImageMagick with HEIF support. If you're on one of these hosts with WordPress 6.7 or later, HEIC uploads should just work.

Where it doesn't

Shared hosting on older infrastructure is hit or miss. Many budget hosts run older versions of ImageMagick that don't include HEIF support. The upload might succeed (the file lands on the server), but WordPress can't generate thumbnails. You end up with a full-size HEIC file in your Media Library and broken thumbnail placeholders everywhere.

There's no clean error message when this happens. The Media Library just shows a generic icon instead of a preview. I've had clients report this as "my photos aren't uploading" when in fact the photos uploaded fine, they just look broken in the admin.

How to Check If Your Server Supports HEIC

Go to Tools > Site Health > Info > Media Handling in your WordPress admin. Look for the ImageMagick version and supported formats. If you see "HEIC" or "HEIF" in the list, you're good.

If you don't see it, or if you're using GD instead of ImageMagick, HEIC thumbnails won't generate. You have two options: ask your hosting provider to upgrade ImageMagick, or convert your photos before uploading.

The Conversion Problem

Converting HEIC to JPEG before uploading sounds simple. On a laptop, it is. Preview on macOS can batch-convert files in seconds. On Windows, the Photos app handles it.

On an iPhone, it's a different story. There's no built-in batch converter. You can change your camera settings to shoot in JPEG instead of HEIC (Settings > Camera > Formats > Most Compatible), but then you lose the 40-50% file size advantage on every photo you take, not just the ones going to WordPress.

Some people use the Shortcuts app to build a HEIC-to-JPEG converter. It works, but it's another manual step in your workflow, and the converted files are larger. You're trading one problem for another.

The real annoyance is that your iPhone already handles this conversion automatically in some situations. When you email a photo or AirDrop it to a Windows PC, iOS converts it to JPEG on the fly. But when you upload through a browser or the WordPress app, it sends the original HEIC file. There's no setting to change this behavior for uploads.

What SnapPress Does with HEIC

When I built SnapPress, HEIC handling was one of the first things I had to figure out. The approach is straightforward: the app reads your original HEIC file, converts it to JPEG locally on your iPhone before uploading, and sends the JPEG to WordPress.

This means it works with every WordPress site regardless of server configuration. Your host doesn't need HEIF support in ImageMagick. WordPress doesn't need to be version 6.7. The file that arrives on your server is a standard JPEG that every WordPress installation since version 1.0 can handle.

The conversion happens on-device and takes a fraction of a second per photo. You don't see it. You don't configure it. You select your photos, tap upload, and JPEG files appear in your Media Library with thumbnails, previews, and everything working correctly.

Is this the "right" approach? Depends on what you care about. If you want the absolute smallest file size, uploading native HEIC to a server that supports it is technically better. If you want something that works on every WordPress site without checking server configurations, automatic conversion is the safer bet.

I chose reliability over theoretical optimization. In my experience, most WordPress users don't know or care what ImageMagick version their host is running. They just want their photos to show up.

The Other Format You'll Run Into: HEIF and AVIF

HEIC is technically a container format that wraps HEIF images. You'll sometimes see files with a .heif extension instead of .heic. WordPress 6.7 handles both the same way.

AVIF is a newer format that's gaining traction on the web (it's what Netflix and many CDNs use for image delivery). WordPress added AVIF support in version 6.5. Some newer iPhones can take photos in AVIF, though it's not the default yet.

For now, HEIC is what you'll deal with 99% of the time if you're uploading iPhone photos. But keep AVIF on your radar. It offers even better compression than HEIC and has broader cross-platform support.

My Recommendation

If your hosting supports HEIC (check Site Health) and you're on WordPress 6.7+, upload HEIC files directly. Enjoy the smaller file sizes.

If your hosting doesn't support HEIC, or you manage multiple sites on different hosts and don't want to check each one, use a tool that converts for you. SnapPress does this automatically. The SnapPress Connect plugin handles the site connection, and the app handles the format conversion behind the scenes.

Don't change your iPhone's camera format to JPEG just because WordPress gave you trouble once. HEIC is the better format. The upload tool should adapt, not your camera settings.