CSV to Bookmarks HTML
BetaTurn a spreadsheet of links into a bookmarks.html that Chrome, Firefox, Edge and Safari import. Folder paths become folders. Runs in your browser on this page.
- Free, no sign-up
- REST + MCP
- Updated
- Reviewed by Olgun Ozoktas
Every link is placed under this folder, so an import does not scatter links across the bookmarks bar. Clear it to place them at the top level.
The importable bookmarks file will appear here..
How to Convert CSV to Bookmarks HTML
-
Put the links in a sheet with a header row
An address column is required, named url, href or link. A title column and a folder column are optional and recognized under several names. -
Upload the .csv or paste the rows
The separator is detected from the header, and the columns it matched are listed under the output. -
Set a root folder if you want everything under one heading after the import, which is usually easier to review. Clear it to place the links at the top level
-
Download bookmarks.html and import it
Chrome and Edge from the bookmark manager's Import bookmarks, Firefox from Import and Backup, Safari from File and Import From.
Common Use Cases
Re-importing a bookmark collection after cleaning it up in a spreadsheet
Turning a research link list into a browser folder for a project or a course
Sharing a curated set of links with a team in a form they can import in one step
Rebuilding bookmarks from an export of another tool that only produces CSV
Seeding a fresh browser profile with a known set of links
Why Use Our CSV to Bookmarks Converter?
The Netscape bookmark file format is what every browser has imported since the 1990s and what every browser still exports today. It is a nested definition list: a folder is a heading followed by its own list, and a bookmark is an anchor with an optional ADD_DATE attribute. Browsers are strict about the preamble and forgiving about the rest, so this writer emits the full doctype, the generated-file comment, the charset declaration and the heading exactly as a browser does.
The input side matches columns by name, so a sheet exported from a bookmark manager usually needs no configuration: url, href, link and address all mean the address; title, name and label all mean the title; folder, folder_path and path all mean the folder. When no address column can be found, a column map appears so you can point each field at the right column, and that mapping is the same code the API uses.
Two details decide whether the round trip works. Titles and addresses are HTML-escaped, so an ampersand in a query string survives being read back. And the folder separator prefers slash-space when the value contains it, because a folder called AI/ML is common enough that splitting every slash would quietly invent folders. On this page everything runs in the browser, and the sheet is not uploaded.
How it compares
Browsers import bookmarks.html and nothing else, so a cleaned spreadsheet is stuck until something writes that format. Writing it by hand means getting a 1990s doctype and a nested list exactly right. Online builders take the upload, and a link list is a record of what you read. This page writes the format browsers actually accept, rebuilds the folder tree, and keeps the sheet in the tab.
Bookmark Import Tips
- The folder path builds real nested folders. Write Work / Clients for a folder inside a folder. When a value has no slash-space it is split on a bare slash instead, so a single folder genuinely called AI/ML survives rather than becoming two.
- Only the address is required. A row with no title uses its address as the title, which is what a browser shows anyway for an untitled bookmark.
- A bare domain such as example.com gains https:// so the browser treats it as a link. Anything with a scheme is kept exactly as written, including bookmarklets and file:// links.
- Rows sharing a folder path are merged under one heading, so a hundred rows in the same folder produce one folder, not a hundred.
- A row with no usable address is skipped and named by its row number under the output, counting the header as row 1. Fix the cell and paste again; every other row is still in the file.
- Importing a file into a browser that already holds the same links creates duplicates. Export afterwards and run Dedupe Bookmarks to clean them up.