DEV Community

Michael Lip
Michael Lip

Posted on • Originally published at zovo.one

I Recovered Years of Chrome Bookmarks in Under 5 Minutes. Here's How.

You open Chrome and every bookmark is gone. The bar is empty. Years of saved links, research folders, and carefully organized collections have vanished.

Full disclosure: I built these tools as part of Zovo, a collection of Chrome extensions I maintain at zovo.one. Take my perspective accordingly.

Do not panic, and do not close Chrome yet. Your bookmarks are almost certainly still on your hard drive. Chrome stores bookmark data in a local JSON file, and in most cases a backup copy exists right next to it. If you act before Chrome overwrites that backup, recovery takes less than five minutes.

Why Bookmarks Disappear

Chrome stores bookmarks in two files inside your profile directory: Bookmarks (the active file) and Bookmarks.bak (the automatic backup). Both are plain JSON.

The most common causes I have seen:

  • Chrome update overwrites the profile. A crash or shutdown during an auto-update can reset the Bookmarks file to an empty JSON structure. The file passes validation but contains zero entries.
  • Profile corruption. A crash mid-write leaves the file truncated or filled with null bytes.
  • Sync conflicts. If Chrome Sync reconnects after being offline, it can treat an empty local state as authoritative and wipe bookmarks across all devices.
  • Extension interference. Extensions with the bookmarks permission (duplicate finders, folder organizers) can accidentally delete entries programmatically.

Understanding the Bookmarks File

Before diving into recovery, it helps to know what you are working with. The Bookmarks file is plain JSON. A valid one looks like this at the top:

{
   "checksum": "...",
   "roots": {
      "bookmark_bar": {
         "children": [
Enter fullscreen mode Exit fullscreen mode

If your file contains garbled text, null characters, or is truncated mid-JSON, it is corrupted. If it is valid JSON but the children arrays are empty, Chrome wiped the entries but kept the structure. Either way, recovery is possible.

The Bookmarks.bak Recovery Method

This works in roughly 80% of cases. Chrome automatically creates this backup, and it almost always contains your most recent bookmarks.

Step 1: Close Chrome completely. Verify it is not running in the background. This is critical because Chrome will overwrite the backup file if it detects the bookmarks file was modified externally while running.

# macOS
pkill -f "Google Chrome"

# Windows (PowerShell)
Stop-Process -Name "chrome" -Force

# Linux
pkill chrome
Enter fullscreen mode Exit fullscreen mode

Step 2: Find your profile directory.

Platform Path
Windows %LOCALAPPDATA%\Google\Chrome\User Data\Default\
macOS ~/Library/Application Support/Google/Chrome/Default/
Linux ~/.config/google-chrome/Default/

If you use multiple profiles, replace Default with Profile 1, Profile 2, etc. You can check chrome://version to see the exact path.

Step 3: Compare the files.

# macOS/Linux
ls -la ~/Library/Application\ Support/Google/Chrome/Default/Bookmarks*
Enter fullscreen mode Exit fullscreen mode

If Bookmarks.bak is significantly larger than Bookmarks, it contains your missing data.

Step 4: Restore.

cd ~/Library/Application\ Support/Google/Chrome/Default/
cp Bookmarks Bookmarks.corrupted
cp Bookmarks.bak Bookmarks
Enter fullscreen mode Exit fullscreen mode

On Windows PowerShell:

cd "$env:LOCALAPPDATA\Google\Chrome\User Data\Default"
Copy-Item Bookmarks Bookmarks.corrupted
Copy-Item Bookmarks.bak Bookmarks
Enter fullscreen mode Exit fullscreen mode

Open the restored file in a text editor first and verify it contains valid JSON with your bookmark data. Look for your folder names and URLs. Then relaunch Chrome. Your bookmarks should be back.

If the Bookmarks.bak file is also empty or corrupted, move to the next method.

Chrome Sync Recovery

If both local files are damaged, Google's servers may still have a copy.

  1. Open chrome://sync-internals and check the "Type Info" tab. If the Bookmarks count is greater than zero, your data exists on Google's servers.
  2. Turn off sync at chrome://settings/syncSetup.
  3. Close Chrome. Delete the Sync Data folder from your profile directory.
  4. Relaunch, sign back in, enable sync. Wait 5-10 minutes.

As a last resort, use Google Takeout. Select only "Chrome," export, and import the Bookmarks.html file through chrome://bookmarks.

Extracting Data from Corrupted Files

Even corrupted JSON files may contain recoverable URLs:

grep -oP '"url":\s*"[^"]*"' Bookmarks | sed 's/"url":\s*"//;s/"$//' > recovered_urls.txt
wc -l recovered_urls.txt
Enter fullscreen mode Exit fullscreen mode

This pulls every URL it can find, regardless of JSON structure. You can then import the list manually or use a bookmark import tool.

Edge Cases Worth Knowing

Bookmarks disappeared on Android: Open Chrome, go to Settings, then Sync and Google services. Verify sync is enabled and you are signed into the correct account. Clear Chrome's app cache (not data) through Android Settings, then Apps, then Chrome, then Storage, then Clear cache.

Bookmarks gone across all devices simultaneously: This points to a sync-level event. Someone with access to your Google account may have reset Chrome Sync data at chrome.google.com/sync, or deleted bookmarks on one device which synced everywhere. Check your Google account security at myaccount.google.com/security for recent activity.

Bookmarks missing after OS migration: When migrating to a new machine, Chrome profiles should transfer automatically. If bookmarks are missing, check whether Chrome created a new profile instead of using the migrated one. The old profile's Bookmarks file may still exist under the previous username's directory.

Preventing Future Loss

I set up a daily cron job to back up my Bookmarks file:

# Add to crontab (crontab -e)
0 9 * * * cp ~/Library/Application\ Support/Google/Chrome/Default/Bookmarks ~/Documents/chrome-bookmarks-backup/Bookmarks-$(date +\%Y\%m\%d).json
Enter fullscreen mode Exit fullscreen mode

The file is tiny (under 500KB even with thousands of bookmarks), so storage is not a concern. I also export an HTML backup monthly through chrome://bookmarks for a universal, human-readable copy.

If you use Chrome Sync, go to chrome://settings/syncSetup and choose "Customize sync" instead of "Sync everything." Enable only Bookmarks and Extensions. This limits the scope of potential sync conflicts.

A third-party bookmark manager like Raindrop.io or Pinboard gives you an independent backup outside Chrome entirely, which is the safest net you can have.

I build Chrome extensions at zovo.one. All 16 are free, open source, and collect zero data.

Top comments (0)