Guides · Lightroom · 7 min read · April 28, 2026
XMP sidecars, explained.
How Lightroom, Capture One, and standalone culling apps share ratings, picks, and metadata — without ever touching your RAW files.
An XMP sidecar is a small text file Lightroom writes alongside your RAW. It holds star ratings, color labels, picks, keywords, and develop adjustments. Any app that reads XMP can pick up your work, and any app that writes XMP can push work into Lightroom. The unlock: cull in a fast app, edit in Lightroom — both see the same metadata.
What an XMP sidecar actually is
Open one in a text editor and it's just XML. For a RAW file IMG_4521.CR3, the sidecar lives next to it as IMG_4521.xmp. A typical pick + 4-star rating looks like:
<x:xmpmeta xmlns:x="adobe:ns:meta/">
<rdf:RDF xmlns:rdf="...">
<rdf:Description
xmp:Rating="4"
xmp:Label="Pick"
photoshop:Headline="Wedding · ceremony">
<dc:subject>
<rdf:Bag>
<rdf:li>wedding</rdf:li>
<rdf:li>ceremony</rdf:li>
</rdf:Bag>
</dc:subject>
</rdf:Description>
</rdf:RDF>
</x:xmpmeta>
That's it. Plain text, ~2 KB, nothing proprietary. The XMP spec is published by Adobe but built on open standards (RDF/XML).
What syncs and what doesn't
| Field | In sidecar | Notes |
|---|---|---|
| Star rating (0–5) | Yes | Universal across apps |
| Color label | Yes | Names ("Red", "Yellow") differ between apps |
| Pick / reject flag | Yes | Lightroom-specific but widely supported |
| Keywords / tags | Yes | Hierarchical keywords supported |
| Title / caption / copyright | Yes | IPTC fields |
| Crop, exposure, white balance | Yes | Lightroom develop settings written here |
| Stacks / virtual copies | Partial | Stored but interpretation varies by app |
| Catalog history / undo stack | No | Lives in the Lightroom .lrcat only |
| Smart collections / search | No | Catalog-only |
Catalog vs. sidecar: which wins?
The most common XMP confusion: when both Lightroom's catalog AND a sidecar disagree, which one wins? Lightroom's default behavior:
- The catalog is the source of truth. It does not auto-read sidecars on import or sync.
- To pull updates from a sidecar, you have to right-click photos → Metadata → Read Metadata from File.
- To push updates to a sidecar, ⌘S (Save Metadata to File) — or enable auto-write in preferences.
This is the gotcha that confuses people coming from culling apps. You cull in app X, ratings hit the sidecars, you import to Lightroom, and... nothing shows up. Because Lightroom needs you to tell it to read the sidecars.
Enable XMP auto-write in Lightroom (2 settings)
If you want sidecars to stay in sync without thinking about it:
- Lightroom Classic → Settings → Catalog Settings → Metadata
- Check "Automatically write changes into XMP"
- Optional: also check "Include develop settings in metadata inside JPEG, TIFF, PNG, and PSD files" for non-RAW formats
With auto-write on, every star or label change writes to the sidecar within seconds. Now your sidecars are always current — any external app reading them sees the truth.
The cull-elsewhere, edit-in-Lightroom workflow
This is why XMP matters for working photographers:
- Ingest RAWs to a working folder. Don't import to Lightroom yet.
- Cull in a fast app — ShotSelect, Photo Mechanic, FastRawViewer. Mark picks (P), rate stars, add color labels.
- The culling app writes XMP sidecars next to each RAW.
- Import to Lightroom, pointing at the same folder.
- On import, in the Metadata panel, choose "Read Metadata from File" for all photos — Lightroom pulls in your ratings and picks instantly.
- Filter to picks. Edit. Export. Done.
The reason: Lightroom's RAW preview generation is slow because it's computing develop-quality previews. A culling app uses the embedded JPEG and runs at ~10× the frame rate. More on why this matters →
Capture One, Bridge, and other apps
Capture One reads XMP but writes its own .cosession + .cos sidecars by default. To make it write XMP:
- Edit → Preferences → Image → Metadata
- Set "Auto Sync Sidecar XMP" to Full Sync
Adobe Bridge auto-reads/writes XMP — no setup needed. Photo Mechanic uses XMP natively. Most culling apps written after 2010 default to XMP. The notable exception is older Aperture exports, which use Apple's proprietary metadata.
Three pitfalls
1. Renaming RAWs after writing sidecars. Sidecars match by filename. If you rename IMG_4521.CR3 to wedding-001.CR3 but not the .xmp, the metadata orphans. Most renamers handle the pair — confirm yours does.
2. Cloud sync conflicts. If two machines both edit metadata while the folder is on Dropbox/iCloud, you'll get conflicted sidecar files (e.g. IMG_4521 (conflicted copy).xmp). Cull on one machine, sync, edit on the other — never both at once.
3. JPEG and DNG embed metadata, no sidecar. JPEG/PNG/DNG store XMP inside the file, not as a separate .xmp. So you won't see sidecars for those — but the metadata is still readable by the same apps.
Why this matters
Lightroom is the best edit-and-deliver tool. It's a mediocre culling tool. XMP sidecars are the bridge that lets you use the right tool for each job — without locking your work into anyone's catalog.
Cull where it's fast. Edit where it's powerful. Trust the sidecar to keep them in sync.
Why ShotSelect for the cull-then-Lightroom flow
- XMP-first by design. Auto-writes sidecars on every change — no manual save, no catalog lock-in.
- Doesn't replace Lightroom — pairs with it. Cull where it's fast, edit where it's powerful.
- Free. No reason not to try it alongside your existing setup.
- On the free tier, photos stay on your Mac. Sidecars write locally; nothing uploads anywhere.
- Apple Silicon native. Reads embedded JPEG previews — full-resolution thumbnails at scroll-fast speed.
Cull fast. Edit in Lightroom.
ShotSelect writes XMP sidecars natively — your ratings, picks, and labels show up in Lightroom in seconds.
Keep reading