No, WordPress does not remove EXIF data from the images you upload. The original file is stored unchanged in wp-content/uploads, GPS coordinates and camera details included, and the resized copies keep or lose metadata depending on whether your server uses the Imagick or GD image library. WordPress also reads part of the EXIF and IPTC data into its own database.

This guide walks through exactly what WordPress core does with image metadata at upload, based on the current core source code, how to check your own site, and how to clean both new uploads and an existing media library.

WordPress and EXIF data: what happens to each file

When you upload a photo, WordPress can end up with several files on disk and one record in the database. Each of them treats metadata differently.

What WordPress createsExample file nameMetadata inside
Your original uploadbeach.jpgEverything, untouched: EXIF (GPS, camera, dates, serial numbers), XMP, IPTC, ICC profile
Scaled copy (images over 2560 px)beach-scaled.jpgDepends on the editor: Imagick keeps EXIF, IPTC, XMP and ICC; GD keeps nothing
Rotated copy (when the orientation flag is not 1)beach-rotated.jpgSame rule as the scaled copy
Generated sizes (thumbnail, medium, large, and so on)beach-300x200.jpgSame rule: Imagick keeps EXIF, IPTC, XMP and ICC; GD keeps nothing
Attachment record in the database_wp_attachment_metadataA subset copied from the file: camera model, capture date, exposure settings, copyright, credit, caption, keywords

The important row is the first one. Whatever WordPress does to the generated sizes, the original stays on your server, and in most setups it is publicly reachable at a predictable URL.

Your original upload is never cleaned

WordPress treats your upload as the master copy. It moves it to a dated folder such as /wp-content/uploads/2026/10/ and never rewrites it. That has three practical consequences:

  • Images up to 2560 pixels are served as-is. If your photo is smaller than the big image threshold and you insert it at "Full Size", visitors download your original file, with every EXIF field still in it.
  • "Link to: Media File" points at a full file. Lightboxes and gallery links often open the full-size file rather than a resized copy.
  • The original survives scaling. When WordPress creates beach-scaled.jpg, the untouched beach.jpg stays in the same folder. Anyone who removes -scaled from the URL can usually download it.

A photo taken at home on a phone with location enabled carries GPS coordinates accurate enough to identify the building. If that photo goes into a blog post or a product page, the coordinates are published along with it, even if your theme only ever displays a thumbnail.

Big image scaling and the -scaled file

Since WordPress 5.3, any uploaded image wider or taller than 2560 pixels is scaled down to fit that limit, and the scaled copy becomes the "full" size used on the front end. The threshold comes from the big_image_size_threshold filter. The original file name is stored in the attachment metadata under original_image, and WordPress still generates the other sizes from the original for the best quality.

The same release added automatic rotation. If a photo is not being scaled but its EXIF orientation value is something other than 1 (normal), WordPress rotates the pixels, saves the result with a -rotated suffix, and records the orientation as 1. If you want to understand why that flag matters, see our guide to EXIF orientation and sideways photos.

Both the scaled and the rotated copies are written by the active image editor, so whether they keep EXIF depends entirely on which editor your server uses. That is the next question.

GD vs Imagick: why your thumbnails may still contain EXIF

WordPress ships with two image editors and uses the first one your server supports. Imagick (the PHP extension for ImageMagick) is preferred; GD is the fallback. They behave very differently with metadata.

GD: no metadata at all

GD decodes the image into raw pixels, resizes it, and encodes a brand-new file. It does not write EXIF, XMP or IPTC, and it does not preserve ICC color profiles either. Thumbnails made with GD are therefore clean, but photos shot in a wide color space such as Display P3 can look slightly duller in their resized versions. Our article on ICC color profiles explains why.

Imagick: strips some data, keeps EXIF on purpose

Since WordPress 4.5, the Imagick editor runs a strip_meta() step when it creates resized images. The name is misleading. The function removes every embedded profile except a protected list, and the source code gives the reason for each one:

  • icc and icm: color profile information
  • iptc: copyright data
  • exif: orientation data
  • xmp: rights usage data

The EXIF profile is kept as a whole block, not just its orientation value. In practice that means GPS coordinates, camera make and model, capture dates and serial numbers stored in EXIF can be carried into every Imagick-generated size, while the XMP block (where editing apps record history and sometimes location) is also kept.

The image_strip_meta filter only switches this step on or off. Returning false keeps everything; there is no core setting that makes Imagick remove the EXIF block. The filter has no effect with GD, which never keeps metadata in the first place.

How to see which editor your site uses

  1. In the dashboard, open Tools > Site Health.
  2. Switch to the Info tab and expand Media Handling.
  3. Look at Active editor: WP_Image_Editor_Imagick or WP_Image_Editor_GD. Labels may differ slightly between versions.

Hosting providers enable and disable Imagick independently of WordPress, so the answer can change after a server migration or a PHP upgrade.

What WordPress copies into its database

Separately from the files, WordPress calls wp_read_image_metadata() at upload and saves the result in the image_meta part of the attachment metadata. In current versions the function returns these keys:

KeyMain source
cameraEXIF Model
created_timestampIPTC creation date and time, or EXIF DateTimeDigitized
aperture, focal_length, iso, shutter_speedEXIF exposure fields
orientationEXIF Orientation
title, caption, keywordsIPTC headline, caption and keywords, with EXIF ImageDescription or comments as fallbacks
credit, copyrightIPTC credit and copyright, or EXIF Artist and Copyright
altThe IPTC accessibility alt text stored in XMP

Two details are worth knowing. First, core does not read GPS fields into the database, so the coordinates live only in the files. Second, the title and caption found in the metadata are used to prefill the attachment's title and caption, which is how a private file name or an internal note written in a photo editor can end up on a public attachment page.

On a standard install, the REST API's media endpoint (/wp-json/wp/v2/media) returns this image_meta object inside media_details for each published image. Open that address on your own site to see what it shares: camera model and capture timestamp are typical.

How to check your own WordPress site

Do not rely on theory, because hosting setups and plugins change the outcome. A five-minute test tells you exactly what your site publishes.

  1. Take a test photo on your phone with location enabled, somewhere other than your home.
  2. Upload it to the media library and insert it into a draft post at a large size.
  3. From the attachment details screen, copy the file URL. Download that file, the -scaled version if there is one, and one thumbnail such as the -300x file.
  4. Inspect each file. With ExifTool, run the command below; any line that comes back means that field is still present.
  5. Open /wp-json/wp/v2/media?per_page=1 on your site and look for image_meta.
exiftool -G1 -s -gps:all -make -model -serialnumber -datetimeoriginal beach-300x200.jpg

Our step-by-step guide on checking that metadata was really removed covers the same test on Windows, Mac and phones if you do not use the command line.

How to strip EXIF data from WordPress images

Best option: clean images before you upload them

If the file you upload contains no metadata, nothing downstream can leak it: not the original, not the generated sizes, not the database, not the REST API. Cleaning before upload also works on every host, whatever editor it runs. You can remove metadata online with our free tool: it handles JPEG, PNG and WebP, up to 10 images at a time, and the default "Keep same format" mode does not re-encode the pixels. It keeps only the ICC color profile and the orientation flag, so colors and rotation stay correct when WordPress builds its thumbnails.

For an existing media library: clean the uploads folder on the server

If you have SSH access and ExifTool installed, you can clean files that are already uploaded. Make a backup first, because the command overwrites files in place.

cp -a wp-content/uploads wp-content/uploads-backup
exiftool -r -overwrite_original -all= -tagsfromfile @ -icc_profile -orientation -ext jpg -ext jpeg -ext webp wp-content/uploads

This removes metadata without re-encoding the images and copies back the color profile and orientation. Our ExifTool cheat sheet explains each option. Afterwards, the image_meta values already saved in the database are still there. WP-CLI's wp media regenerate rebuilds the attachment metadata and the generated sizes from the files on disk; test it on a staging copy first, since it touches every image.

Plugins

Many image optimization plugins offer a "strip metadata" option. Before relying on one, check two things in its documentation or with the test above: whether it cleans the original upload or only the generated sizes, and whether it keeps the ICC profile. A plugin that only cleans thumbnails leaves the most complete copy of your metadata untouched.

Developers sometimes try to strip metadata in a wp_handle_upload hook with Imagick's stripImage(). That re-encodes JPEGs and, if it runs before WordPress reads the orientation, can leave photos sideways. A lossless tool such as ExifTool that keeps the orientation flag is the safer choice on the server.

Checklist for WordPress site owners

  • Check Tools > Site Health > Info > Media Handling to know whether Imagick or GD builds your images.
  • Assume every original in wp-content/uploads is public and contains whatever metadata it was uploaded with.
  • Strip metadata before upload as a habit, especially for photos taken at home, in a warehouse or at a client's site. Our guide on stripping metadata before uploading images to a website covers the page-weight benefits as well.
  • For shops, apply the same rule to product and supplier photos; see our e-commerce product photo guide.
  • Clean the existing library with ExifTool after a backup, then regenerate attachment metadata.
  • Re-run the five-minute test after changing hosts, PHP versions or image plugins.