Skip to main content

Free Duplicate File & Photo Finder

Find duplicate files and similar photos in a folder: exact copies by content, plus resized or re-saved versions of the same photo. Keep the best copy and move the rest aside. Runs in your browser; nothing is uploaded.

Drop files here, or click to browse

Any file · processed on your device

or press Ctrl+V to paste from your clipboard

You can drop multiple files at once

Browse files

Your files never leave your device. All processing happens locally in your browser.

How It Works

The page reads the files on your device. Files only count as exact copies when they have the same size and the same content hash (xxHash-128 from hash-wasm), and only files that share a size are hashed, so big folders go quickly. For similar photos each picture is shrunk to a 9×8 grey thumbnail and turned into a 64-bit difference hash; photos whose hashes differ in only a few bits show the same scene, resized, re-saved or lightly edited.

  1. 1
    Choose a folder or files
    Press "Choose a folder" to check a whole folder with its subfolders, or drop files. Nothing is uploaded.
  2. 2
    Pick what counts as a duplicate
    Exact copies only, nearly identical photos, or similar photos (resized, re-saved or lightly edited).
  3. 3
    Review the groups
    Each group keeps its best copy (most pixels, then biggest, then oldest). Tick or untick any file.
  4. 4
    Clean up
    In Chrome or Edge on a computer, move the ticked copies into a "_duplicates" folder. Anywhere, download the files to keep as a ZIP, or a CSV list.

Your files are compared in this browser and never uploaded.

Guide

Worked example

Choose a folder that holds Trip/IMG_2041.jpg, Trip/IMG_2041 (1).jpg and Backup/IMG_2041.jpg, three files with identical content of 4,404,019 bytes (4.2 MB) each, plus a short Trip/notes.txt. Press "Find duplicates". Only the three same-size files are read. The result says "1 group of duplicates · 2 ticked to remove · 8.4 MB to free", under the heading "Group 1 · 3 identical files". If the three have the same modified date, Trip/IMG_2041.jpg is marked "best copy" because its path is the shortest, and the other two are ticked. In a browser that can change files in a folder, "Move 2 copies to _duplicates" then moves them, after you confirm, into a _duplicates folder inside the folder you chose, named Trip__IMG_2041 (1).jpg and Backup__IMG_2041.jpg.

Which settings to use, and the limits

  • Pick the match level that fits your files. "Exact copies" finds files with the same content, whatever their names. "+ nearly identical photos" is selected by default and also groups the same photo resized or saved again at another quality. "+ similar photos" also groups lightly edited versions and shots taken a moment apart, and the page tells you to check the groups before cleaning up. Behind the scenes the last two accept a difference of up to 4 or 10 bits out of the 64 in a photo's fingerprint. For folders of documents, music or video, choose "Exact copies", because it skips the photo pass and is quicker.
  • Exact copies are found by size and content. The tool lists every file, then reads only the files that share their size with another file, in 8 MB pieces, and makes a 128-bit fingerprint (xxHash128) of each. Two files are exact copies when both the size and the fingerprint match. Names and dates are ignored, so a renamed copy is found and two different files with the same name are not. Empty (0 byte) files are never grouped. The check is size plus a 128-bit fingerprint, not a byte-by-byte comparison.
  • "Choose a folder" covers its subfolders. "Choose a folder" goes through the folder and every subfolder below it. You can also drop files onto the page instead. In browsers that can write to a folder (Chrome and Edge on a computer), the picker lets the page move files, which switches on the "Move" button, and it skips subfolders whose names start with a dot and any folder called _duplicates. In other browsers the same button reads the whole folder but cannot change it, so you get the ZIP and the list only. One scan covers one folder or one set of dropped files, and "Clear all" starts over.
  • Similar-photo matching has its own limits. Only JPG, JPEG, PNG, WebP, GIF, BMP and AVIF files are compared by how they look. HEIC, TIFF and camera RAW photos are only checked for exact copies. At most 6,000 photos are compared in one scan, so photos after the first 6,000 in the list are left out of the similar-photo step. Each photo is shrunk to a 9 by 8 grey thumbnail and turned into a 64-bit fingerprint, and almost one-colour pictures are skipped because they would all look alike. A copy that was rotated or cropped changes that thumbnail and may not match. Groups chain: if A matches B and B matches C, all three land in one group, so untick anything that does not belong.
  • Check which copy is kept before you act. In each group the copy marked "best copy" is chosen by most pixels first, then the biggest file, then the oldest modified date, then the shortest path. Every other copy has its checkbox ticked and its name struck through; untick any you want to keep. Groups are ordered by the space they would free, and the page shows the first 150 with a line such as "…and 12 more groups (all included in the CSV, ZIP and move)." Copies in groups you cannot see on screen are ticked in the same way, so if you have more than 150 groups, download the CSV and read it before you move anything.
  • Move first, delete later. The page moves copies aside instead of deleting them. "Move N copies to _duplicates" asks you to confirm, writes each ticked copy into a _duplicates folder inside the folder you chose, and only then removes it from its old place. Each moved file is named from its path with the folder separators replaced by __, and a file already in _duplicates is never overwritten. Check that folder, then delete it yourself to free the space. Without folder access, "Download files to keep (ZIP)" saves without-duplicates.zip with every file that is not ticked, not just the duplicates, and "Download list (CSV)" saves duplicates.csv with the columns group, match, action, path and size_bytes.

Common problems and how to fix them

It says "No duplicates found. Every file is different."
No two files matched at the level you chose. A photo that was re-saved, resized or edited has different content, so "Exact copies" will not group it: choose "+ nearly identical photos" or "+ similar photos" and scan again. Matching by look covers only JPG, JPEG, PNG, WebP, GIF, BMP and AVIF files, and almost one-colour pictures are skipped. Empty files are never counted as duplicates, and HEIC, TIFF and RAW photos can only match when their content is identical.
It says "No files found. Choose a folder that contains files." or "This folder could not be read. Try another folder, or drop the files instead."
The first message means no files came in. In Chrome and Edge on a computer the folder scan skips subfolders whose names start with a dot and any folder called _duplicates, so a folder holding only those looks empty. Pick the parent folder, or one that has files in it. The second message means the browser refused the folder or stopped while it was being listed. Try a folder further down the tree rather than a whole drive or a system folder, or drop the files onto the page instead. Dropped files can be scanned and listed but not moved. Closing the picker without choosing shows nothing.
It says "The files could not be compared. Try fewer files at a time."
A step of the scan failed, most often because a file could not be read while the tool was reading it: it was moved or deleted, locked by another program, or is only a cloud placeholder (OneDrive, iCloud, Google Drive) that has not been downloaded. Download the files to this device, close programs that use them, and scan a smaller folder. While a scan runs, the "Find duplicates" button is replaced by a progress line ending in "Cancel", which stops it.
It says "That is more than a ZIP can hold (4 GB). Use the list instead."
"Download files to keep (ZIP)" packs every file that is not ticked, so a big folder can pass what a ZIP made here can hold: under about 4 GB in total, no single file of 4 GB or more, and at most 65,535 files. Use "Download list (CSV)" and handle the listed copies yourself. Or, in Chrome or Edge on a computer, scan with "Choose a folder" and use the "Move" button, which does not make a ZIP.
It says "Moving stopped after 3 files. The rest were not changed."
A move failed partway, for example because a file was open in another program or the disk was full; the page cannot tell which. Copies that were already moved are in the _duplicates folder and the rest stay where they were. Each copy is written into _duplicates before it is removed from its old place, so a failed move does not lose a file. The list on screen is now out of date, so press "Clear all", choose the folder again and scan again before you try once more.

How it compares

A file manager can sort by name or size, which only hints at duplicates: two files with the same name can differ, and a renamed copy is missed. This tool compares content, so renamed copies are found, and it can group resized or re-saved photos as well. A dedicated desktop program is usually the better choice for a very large library, for similar-video or similar-audio search, for HEIC or RAW photos, for adding a second folder to the same scan, or for deleting straight to the recycle bin. This page does none of those. It does not delete files itself either: it moves copies into a _duplicates folder (in browsers that can write to a folder), or gives you a ZIP of what to keep or a CSV list. The scan runs in your browser, and the files are not uploaded.

Related Tools

Frequently Asked Questions