← Back to Tools

About & Methodology

ExifCleaner (v2.2.0) is a free privacy tool published by Ellie Petal Media. This page documents exactly how it works, what it can and cannot do, and how we test it.

Local processing

Files are processed in your browser's memory with JavaScript. Cleaning never uploads file contents to ExifCleaner servers.

Verified removal

Every cleaned image is re-scanned and the per-file report shows before/after status for each detectable category.

Tested claims

We only claim removal of metadata types our scanner positively detects — and the verification report proves it per file.

Processing architecture

ExifCleaner is a static single-page app (React + Vite) served by a thin Express host and CDN. There are no file-upload endpoints: the server only delivers HTML, JS, and CSS. When you drop a file, it is read with the File API into browser memory, parsed and rewritten by JavaScript libraries, re-scanned for verification, and offered back as a download via object URLs. Closing the tab releases the memory.

Libraries and technology actually used

  • JPEG cleaning: custom segment stripper (drops APP1 EXIF/XMP, APP13 Photoshop/IPTC, COM) with piexifjs retained for the anonymize option; exifr for detection and verification rescans.
  • PNG / WebP: canvas re-encode without metadata chunks.
  • HEIC: heic2any conversion to JPEG, then the JPEG pipeline.
  • PDF: pdf-lib metadata dictionary rewrite.
  • Batch downloads: JSZip. GPS preview: Leaflet with OpenStreetMap tiles.

No WebAssembly modules and no Rust-compiled libraries are used in the current build.

Supported metadata standards and limitations

  • Detected and removed when present: EXIF, GPS, XMP, IPTC/Photoshop, embedded JPEG thumbnails, JPEG COM comments.
  • Preserved where practical: ICC color profiles, JFIF structure, image pixel data (JPEG path).
  • Not covered: visible content (faces, plates, text in pixels), PDF page content/annotations/attachments, Live Photo video components, manufacturer MakerNotes beyond standard parsing.
  • PDF cleaning rewrites the information dictionary only — it is metadata cleaning, not document redaction.

Testing methodology

Unit tests cover the JPEG segment stripper against synthetic files (EXIF/XMP/IPTC/COM removal, ICC/JFIF/pixel preservation, non-JPEG rejection). Cleaning flows are verified at runtime by re-scanning outputs. Platform handling claims (Instagram, Discord, Facebook, WhatsApp) are being moved to reproducible device/app tests in the Metadata Test Lab; until a test is published there, platform pages describe current best understanding, not guarantees.

Privacy behavior

File contents never leave your device during cleaning. The page itself loads third-party services with their own policies: Google Analytics 4 (aggregate usage events), Google AdSense (ads), Google Fonts, and OpenStreetMap tiles (only when you open a GPS map preview). See the Privacy Policy for the full matrix.

Changelog

v2.2.0 — 2026-09-04

  • Full body prerender: all 20 routes ship headings, copy, and links in initial HTML with React hydration.
  • Fixed nested-anchor Link markup that would break hydration.
  • Branded 1200x630 OG cover image for link previews.
  • exifr scanner loads on first scan only, shrinking initial JS.

v2.1.0 — 2026-09-04

  • Lossless JPEG metadata stripper (APP1/APP13/COM removal, ICC preserved, pixels never recompressed).
  • Per-file before/after verification reports with exifr-based rescanning.
  • Homepage is now the primary photo cleaner; /image-tools kept as alias.
  • Standalone EXIF viewer at /exif-viewer plus search-intent guides.
  • Prerendered per-route SEO head tags, generated sitemap.xml and llms.txt.

v2.0.0 — 2026-02-28

  • PDF metadata wiper, HEIC conversion, anonymize mode, GPS map preview.