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.

TL;DR

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

FieldIn sidecarNotes
Star rating (0–5)YesUniversal across apps
Color labelYesNames ("Red", "Yellow") differ between apps
Pick / reject flagYesLightroom-specific but widely supported
Keywords / tagsYesHierarchical keywords supported
Title / caption / copyrightYesIPTC fields
Crop, exposure, white balanceYesLightroom develop settings written here
Stacks / virtual copiesPartialStored but interpretation varies by app
Catalog history / undo stackNoLives in the Lightroom .lrcat only
Smart collections / searchNoCatalog-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:

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:

  1. Lightroom Classic → Settings → Catalog Settings → Metadata
  2. Check "Automatically write changes into XMP"
  3. 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:

  1. Ingest RAWs to a working folder. Don't import to Lightroom yet.
  2. Cull in a fast appShotSelect, Photo Mechanic, FastRawViewer. Mark picks (P), rate stars, add color labels.
  3. The culling app writes XMP sidecars next to each RAW.
  4. Import to Lightroom, pointing at the same folder.
  5. On import, in the Metadata panel, choose "Read Metadata from File" for all photos — Lightroom pulls in your ratings and picks instantly.
  6. 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:

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.

Download for macOS


Keep reading