---
url: https://findutils.com/guides/dedupe-bookmarks
title: "Remove Duplicate Bookmarks From a bookmarks.html Export"
description: "Find and remove duplicate bookmarks in Chrome, Firefox, Edge or Safari exports. Learn what counts as the same link, which copy is kept, and how to re-import a clean file."
category: converters
content_type: guide
guide_type: subtopic
cluster: bookmarks
locale: en
read_time: 7
status: published
author: "olgunozoktas"
published_at: 2026-09-16T10:00:00Z
excerpt: "Sync and re-imports leave the same link saved three times, often with a tracking tag on one copy. Here is how to find those duplicates in an export, which copy survives, and how to import the clean file."
tag_ids: ["bookmarks", "browser", "productivity"]
tags: ["Bookmarks", "Browser", "Productivity"]
primary_keyword: "remove duplicate bookmarks"
secondary_keywords: ["dedupe bookmarks", "duplicate bookmark finder", "chrome duplicate bookmarks", "firefox duplicate bookmarks", "clean up bookmarks", "bookmarks html duplicates"]
tool_tag: "dedupe-bookmarks"
related_tool: "dedupe-bookmarks"
related_tools: ["dedupe-bookmarks", "bookmarks-html-to-csv", "csv-to-bookmarks-html", "opml-to-csv"]
og_image: "/images/content/guides/dedupe-bookmarks-cover-20260916.webp"
image_alt: "A light oak tray holds one ribbon bookmark of each colour while spare matching ribbons gather in a white dish."
updated_at: "2026-09-16T10:00:00Z"
---

Remove duplicate bookmarks by exporting them to a `bookmarks.html` file, cleaning that file, and importing it back. FindUtils [Dedupe Bookmarks](/convert/dedupe-bookmarks/) reads the export in your browser, keeps the first copy of every link, and gives back a clean file plus a CSV of what it removed. The tool does not upload or store the file, and it never opens a link.

This guide explains where duplicates come from, how to export from each browser, exactly which links count as the same page, which copy is kept, and how to import the result without doubling everything again.

## Why Do Duplicate Bookmarks Pile Up?

Duplicate bookmarks come from ordinary habits, not from mistakes:

- **Sync:** signing two browsers or two computers into one profile merges both collections.
- **Imports:** importing an old browser's favorites adds them next to what is already there.
- **Tracking tags:** the same article saved from a newsletter carries `?utm_source=newsletter`, and saved again from the site it does not.
- **Anchors:** a link to `#comments` or `#setup` is a second bookmark for the same page.

A bookmark manager shows these as separate rows, often in different folders, so finding them by eye in a collection of hundreds is slow.

## How to Export Bookmarks From Each Browser

| Browser | Steps |
|---|---|
| Chrome | Bookmark manager, then the three-dot menu, then Export bookmarks |
| Firefox | Library window, then Import and Backup, then Export Bookmarks to HTML |
| Edge | Favorites, then the three-dot menu, then Export favorites |
| Safari on a Mac | File, then Export, then Bookmarks, or File, then Export Browsing Data to File in newer versions |

Every one of them writes the same Netscape bookmark file format, so the same tool reads all four.

## How to Remove the Duplicates

Open FindUtils [Dedupe Bookmarks](/convert/dedupe-bookmarks/), upload the `bookmarks.html` file or paste its text, and read the summary line: links read, kept, duplicates removed, repeated addresses and folders. Download the deduplicated file, and download the duplicates CSV if you want a record of what went.

Two options change the comparison. Ignore tracking parameters and Ignore #fragments are on by default; turn either off for a stricter match.

## Which Links Count as the Same Page?

Two bookmarks are duplicates when their addresses match after normalizing. With the default options, these pairs compare as follows:

| Bookmark A | Bookmark B | Result |
|---|---|---|
| `https://Example.com/docs/` | `https://example.com/docs` | Same page: host case and trailing slash are ignored |
| `https://example.com:443/` | `https://example.com/` | Same page: the default port is ignored |
| `https://example.com/a?utm_source=news` | `https://example.com/a` | Same page: utm_ parameters are ignored |
| `https://example.com/a?fbclid=abc` | `https://example.com/a?gclid=xyz` | Same page: fbclid and gclid are ignored |
| `https://example.com/guide#setup` | `https://example.com/guide` | Same page: the #fragment is ignored |
| `https://example.com/list?page=2` | `https://example.com/list?page=3` | Different pages: other parameters always count |
| `http://example.com/` | `https://example.com/` | Different: the scheme is not changed |
| `https://www.example.com/` | `https://example.com/` | Different: a www host is a different host |

Titles never matter. Two bookmarks named differently for one page are still duplicates, and two bookmarks with the same name for different pages are not.

Bookmarklets and other non-web addresses, such as `javascript:` links, are compared exactly as written.

## Which Copy Is Kept, and Where Does It Go?

The first copy in the file is kept, with its own title, its saved date and its folder. Browsers export bookmarks in the order the bookmark manager shows them, so the copy higher up in your collection is the one that stays.

When copies of one link sat in different folders, the link stays in the folder of the first copy. Nothing is moved into a new folder and the tree is not flattened. The summary notes how many addresses were spread across folders, and the duplicates CSV lists every folder each copy was in.

A folder whose links were all duplicates of links elsewhere ends up empty, so it is not written, and the notes say how many folders that affected.

## What Is in the Duplicates CSV?

The duplicates CSV has one row per address that appeared more than once:

| Column | Content |
|---|---|
| normalized_url | The address in the form it was compared in |
| count | How many copies were found |
| titles | Every distinct title the copies had, joined with a vertical bar |
| folder_paths | Every folder a copy sat in, joined with a vertical bar; top-level links show as (top level) |

Keep the CSV until you have checked the imported result. It is the only record of which copies were merged.

## What Is Not Carried Over

The clean file is rebuilt from the links, so a few things stay behind on purpose:

- **Favicons** stored in the export are not written.
- **Firefox tags and descriptions** are not written.
- **Separators** between groups are not written.
- **Empty folders** are not written, because a bookmark file only needs folders that hold links.

Every link that remains keeps its address exactly as it was saved, including any tracking tag on the kept copy.

## How to Import the Clean File

Import the deduplicated file with your browser's bookmark import option. Importing adds bookmarks alongside the ones already in the browser; it does not replace them. To end up with a single clean set, remove or archive the existing bookmarks before importing, and keep the original export as a backup until you are satisfied.

## Practical Examples

**Two synced laptops.** A collection merged from two machines has the whole bookmark bar twice. Every link in the second copy is a duplicate of the first, so the second set of folders ends up empty and is not written.

**A newsletter reader.** Articles saved from email carry utm_ parameters. With Ignore tracking parameters on, each article collapses into one bookmark with the title of the first copy.

**An audit before switching browsers.** Deduplicate first, then convert the clean file with [Bookmarks HTML to CSV](/convert/bookmarks-html-to-csv/) to review every link in a spreadsheet.

## Common Mistakes

**Importing without clearing the old bookmarks.** The browser keeps the old set and adds the clean one, which recreates every duplicate.

**Expecting http and https to merge.** The scheme is part of the address and is never rewritten. Two copies that differ only by http and https are both kept.

**Expecting dead links to be removed.** No link is opened or checked. A bookmark to a page that no longer exists is kept like any other.

**Deleting the original export straight away.** Keep it and the duplicates CSV until the imported result looks right.

## Tools Used in This Guide

| Tool | Use |
|---|---|
| [Dedupe Bookmarks](/convert/dedupe-bookmarks/) | Remove duplicate links from a bookmarks.html export |
| [Bookmarks HTML to CSV](/convert/bookmarks-html-to-csv/) | Review every link in a spreadsheet |
| [CSV to Bookmarks HTML](/convert/csv-to-bookmarks-html/) | Turn an edited spreadsheet back into an importable file |

## FAQ

### Does Chrome have a built-in duplicate bookmark finder?

No. Chrome's bookmark manager can search and sort bookmarks, but it has no option to find or remove duplicates. Exporting the bookmarks, cleaning the export with Dedupe Bookmarks, and importing the result is the no-extension route.

### Which copy of a duplicate bookmark is kept?

The first copy in the exported file is kept, with its title, its saved date and its folder. Later copies are removed and listed in the duplicates CSV.

### Will links that differ only by a tracking tag be merged?

Yes, while Ignore tracking parameters is on. utm_ parameters, fbclid and gclid are ignored when addresses are compared. Every other query parameter still counts.

### Is the bookmarks file uploaded?

No. The export is read and rebuilt inside the browser tab, and no request carries the file.

## Next Steps

Export your bookmarks and clean them with [Dedupe Bookmarks](/convert/dedupe-bookmarks/). To review the result as rows, convert it with [Bookmarks HTML to CSV](/convert/bookmarks-html-to-csv/).
