back to top

How to Deal With Duplicate Photos (Plus Best Duplicate Photo Finder!)

A- A+

Photos are notorious computer data hogs. And duplicate photos leach computer data for no reason. The problem is that trying to find duplicate photos is a long, tedious process. At least if you try to find them manually.

Duplicate photo finder software makes the process much simpler. These programs find duplicate photos for you. They scour your hard drive or your Lightroom photo library for any files that contain the same EXIF data.

Sometimes these duplicate photo finder programs can even find similar, not identical images. This helps you free up space by clearing out burst photos you won’t use.

Here’s how to find duplicate photos in Lightroom as well as on your computer hard drive. And how to prevent duplicate files in the first place.

Photo of the hands of a man typing on a laptop with a mug of coffee next to it

How to Prevent Duplicate Photos

Duplicate photos are a hassle to find. Software makes finding and deleting those photos simpler. What’s even simpler is preventing duplicate photos in the first place.

Use a photo asset manager, such as Adobe Lightroom or Skylum Luminar. Don’t just drag and drop the files when copying from the camera to your hard drive.

First, create a file naming system that works with your style and workflow. You can save them by date, or by event name, or another organization scheme that fits your style.

You can even save by topic, then date. The key is consistency — don’t start saving by date only to move over to saving by topic.

Along the same lines, create a system to keep track of your memory cards. This way you’ll avoid duplicate images by uploading the same images twice. Create a designated spot for blank cards, cards that need to be uploaded, and cards that can be formatted.

First, upload the memory card and back up important files in a second location or cloud storage. Then format the card even if there’s space left.

Don’t leave uploaded photos on the card and then shoot new photos. This increases the odds of uploading those photos twice.

Finally, make sure to use software tools to prevent duplicates. In Adobe Lightroom, you can check the box that says “don’t import suspected duplicates”. You can also use the Library tools to select only new photos.

How to Find Duplicate Photos in Lightroom Classic

Finding duplicates in Lightroom allows you to clean up the library and your hard drive. This method won’t find photos that you’ve exported several times. To clear up hard drive space, try both a Lightroom plug-in and a duplicate photo software.

If you don’t use Lightroom, skip to the next section to search your hard drive. This will work with whatever photo editing program you use. Note that Lightroom CC doesn’t support plug-ins. If you use Lightroom CC you’ll want to use a program that searches your hard drive instead.

Adobe Lightroom doesn’t have a built-in tool to locate duplicates. You can find duplicates with a plug-in called Duplicate Finder. The plug-in scours the library for duplicate files. And it creates a Collection of those images. You can decide what to do with those files.

The plug-in also uses EXIF data to categorize them. Images are then organized by the most and least edits, the largest and smallest sizes, and the oldest to newest import dates.

First, download the plug-in from the developer. The plug-in is available free to try, but you’ll need to buy the license to search your entire library.

The free trial will tell you how many duplicates it finds. You can see if it’s worth purchasing the license.

Once you’ve downloaded the plug-in, add it to Lightroom Classic. Go to the Plug-In manager (File > Plug-in Manager). Click on the add button, then locate the file and download.

Once the plug-in is connected to Lightroom, you might want to search only through some photos. Highlight the group that you want to search for duplicates in. Then, go to Library > Plug-In Extras > Find Duplicates 2. This will open up the Duplicate Finder window.

At the drop-down at the top, chose whether you want to search through the entire catalog. You can also choose to search only through the highlighted photos.

Use the checkmarks to tell the tool what criteria to use when searching. This includes checking to see if the images have the same shutter speed as well as the same timestamp.

If you use virtual copies and want to keep them intact, check the box that says “ignore virtual copies.”

Once you are finished customizing the duplicate search, click ok. Then, wait for the plug-in to scan the selected photos. This may take a while if you selected a large number of photos, such as the entire library.

The plug-in doesn’t actually delete photos. It adds both the original and the duplicate to a collection called Duplicates.
Navigate to the collection and review the photos the program suggests as a duplicate.

DO NOT delete every image in the Duplicate collection. The tool gathers the original and the duplicate — labeled with Copy and a number, such as Copy 1.

This allows you to see if the photo is really a duplicate that you want to delete. Or if one is a color copy and one is black and white and you want to keep both.

Go through the collection and use the X key to mark the duplicates as rejected. Once you’ve marked the duplicates as rejected, go to Photo > Deleted Rejected Photos.

Lightroom will ask if you want to remove the photos from Lightroom, or delete the file on your hard drive as well. Select the option you prefer to finish the process.

Deleting photos from Lightroom won’t free up hard drive space. But it will help declutter your catalog.

Note: Deleting rejected photos with the entire catalog open will delete any other photos that you’ve marked as rejected as well. You might not want to delete other rejected photos. Make sure you are inside the Duplicate collection before selecting the option to delete rejected photos.

You can remove the remaining photos from the Duplicates catalog — the one you want to keep. Highlight the images and going to Photo > Remove from Collection.

How to Find Duplicate Photos on a Hard Drive With the Best Duplicate Photo Finders

You can find duplicate photos that are cluttering up a hard drive using software. You might want to find photos that you exported from Lightroom twice. You might use another digital asset manager or might not use photo editing programs at all.

Software designed to search your hard drive for duplicates is an excellent solution.

There are a handful of different duplicate photo programs available. Here are the most recommended programs for Mac and Windows.

Remo Duplicate Photos Remover is a cross-platform program that finds duplicate photos as well as similar photos. Similar photos are those taken in quick sequence in burst mode.

The program is available for Mac, PC, iOS and Android. It has several different tools to customize the search for duplicate photos. The company says one copy of the image is always preserved. This prevents losing photos to overzealous deleting.

PhotoSweeper’s program will find duplicate photos on your Mac. It will also find similar photos taken from burst mode. The program groups all the duplicate photos together for review before deleting. And it shows you how much space you’ll gain if you delete those duplicates.

Duplicate Photos Fixer Pro scans for matching photos to free up space. The program has versions for Mac, Windows, iOS, and Android. You can clean out both your phone and your computer. The program searches for duplicate photos on the hard drive. Then it lists all duplicates.

You can then delete all the duplicates in one click. Or you can preview each duplicate file before deleting. The program will delete the first 15 files for free. The full version is an inexpensive download from the App Store or Google Play.

Duplicate Cleaner Pro is a Windows program that will search for any duplicate photos. This includes documents and music as well as photos and video. The program works with RAW images as well. Images can be deleted, or moved to a different folder.

The program displays the duplicate images next to each other, so you can be sure it’s a duplicate. There’s a Pro version as well as a free version.

Photos Duplicate Cleaner doesn’t only find files with identical filenames and data. The program also finds similar images as well. That’s great for clearing out hard drive space.

Images and the metadata can be previewed before removing the duplicate photos. The program is designed for Mac and is a free download on the App Store.

Conclusion

Because photos are important, we hesitate to delete them. This sometimes means creating duplicate copies. Having a backup of the photos you can’t bear to lose is a good idea. But poor file management can leave several copies of photos filling up your hard drive.

Start by creating a workflow that helps avoid duplicates in the first place. Then you can find and remove duplicate photos using software.

Lightroom users can use a plug-in that also cleans out the Lightroom library. Several other programs will search your hard drive itself for duplicates to remove.

Save this article to your Pinterest profile to access it later!

Leave a Reply

Your email address will not be published. Required fields are marked *

[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]
[type='text']
[type='text']
[type='password']
[type='password']
[activeKey]
[activeKey]
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
['rmockx.RealPlayer G2 Control', 'rmocx.RealPlayer G2 Control.1', 'RealPlayer.RealPlayer(tm) ActiveX Control (32-bit)', 'RealVideo.RealVideo(tm) ActiveX Control (32-bit)', 'RealPlayer']
[index]
[index]
[i]
[i]