GuidesExport Bookmarks and History

Export Chrome bookmarks to CSV

Chrome only exports bookmarks as an HTML file. To get a CSV you can read Chrome's own Bookmarks file with a short script, or use an extension that writes the CSV directly. Both can keep the folder each bookmark sits in.

Chrome's own export gives you HTML

  1. Open the bookmark manager: Ctrl+Shift+O, or the Chrome menu, then Bookmarks and lists, then Bookmark manager.
  2. Click the three-dot Organize button at the top right of the manager (not the one on a bookmark row).
  3. Click Export bookmarks and save the file. Chrome names it after the date, for example bookmarks_10_14_26.html.
Chrome's bookmark manager with the Organize menu open and Export bookmarks highlighted
The Organize menu in Chrome's bookmark manager.

That file is the old Netscape bookmark format, the one every browser can import. Folders are nested lists inside it, so a spreadsheet app opens it as a page of links rather than as rows and columns.

Read Chrome's Bookmarks file with Python

Chrome keeps your bookmarks in a JSON file called Bookmarks in your profile folder. Open chrome://version and look at Profile Path to find it; on Windows it is usually %LOCALAPPDATA%\Google\Chrome\User Data\Default, and on a Mac ~/Library/Application Support/Google/Chrome/Default. This script turns it into a CSV with the folder path and the date each bookmark was added:

import csv, json, sys
from datetime import datetime, timedelta, timezone

# Chrome stores times as microseconds since 1 January 1601.
EPOCH = datetime(1601, 1, 1, tzinfo=timezone.utc)

def walk(node, path, rows):
    if node.get("type") == "url":
        added = EPOCH + timedelta(microseconds=int(node.get("date_added", "0")))
        rows.append([node["name"], node["url"], " / ".join(path), added.strftime("%Y-%m-%d")])
    for child in node.get("children", []):
        walk(child, path + [node["name"]], rows)

with open(sys.argv[1], encoding="utf-8") as f:
    roots = json.load(f)["roots"]
rows = []
for key in ("bookmark_bar", "other", "synced"):
    walk(roots[key], [], rows)
with open("bookmarks.csv", "w", newline="", encoding="utf-8-sig") as f:
    out = csv.writer(f)
    out.writerow(["title", "url", "folder_path", "date_added"])
    out.writerows(rows)
print(len(rows), "bookmarks written to bookmarks.csv")

Save it as bookmarks_to_csv.py and run python bookmarks_to_csv.py "PATH\TO\Bookmarks". It only reads the file, so it is safe to run while Chrome is open. The CSV is written with a byte order mark so Excel shows accented titles correctly.

With Export Bookmarks and History

If you would rather not run a script, my extension writes the same kind of CSV from a toolbar button, with filters and a preview first.

  1. Click the extension's icon. The Bookmarks tab shows how many bookmarks you have.
  2. Pick a folder if you only want part of the tree, and add a domain, date or text filter if you need one. The count and the 50-row preview update as you go.
  3. Click CSV. The file lands in Downloads with a name like bookmarks-2026-10-14_2301.csv. HTML and JSON are next to it.
The Export Bookmarks and History popup with the Work folder chosen, showing 303 rows and a preview table of titles
The Work folder of a test profile, 303 bookmarks, with the preview open.
titleurlfolder_pathdate_added
CSS grid layout - CSS | MDNhttps://developer.mozilla.org/en-US/docs/Web/CSS/CSS_grid_layoutBookmarks bar / Work / Projects / Website redesign2026-09-04 22:57:41
Basic concepts of flexbox - CSS | MDNhttps://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexboxBookmarks bar / Work / Projects / Website redesign2026-09-05 22:57:41
prefers-color-scheme - CSS | MDNhttps://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-schemeBookmarks bar / Work / Projects / Website redesign2026-09-06 22:57:41
Web Content Accessibility Guidelines - Wikipediahttps://en.wikipedia.org/wiki/Web_Content_Accessibility_GuidelinesBookmarks bar / Work / Projects / Website redesign2026-09-07 22:57:41
Responsive web design - Wikipediahttps://en.wikipedia.org/wiki/Responsive_web_designBookmarks bar / Work / Projects / Website redesign2026-09-08 22:57:41
The first rows of the CSV that export saved, four of its 14 columns. The others are the bookmark's ID and type, parent folder, position, depth, date last used, ISO dates and domain.

Bookmarks export without Pro, as CSV, HTML or JSON, with no row limit. Pro adds XLSX workbooks, a duplicate-URL column, a broken-link check, browsing history and scheduled backups. The extension only reads; it never changes or deletes a bookmark.

Updated 14 October 2026.