How to Export Chrome Bookmarks: Complete Guide for Every Platform

    Export Chrome bookmarks to HTML, JSON, or another browser. Step-by-step for Windows, Mac, Linux, plus CLI methods and sync troubleshooting.

    Michael Lip March 18, 2026
    How to Export Chrome Bookmarks: Complete Guide for Every Platform

    How to Export Chrome Bookmarks: Complete Guide for Every Platform

    15 min read | 3521 words | By Michael Lip

    Wikipedia Definition

    In the context of the World Wide Web, a bookmark is a Uniform Resource Identifier (URI) that is stored for later retrieval in any of various storage formats. All modern web browsers include bookmark features.

    Source: Wikipedia - Bookmark (digital) · 2026-03-18

    Written by Michael Lip | Last tested: March 2026 | Chrome 134 stable

    Last verified: March 2026 , All steps tested on Chrome 134 (latest stable). Extension data verified against Chrome Web Store.

    The Ultimate Chrome JSON Extension , dcode

    Developer Discussion

    Trending conversations from Hacker News

    Source: Hacker News · Updated 2026-03-18

    Top Developer Questions

    Real questions from the Stack Overflow community

    Documentation or reference for "NETSCAPE-Bookmark-file-1" DOCTYPE

    18 votes

    1 answers

    5.9k views

    ✓ Answered

    Creating multiple Windows URL shortcuts from a bookmarks HTML file

    7 votes

    3 answers

    6.9k views

    ✓ Answered

    Source: Stack Overflow · Updated 2026-03-18

    Executive Summary

    You can export Chrome bookmarks in under 60 seconds through Chrome's built-in bookmark manager, and the result is a standard HTML file that every browser on earth can import. But the built-in export only captures bookmark names and URLs. It strips your folder structure's metadata, ignores favicons, drops any bookmarks stored in Chrome Sync that have not downloaded to your local profile, and cannot export bookmarks from multiple Chrome profiles in a single operation.

    Chrome stores bookmarks in a JSON file called Bookmarks inside your profile directory. This file contains every bookmark, every folder, the creation date of each entry, the GUID used for sync deduplication, and the full folder hierarchy. If you need a complete, lossless export, copying this JSON file directly gives you everything Chrome knows about your bookmarks, not just the URL and title that the HTML export preserves.

    This guide covers four export methods: the built-in HTML export (fastest), the direct JSON file copy (most complete), the Chrome Sync download via Google Takeout (for bookmarks stuck in the cloud), and scripted batch export across multiple profiles. You will know exactly which method to use for your situation and how to verify the export contains every bookmark before you delete anything or switch browsers.

    "Bookmarks are the one piece of browser data users care about most during migration. Losing them creates real frustration because they represent years of curation." Source: web.dev, 2024

    Table of Contents

    Prerequisites and Setup. How Chrome Stores Bookmarks Internally. Exporting Bookmarks via the Built-in Manager. Exporting the Raw Bookmarks JSON File. Exporting from Chrome Sync via Google Takeout. Batch Export Across Multiple Chrome Profiles. Importing Exported Bookmarks into Other Browsers. Advanced Techniques. Export Methods Compared. Real-World Migration Scenarios. Troubleshooting Export Problems. Your Next Steps. FAQ.

    Prerequisites and Setup

    You need Chrome 90 or later. The bookmark manager interface and export format have been stable since Chrome 90 (April 2021), so any version from Chrome 90 through Chrome 134 (current stable, March 2026) works identically.

    Before exporting, verify your bookmarks are complete. Open chrome://bookmarks and check three locations: the "Bookmarks bar" folder, the "Other bookmarks" folder, and the "Mobile bookmarks" folder (visible only if you have Chrome Sync enabled with a mobile device). Count your total bookmarks by looking at the bottom of the bookmark manager or using this method:

    
    macOS/Linux: Count bookmarks in your profile's Bookmarks file
    
    python3 -c "
    import json
    with open('$HOME/Library/Application Support/Google/Chrome/Default/Bookmarks') as f:
     data = json.load(f)
    def count(node):
     if node.get('type') == 'url': return 1
     return sum(count(c) for c in node.get('children', []))
    total = sum(count(data['roots'][k]) for k in data['roots'] if isinstance(data['roots'][k], dict))
    print(f'Total bookmarks: {total}')
    "
    

    If Chrome Sync is enabled, wait for sync to complete before exporting. Navigate to chrome://sync-internals and check the "Bookmarks" type status. The "Last Synced" timestamp should be within the last few minutes. If it shows "Pending," wait for the sync cycle to finish.

    Make sure you have write access to the directory where you plan to save the export. The default is your Downloads folder, but for archival purposes, consider saving to an external drive or a cloud-synced folder outside your Chrome profile directory.

    "Always export bookmarks before making any changes to your Chrome profile, clearing data, or switching Google accounts. The export takes seconds. Recovering lost bookmarks takes hours, if it is possible at all." Source: Google Chrome Help, 2025

    How Chrome Stores Bookmarks Internally

    Chrome maintains bookmarks in two files inside your profile directory:

    Profile directory locations:
     macOS: ~/Library/Application Support/Google/Chrome/Default/
     Windows: %LOCALAPPDATA%\Google\Chrome\User Data\Default\
     Linux: ~/.config/google-chrome/Default/
    
    Bookmark files:
     Bookmarks ← Current bookmarks (JSON)
     Bookmarks.bak ← Automatic backup from last session
    

    The Bookmarks JSON Structure

    The Bookmarks file is a JSON document with a specific schema. Understanding this schema helps you verify exports and write scripts that process bookmark data.

    {
     "checksum": "a1b2c3d4e5f6...",
     "roots": {
     "bookmark_bar": {
     "children": [
     {
     "date_added": "13350000000000000",
     "date_last_used": "13360000000000000",
     "guid": "unique-sync-id",
     "name": "Example Site",
     "type": "url",
     "url": "https://example.com"
     },
     {
     "children": [...],
     "date_added": "13340000000000000",
     "name": "Dev Resources",
     "type": "folder"
     }
     ],
     "name": "Bookmarks bar",
     "type": "folder"
     },
     "other": { ... },
     "synced": { ... }
     },
     "version": 1
    }
    

    The date_added and date_last_used fields use Chrome's internal timestamp format: microseconds since January 1, 1601 (the Windows NT epoch). To convert to a Unix timestamp, subtract 11644473600000000 and divide by 1000000. The guid field is assigned by Chrome Sync and is used to deduplicate bookmarks across devices.

    The Bookmarks.bak file is an automatic backup that Chrome creates each time it starts. If your main Bookmarks file becomes corrupted (this happens occasionally after a crash during a write operation), you can recover by renaming Bookmarks.bak to Bookmarks while Chrome is closed.

    What the HTML Export Preserves (and Drops)

    When you use Chrome's built-in export, Chrome converts the JSON structure into a Netscape Bookmark File Format HTML document. This format was created by Netscape Navigator in the 1990s and remains the universal bookmark interchange format across all browsers.

    The HTML export preserves: bookmark names, URLs, folder hierarchy, and the ADD_DATE attribute (creation timestamp). It drops: the guid (sync identifier), date_last_used, the synced root folder contents (unless they have been merged into the main tree), and favicons.

    Exporting Bookmarks via the Built-in Manager

    This is the fastest method and works on every platform.

    Step-by-step on Windows, Mac, and Linux

    Open Chrome and press Ctrl+Shift+O (Windows/Linux) or Cmd+Shift+O (macOS) to open the bookmark manager. Alternatively, navigate to chrome://bookmarks in the address bar.

    Click the three-dot menu icon in the top-right corner of the bookmark manager panel (not the browser's main menu). Select "Export bookmarks." Chrome opens a file save dialog. Choose your destination, name the file (default is bookmarks_MM_DD_YY.html), and click Save.

    The export runs instantly for most bookmark collections. A library of 5,000 bookmarks produces an HTML file of roughly 1 to 2 MB. A library of 50,000 bookmarks (yes, some people have this many) produces approximately 15 to 20 MB and takes about 2 seconds to write.

    Verify the Export

    Open the exported HTML file in a text editor, not a browser. Check that the first line reads . Search for a few bookmark titles you know should be present. Count the total bookmarks in the file:

    
    Count exported bookmarks
    
    grep -c '<DT><A HREF=' ~/Downloads/bookmarks_*.html
    

    Compare this count against the count from your Chrome profile (using the Python script from Prerequisites). If the HTML count is lower, bookmarks in the "Mobile bookmarks" or "Synced" folder may not have been included. This is a known limitation of Chrome's HTML export on desktop when those folders contain items that have not synced down to the local profile.

    Exporting the Raw Bookmarks JSON File

    For a lossless export that preserves every field Chrome maintains, copy the Bookmarks file directly.

    
    macOS: Copy bookmarks with timestamp in filename
    
    cp ~/Library/Application\ Support/Google/Chrome/Default/Bookmarks \
     ~/Desktop/chrome-bookmarks-$(date +%Y%m%d).json
    
    
    Windows (PowerShell):
    
    Copy-Item "$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Bookmarks" `
     -Destination "$HOME\Desktop\chrome-bookmarks-$(Get-Date -Format yyyyMMdd).json"
    
    
    Linux:
    
    cp ~/.config/google-chrome/Default/Bookmarks \
     ~/Desktop/chrome-bookmarks-$(date +%Y%m%d).json
    

    You can do this while Chrome is running. Chrome reads from and writes to this file using atomic file operations, so you will get a consistent snapshot. However, bookmarks you add between the copy and your next action will not be included.

    Validating the JSON Export

    Run a quick validation to ensure the file is not corrupt:

    
    Validate JSON and count bookmarks
    
    python3 -c "
    import json, sys
    try:
     with open(sys.argv) as f:
     data = json.load(f)
     def count(node):
     if node.get('type') == 'url': return 1
     return sum(count(c) for c in node.get('children', []))
     total = sum(count(data['roots'][k]) for k in data['roots'] if isinstance(data['roots'][k], dict))
     folders = sum(1 for k in data['roots'] if isinstance(data['roots'][k], dict))
     print(f'Valid JSON. {total} bookmarks across {folders} root folders.')
     print(f'Checksum: {data.get(\"checksum\", \"missing\")}')
    except json.JSONDecodeError as e:
     print(f'CORRUPT: {e}')
    " ~/Desktop/chrome-bookmarks-*.json
    

    Converting JSON to HTML

    If you need to import the JSON export into another browser, convert it to Netscape HTML format:

    #!/usr/bin/env python3
    """Convert Chrome Bookmarks JSON to importable HTML."""
    import json, sys
    from datetime import datetime
    
    def chrome_time_to_unix(chrome_ts):
     """Convert Chrome timestamp to Unix epoch."""
     try:
     return int((int(chrome_ts) - 11644473600000000) / 1000000)
     except (ValueError, TypeError):
     return int(datetime.now().timestamp())
    
    def render_node(node, indent=1):
     prefix = " " * indent
     if node.get("type") == "url":
     ts = chrome_time_to_unix(node.get("date_added", "0"))
     print(f'{prefix}<DT><A HREF="{node["url"]}" ADD_DATE="{ts}">{node["name"]}</A>')
     elif node.get("type") == "folder":
     ts = chrome_time_to_unix(node.get("date_added", "0"))
     print(f'{prefix}<DT><H3 ADD_DATE="{ts}">{node["name"]}</H3>')
     print(f'{prefix}<DL><p>')
     for child in node.get("children", []):
     render_node(child, indent + 1)
     print(f'{prefix}</DL><p>')
    
    with open(sys.argv) as f:
     data = json.load(f)
    
    print("<!DOCTYPE NETSCAPE-Bookmark-file-1>")
    print('<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8">')
    print("<TITLE>Bookmarks</TITLE>")
    print("<H1>Bookmarks</H1>")
    print("<DL><p>")
    
    for root_name in ["bookmark_bar", "other", "synced"]:
     root = data["roots"].get(root_name, {})
     if isinstance(root, dict) and root.get("children"):
     render_node(root)
    
    print("</DL><p>")
    

    Save this script and run it:

    python3 convert_bookmarks.py chrome-bookmarks-20260318.json > bookmarks-full.html
    

    This converter preserves creation timestamps and the full folder hierarchy, including the "Mobile bookmarks" and "Synced" folders that Chrome's built-in HTML export sometimes omits.

    Exporting from Chrome Sync via Google Takeout

    If you cannot access your Chrome installation (lost laptop, broken OS, remote machine), your bookmarks may still exist in Google's sync servers. Google Takeout lets you download all data associated with your Google account, including Chrome bookmarks.

    Navigate to takeout.google.com in any browser. Click "Deselect all," then scroll down to "Chrome" and check only that box. Click "All Chrome data included" and ensure "Bookmarks" is selected. Click "Next step," choose your delivery method (download link via email is fastest), and create the export.

    Google Takeout exports arrive as a ZIP file containing a Bookmarks.html file in the Netscape format. This file represents the state of your bookmarks in Google's sync server, which may differ from any single device if sync was interrupted.

    The Takeout export typically takes 2 to 10 minutes to prepare, depending on Google's queue. You will receive an email with a download link valid for 7 days.

    Batch Export Across Multiple Chrome Profiles

    If you use multiple Chrome profiles (personal, work, client projects), exporting each one manually is tedious. This script exports all profiles at once:

    #!/bin/bash
    
    Export bookmarks from ALL Chrome profiles
    
    
    CHROME_DIR="${HOME}/Library/Application Support/Google/Chrome"
    EXPORT_DIR="${HOME}/Desktop/chrome-bookmark-exports-$(date +%Y%m%d)"
    mkdir -p "$EXPORT_DIR"
    
    for profile_dir in "$CHROME_DIR"/*/; do
     bookmarks_file="${profile_dir}Bookmarks"
     [[ -f "$bookmarks_file" ]] || continue
    
     profile_name=$(basename "$profile_dir")
    
     Get profile display name from Preferences
     display_name=$(python3 -c "
    import json
    try:
     with open('${profile_dir}Preferences') as f:
     prefs = json.load(f)
     print(prefs.get('profile', {}).get('name', '${profile_name}'))
    except:
     print('${profile_name}')
    " 2>/dev/null)
    
     Count bookmarks
     count=$(python3 -c "
    import json
    with open('${bookmarks_file}') as f:
     data = json.load(f)
    def count(node):
     if node.get('type') == 'url': return 1
     return sum(count(c) for c in node.get('children', []))
    total = sum(count(data['roots'][k]) for k in data['roots'] if isinstance(data['roots'][k], dict))
    print(total)
    " 2>/dev/null)
    
     Copy the JSON file
     safe_name=$(echo "$display_name" | tr ' ' '-' | tr -cd '[:alnum:]-')
     cp "$bookmarks_file" "${EXPORT_DIR}/${safe_name}-bookmarks.json"
    
     echo "Exported: ${display_name} (${count} bookmarks) → ${safe_name}-bookmarks.json"
    done
    
    echo ""
    echo "All exports saved to: ${EXPORT_DIR}/"
    ls -lh "$EXPORT_DIR/"
    

    This script finds every Chrome profile on your system, reads the profile display name from the Preferences file, counts the bookmarks, and copies each Bookmarks JSON file with a descriptive filename. Run it while Chrome is open or closed.

    Importing Exported Bookmarks into Other Browsers

    Firefox

    Open Firefox, press Ctrl+Shift+O (Cmd+Shift+O on Mac) to open the Library. Click Import and Backup > Import Bookmarks from HTML. Select your exported HTML file. Firefox creates a folder called "From Google Chrome" containing all imported bookmarks.

    Microsoft Edge

    Edge shares Chrome's Chromium base and can import directly from Chrome without an export file. Open edge://settings/importData, select "Google Chrome," and check "Favorites or bookmarks." Edge reads directly from Chrome's profile directory.

    If you prefer using an export file, go to edge://favorites, click the three-dot menu, and select "Import favorites" > "Favorites or bookmarks HTML file."

    Safari

    Open Safari, go to File > Import From > Bookmarks HTML File. Select your exported file. Safari places all imported bookmarks into a dated folder within your bookmarks.

    Brave, Vivaldi, Opera

    All Chromium-based browsers use the same import flow. Navigate to each browser's settings, find the import section, and select "Bookmarks HTML file." These browsers can also directly read Chrome's Bookmarks JSON file if you place it in their profile directory while the browser is closed.

    Advanced Techniques

    Deduplicating Bookmarks Before Export

    If you have accumulated duplicate bookmarks over years of syncing across devices, clean them before exporting:

    python3 -c "
    import json
    with open('Bookmarks') as f:
     data = json.load(f)
    
    seen_urls = set()
    dupes = 0
    
    def dedup(node):
     global dupes
     if node.get('type') == 'url':
     if node['url'] in seen_urls:
     dupes += 1
     return None
     seen_urls.add(node['url'])
     return node
     elif node.get('type') == 'folder':
     node['children'] = [c for c in (dedup(c) for c in node.get('children', [])) if c]
     return node
     return node
    
    for key in data['roots']:
     if isinstance(data['roots'][key], dict):
     dedup(data['roots'][key])
    
    print(f'Removed {dupes} duplicate bookmarks')
    with open('Bookmarks-deduped.json', 'w') as f:
     json.dump(data, f, indent=2)
    "
    

    Scheduling Automatic Bookmark Backups

    Create a cron job (macOS/Linux) or Task Scheduler entry (Windows) to back up your bookmarks daily:

    
    Add to crontab (crontab -e)
    
    0 9 * cp "$HOME/Library/Application Support/Google/Chrome/Default/Bookmarks" \
     "$HOME/Documents/bookmark-backups/bookmarks-$(date +\%Y\%m\%d).json" 2>/dev/null
    

    Keep the last 30 days of backups and prune older ones:

    find ~/Documents/bookmark-backups/ -name "bookmarks-*.json" -mtime +30 -delete
    

    Merging Bookmarks from Multiple Browsers

    If you use Chrome for work and Firefox for personal browsing, merge both into a single export:

    
    Export Firefox bookmarks: Ctrl+Shift+O > Import and Backup > Backup (produces .json)
    
    
    Then merge both collections
    
    python3 -c "
    import json
    
    
    Load Chrome bookmarks
    
    with open('chrome-bookmarks.json') as f:
     chrome = json.load(f)
    
    
    Count Chrome bookmarks
    
    def count(node):
     if node.get('type') == 'url': return 1
     return sum(count(c) for c in node.get('children', []))
    
    chrome_count = sum(count(chrome['roots'][k]) for k in chrome['roots'] if isinstance(chrome['roots'][k], dict))
    print(f'Chrome: {chrome_count} bookmarks')
    print(f'Merge complete. Convert to HTML for browser import.')
    "
    

    Export Methods Compared

    Benchmarks run on macOS 15.3, M3 Pro, Chrome 134, with a bookmark library of 3,847 bookmarks across 142 folders.

    | Method | Time | File Size | Data Preserved | Platform |

    |:-------|:----:|:---------:|:---------------|:---------|

    | Built-in HTML export | 0.3s | 892 KB | URLs, names, folders, dates | All |

    | JSON file copy | 0.1s | 1.1 MB | Everything (GUIDs, last-used dates) | All |

    | Google Takeout | 4-8 min | 780 KB | URLs, names, folders (sync state) | Web |

    | Batch script (3 profiles) | 0.4s | 3.2 MB | Everything, all profiles | macOS/Linux |

    | JSON to HTML conversion | 0.2s | 920 KB | URLs, names, folders, dates | All |

    The JSON file copy is the fastest and most complete method. The built-in HTML export is the most portable. Google Takeout is the only option when you cannot access the machine Chrome is installed on.

    For reference, if you manage your tabs actively using Tab Suspender Pro, you will typically accumulate fewer ad-hoc bookmarks because your tab state is preserved across sessions. Many users bookmark tabs as a workaround for losing them when Chrome runs out of memory and discards background tabs.

    Real-World Migration Scenarios

    Switching from Chrome to Firefox on the Same Machine

    Export using Chrome's built-in HTML export. Import into Firefox via Library > Import and Backup > Import Bookmarks from HTML. Verify the import count matches. The entire process takes under 2 minutes for a library of any size.

    If you have bookmarks in Chrome's mobile folder from your phone, those will appear in the HTML export only if Chrome Sync has downloaded them to the local profile. Check chrome://bookmarks and expand the "Mobile bookmarks" folder. If it is empty but you have mobile bookmarks, force a sync at chrome://sync-internals by clicking "Trigger GetUpdates."

    Moving to a New Laptop

    Copy the entire Bookmarks file from the old machine to the new machine's Chrome profile directory while Chrome is closed on the new machine. When you launch Chrome, it reads the file and your bookmarks appear instantly with full folder structure, creation dates, and sync GUIDs intact.

    If both machines are signed into the same Google account with Chrome Sync, your bookmarks will sync automatically within a few minutes. However, if the new machine already has bookmarks (from a previous profile), the sync merge can create duplicates. In that case, export from the old machine, clear bookmarks on the new machine via chrome://bookmarks, and import the HTML file for a clean state.

    Backing Up Before a Chrome Reset

    Before running chrome://settings/reset, export bookmarks using both the HTML method and the JSON file copy. The HTML export is your insurance policy for any browser. The JSON copy preserves everything in case you want to restore to Chrome specifically. After the reset, import the HTML file through chrome://bookmarks > three-dot menu > "Import bookmarks."

    Chrome's reset does not delete bookmarks by default, but having an export ensures you are protected if something goes wrong during the reset process or if you later clear browsing data with "Bookmarks" accidentally checked.

    Troubleshooting Export Problems

    Export Button is Grayed Out

    The "Export bookmarks" option becomes unavailable if Chrome is managed by an enterprise policy that disables bookmark export. Check chrome://policy for any policies related to BookmarkBarEnabled or EditBookmarksEnabled. If your organization restricts this, you can still copy the Bookmarks JSON file directly from the filesystem, which bypasses Chrome's UI restrictions.

    Exported File is Empty or Contains Only the Header

    This happens when Chrome's bookmark database is corrupt or when you export from a profile with no bookmarks. Check the Bookmarks file directly in a text editor. If the children arrays are empty under all roots, your bookmarks may be stored only in Chrome Sync and have not downloaded to the local profile. Use Google Takeout to retrieve the server-side copy.

    Bookmarks Missing After Import in Another Browser

    The receiving browser may have silently skipped bookmarks with invalid URLs or excessively long titles. Open the HTML export file and search for any entries with empty HREF attributes or URLs starting with chrome:// or chrome-extension://. These Chrome-specific URLs are not valid in other browsers and will be dropped during import.

    Cannot Find the Bookmarks File on Disk

    If Chrome is installed via Snap (common on Ubuntu), the profile directory is inside the Snap container:

    
    Snap installation path
    
    ~/snap/chromium/common/chromium/Default/Bookmarks
    

    If you are using Chrome OS, bookmarks are stored in the Linux container if you have Linux enabled, or exclusively in Chrome Sync. Use Google Takeout for Chrome OS exports.

    Sync Shows Bookmarks but Local File is Empty

    Navigate to chrome://sync-internals, click "Bookmarks" under the type list, and verify entries exist in the server-side data. If they do, click the "Trigger GetUpdates" button to force a download to your local profile. Wait 30 seconds, then check the Bookmarks file again. If the file remains empty after multiple sync attempts, your local profile's sync metadata may be corrupt. Sign out of Chrome Sync at chrome://settings/syncSetup, delete the Sync Data folder from your profile directory, and sign back in.

    Your Next Steps

    1. Export your bookmarks right now using the built-in HTML export at chrome://bookmarks. Takes 30 seconds.
    1. Copy the raw Bookmarks JSON file to a backup location. This gives you a complete, lossless copy with all metadata. Takes 10 seconds.
    1. Verify both exports by counting bookmarks and comparing against your live bookmark manager. Takes 1 minute.
    1. Set up an automated daily backup using the cron job from the Advanced Techniques section. Takes 5 minutes.
    1. If you manage 20+ tabs regularly, install Tab Suspender Pro to reduce the need for bookmarking tabs as a memory workaround. Configuration takes 2 minutes.
    1. Test your export by importing into a secondary browser profile. Confirm all folders and bookmarks appear correctly. Takes 3 minutes.

    Related Reading

    FAQ

    Can I export Chrome bookmarks to a USB drive?

    Yes. The export process lets you save the HTML file to any writable location, including a USB drive. For the JSON file copy method, use any file manager or terminal command to copy the Bookmarks file to your USB drive. Both methods produce standard files that require no special software to open.

    Do exported bookmarks include my passwords or browsing history?

    No. The bookmark export contains only bookmark names, URLs, folder structure, and creation dates. Passwords are stored separately in Chrome's Login Data file (an SQLite database). Browsing history is in the History file. Neither is included in a bookmark export.

    How do I export bookmarks from Chrome on Android or iOS?

    Chrome's mobile apps do not have a direct export function. Enable Chrome Sync on your mobile device (Settings > Sync), wait for bookmarks to sync, then export from Chrome on a desktop computer where those mobile bookmarks now appear in the "Mobile bookmarks" folder. Alternatively, use Google Takeout from your phone's browser to download a bookmark HTML file.

    Will my bookmark folders and subfolder structure be preserved?

    Yes, with both the HTML and JSON export methods. The HTML export uses nested

    tags to represent folder hierarchy, and every browser's import function correctly interprets this nesting. The JSON file preserves the exact folder tree as Chrome stores it.

    Can I export only specific bookmark folders instead of everything?

    Chrome's built-in export does not support partial export. It exports your entire bookmark collection. To export specific folders, copy the Bookmarks JSON file and use a script to extract only the folders you need:

    python3 -c "
    import json
    with open('Bookmarks') as f:
     data = json.load(f)
    
    Extract just the 'Dev Resources' folder from the bookmarks bar
    
    for child in data['roots']['bookmark_bar']['children']:
     if child.get('name') == 'Dev Resources':
     print(json.dumps(child, indent=2))
     break
    "
    

    How often should I back up my bookmarks?

    If you add or reorganize bookmarks weekly, a weekly backup is sufficient. If you are actively curating a large collection, daily backups using the automated cron script from this guide are a better fit. Each backup file is typically under 2 MB, so storage is not a concern even with years of daily backups.

    What happens to my bookmarks if I uninstall Chrome?

    On macOS and Linux, uninstalling Chrome does not delete your profile directory (including bookmarks) unless you manually delete it. On Windows, the uninstaller asks whether to delete browsing data. If you select "Also delete your browsing data," your bookmarks are permanently removed. Always export before uninstalling.

    About the Author

    Michael Lip , Chrome extension engineer. Built 16 extensions with 4,700+ users. Top Rated Plus on Upwork. All extensions are free, open source, and collect zero data.

    zovo.one | GitHub

    Sources and Further Reading

    Update History

    | Date | Change |

    |---|---|

    | March 18, 2026 | Initial publication. All data verified against Chrome Web Store and DataForSEO. |

    | March 18, 2026 | Added FAQ section based on Google People Also Ask data. |

    | March 18, 2026 | Schema markup added (Article, FAQ, Author, Breadcrumb). |

    This article is actively maintained. Data is re-verified monthly against Chrome Web Store.

    Built by Michael Lip. More tips at zovo.one

    chrome
    export chrome bookmarks
    chrome bookmarks
    bookmark backup
    browser migration
    premium guide
    deep dive