How to edit photo metadata depends on the field: decide which one you're changing, then use a tool that writes it where the software you care about reads it. For EXIF fields, dates or copyright on a single JPEG or TIFF, an online editor is enough. For captions, keywords or a whole folder, use ExifTool or a desktop app such as Lightroom Classic, Bridge or digiKam. The trap is that most descriptive fields exist in up to three places in the same file, and editing one leaves the others stale.
Decide what you're editing
| Field | EXIF | IPTC IIM | XMP |
|---|---|---|---|
| Title | XPTitle (Windows) | 2:05 ObjectName | dc:title |
| Description | ImageDescription 0x010E | 2:120 Caption-Abstract | dc:description |
| Creator | Artist 0x013B | 2:80 By-line | dc:creator |
| Copyright | Copyright 0x8298 | 2:116 CopyrightNotice | dc:rights |
| Keywords | XPKeywords (Windows) | 2:25 Keywords | dc:subject |
| Camera, lens, exposure | IFD0 and ExifIFD | none | rarely used |
| GPS | GPS IFD | none | exif:GPSLatitude and others |
Descriptive and rights fields belong in IPTC and XMP; EXIF has only a few of them. Camera fields are a different matter. Fixing a lens name that an adapter got wrong is fine. Inventing an exposure that never happened makes the file lie, and someone will eventually trust it. The EXIF vs IPTC vs XMP guide explains how the three blocks overlap.
How to edit photo metadata online
- Open the metadata editor on the home page, or the EXIF editor, which is the same tool.
- Drop one JPEG or TIFF file.
- On the home page, choose Edit EXIF Metadata.
- Expand a section: EXIF General (make, model, lens, software, Creator, Owner Name, Copyright Notice, Image Description, User Comment), EXIF Date & Time (Date Taken, Date Digitized, Modify Date and their time zones), IPTC & XMP Rights (Copyright Notice, Creator, Credit Line, Digital Source Type, Web Statement of Rights, Licensor URL), EXIF Camera (ISO, aperture, exposure time, focal length, flash, white balance, orientation, color space) or EXIF GEO Tags.
- Change the fields, click Edit Metadata, then Download.
ExifTool does the writing on the server, and the upload is deleted right after the response. The limits are deliberate. Only a fixed list of tags is editable, and keywords, captions and titles are not on it. Text fields reject @ , : ; # & + % ! | * ", so write Monument Valley at sunset rather than Monument Valley, Utah. Date fields are the exception: they take the EXIF format, 2026:08:15 09:30:00. Creator is capped at 32 characters, the same limit IPTC puts on By-line. PNG, WebP, HEIC and RAW files can't be edited here.
Desktop alternatives
Windows File Explorer
Right-click a JPEG, Properties > Details, and click a value to edit Title, Subject, Tags, Comments, Authors or Copyright. Windows keeps several of these in its own IFD0 tags: XPTitle (0x9C9B), XPComment (0x9C9C), XPAuthor (0x9C9D), XPKeywords (0x9C9E) and XPSubject (0x9C9F), stored as UTF-16LE. They are Microsoft-specific, and plenty of other software ignores them. Windows writes the standard fields as well: Microsoft's published policy for Authors covers XMP dc:creator, IPTC By-line, EXIF Artist and XPAuthor.
Adobe Lightroom Classic and Bridge
In Lightroom Classic, edit in the Metadata panel of the Library module. The changes go into the catalog, not the file, until you choose Metadata > Save Metadata to File (Ctrl+S or Command-S) or turn on Automatically write changes into XMP in Catalog Settings > Metadata. For raw files that means a .xmp sidecar next to the raw. Exports get whatever the Include menu in the Export dialog's Metadata section allows, from Copyright Only to All Metadata.
Bridge edits files directly through its Metadata panel or File > File Info, which is the better choice when you don't use a catalog.
digiKam
digiKam is free and runs on Windows, macOS and Linux. Item > Edit Metadata opens an editor with separate Exif, IPTC and XMP tabs. Its own manual recommends the XMP tab over IPTC for text because of IPTC's size limits, which is good advice.
ExifTool recipes
All of these were run with ExifTool 12.76 on a test JPEG.
Write several tags to all three blocks at once
exiftool -overwrite_original -codedcharacterset=utf8 \
-EXIF:Artist="Zoë Müller" -IPTC:By-line="Zoë Müller" -XMP-dc:Creator="Zoë Müller" \
-EXIF:ImageDescription="Monument Valley from Valley Drive" \
-IPTC:Caption-Abstract="Monument Valley from Valley Drive" \
-XMP-dc:Description="Monument Valley from Valley Drive" \
-IPTC:Keywords=desert -IPTC:Keywords=Utah -XMP-dc:Subject=desert -XMP-dc:Subject=Utah \
photo.jpg[IFD0] Artist : Zoë Müller
[IPTC] By-line : Zoë Müller
[XMP-dc] Creator : Zoë Müller
[IFD0] ImageDescription : Monument Valley from Valley Drive
[IPTC] Caption-Abstract : Monument Valley from Valley Drive
[XMP-dc] Description : Monument Valley from Valley Drive
[IPTC] Keywords : desert, Utah
[XMP-dc] Subject : desert, Utah
[IPTC] CodedCharacterSet : UTF8-overwrite_original skips the photo.jpg_original backup. -codedcharacterset=utf8 writes the IPTC CodedCharacterSet tag so other software knows the IPTC strings are UTF-8. Without it, ExifTool stores the same UTF-8 bytes with nothing declaring them, and a reader that assumes Latin-1 shows Zoë Müller. XMP is always UTF-8, so it doesn't need the flag.
Repeating a list tag adds items. On an existing list, -IPTC:Keywords+=sunset appends and -IPTC:Keywords-=Utah removes one.
Let ExifTool fill all three blocks
exiftool -use MWG -Creator="Jane Doe" -Copyright="© 2026 Jane Doe" -Description="Valley at dusk" photo.jpgThe MWG composite tags write the EXIF, IPTC and XMP versions together. One catch, seen in testing: when the file has no IPTC block yet, MWG doesn't create one, so you get EXIF and XMP only. Name the IPTC tags explicitly if you need them, for WordPress for example.
Copy metadata from another file
exiftool -tagsFromFile src.jpg -EXIF:Artist -EXIF:Copyright -IPTC:all -XMP-dc:all dst.jpg
exiftool -tagsFromFile src.jpg -all:all -icc_profile dst.jpgThe first copies selected tags; the second copies everything. -all:all skips tags ExifTool considers unsafe, the ICC profile among them, so it has to be named. When copying IPTC, add -codedcharacterset=utf8 again: the copy dropped it in testing.
Respect the IPTC length limits
IIM fields have hard byte limits: 128 for CopyrightNotice, 64 per keyword, 64 for ObjectName, 32 for By-line, Credit and City, 2000 for Caption-Abstract. ExifTool truncates and warns:
$ exiftool -overwrite_original -IPTC:Keywords="Monument Valley Navajo Tribal Park seen from the Valley Drive loop" photo.jpg
Warning: [Minor] IPTC:Keywords exceeds length limit (truncated) - photo.jpg
1 image files updated
$ exiftool -G1 -s -IPTC:Keywords photo.jpg
[IPTC] Keywords : Monument Valley Navajo Tribal Park seen from the Valley Drive loThe limits count bytes, and with -codedcharacterset=utf8 ExifTool counts the UTF-8 bytes: a CopyrightNotice made only of accented letters tops out at 64 characters. -m writes the oversized value anyway, which just moves the problem to whoever reads it. XMP has no such limits.
Gotchas
- Software reads different blocks. WordPress fills title, caption, credit and copyright from IPTC IIM and EXIF when you upload a JPEG, and ignores dc:title, dc:description and dc:rights in XMP. Google's licensing fields, Web Statement of Rights and Licensor URL, exist only in XMP; the guide on adding copyright to photos has the full command. Write the same value everywhere it applies.
- Our online editor keeps the EXIF fields and the IPTC & XMP Rights panel separate. Changing Copyright Notice under EXIF Author leaves the IPTC and XMP copies as they were, and apps that prefer those will keep showing the old value. Update both panels.
- Lightroom Classic shows catalog values. After editing a file elsewhere, have it re-read the file (Metadata > Read Metadata from Files), or it keeps showing what it had.
- ExifTool never recompresses. Re-saving in a photo editor does.
That last point is easy to check. Here the tagged file has the same image data as the original, and only the re-saved one differs:
$ exiftool -api imagehashtype=MD5 -ImageDataHash original.jpg tagged.jpg resaved.jpg
======== original.jpg
Image Data Hash : 116f40dcb0ec09a52d6e91091ddce0fd
======== tagged.jpg
Image Data Hash : 116f40dcb0ec09a52d6e91091ddce0fd
======== resaved.jpg
Image Data Hash : 1eee35af4b096c66b111f18fdf40b035
3 image files readCheck the result
Open the edited file in the EXIF reader. It shows the same fixed set of fields the editor writes: EXIF, EXIF dates and IPTC/XMP rights. Labels such as Creator or Copyright Notice can appear more than once because the EXIF, IPTC and XMP versions share a label. That is useful: a stale copy stands out. Keywords, captions and the XMP or IPTC date copies aren't in that set, so check those with exiftool -G1 -a -s -Keywords -Subject -Caption-Abstract -Description -time:all photo.jpg.