A lightweight Chrome extension that scans your bookmarks, detects dead links, and lets you delete them in bulk with one click.
Over time, bookmarks rot — websites shut down, pages get deleted, URLs change. Studies show 30–40% of links break within a few years. Bookmark Cleaner helps you find and remove those broken bookmarks so your browser stays clean and organized.
- Dead link detection — finds 404 errors, server errors, timeouts, and connection failures
- Bulk deletion — remove hundreds of broken bookmarks in one click
- Selective cleanup — review results, uncheck bookmarks you want to keep
- Scan statistics — see how many bookmarks were checked, how many are broken, and how many were skipped
- Fast & lightweight — vanilla JS, no frameworks, no bloat
- Privacy-first — zero data collection, zero tracking, everything runs locally in your browser
- Click "Find dead bookmarks"
- A background service worker scans all your bookmarks by sending HEAD requests to each URL (5s timeout)
- Review the list of dead links found
- Click "Delete selected bookmarks" to clean up
Non-HTTP URLs (chrome://, javascript:, etc.) are skipped automatically and reported in the statistics. The scan continues even if you close the popup — reopen it to see progress.
Coming soon.
- Clone or download this repository
- Open
chrome://extensions/in Chrome - Enable Developer mode (top-right toggle)
- Click Load unpacked and select the project folder
- The extension icon appears in your toolbar — click it to start
| Permission | Why it's needed |
|---|---|
bookmarks |
Read and delete bookmarks |
storage |
Persist scan state so the popup can reconnect to an in-progress scan |
alarms |
Keep the service worker alive during long scans |
host_permissions: <all_urls> |
Send HEAD requests to check if bookmark URLs are alive |
No data leaves your browser. No analytics. No remote servers.
- Manifest V3 — current Chrome extension standard
- Vanilla JavaScript — no dependencies, no build step
- Plain CSS — clean, minimal UI
manifest.json # MV3 manifest
background.js # Service worker — all scanning & deletion logic
popup.html # Popup UI (4 screens: welcome → scanning → results → done)
popup.js # UI state management, messaging to/from background
styles.css # Popup styles
icons/ # Extension icons (16, 48, 128px)
tests/e2e/ # Puppeteer e2e tests
pack.sh # Zips extension for Chrome Web Store upload
Contributions are welcome. Feel free to open an issue or submit a pull request.
MIT