Clean up your search results! A high-performance, lightweight userscript that enhances your browsing experience by highlighting websites you love and dimming or hiding the ones you dislike.
- Google (
google.com,google.co.jp, etc.) - Bing (
bing.com) - DuckDuckGo (
duckduckgo.com) - Brave Search (
search.brave.com) - Yandex (
yandex.ru,yandex.com)
Hovering over a search result displays a control bar in the top-right corner of the item (can be toggled in settings):
- Star (Preferred): Pin / highlight the domain.
- Slash (Disliked): Dim / hide the domain based on your filter mode.
Swiping left on any search result card slides it horizontally to reveal action buttons:
- Star (Star/Like): Highlight the domain.
- Block (Ban/Dislike): Dim or hide the domain.
- Optimized touch features: Elastic rubber-banding, tap-to-close, and automated backdrop color detection.
Configure user preferences and sync states:
- Settings FAB (Floating Action Button): Disabled/hidden by default to keep search pages clean. Show/hide it anytime via the Toggle Settings Button option under the extension icon menu (Tampermonkey/Violentmonkey).
- Quick Menu Action: Click Better Search Settings in the extension menu to open the settings panel directly.
- Hover Actions Switch: Toggle whether the quick action buttons (Star/Slash) appear when hovering search result cards on desktop.
- Filter Mode: Fade (reduce opacity) or Hide (completely collapse with click-to-reveal text row).
- Preferred & Disliked Lists: Live-editable domains. Implicitly supports wildcards (
*.domain.com). - Import / Export: Easily backup or sync your lists.
Better Search provides flexible, native backup and synchronization options in the Import/Export/Sync tab.
The script reads and writes domain configuration in the following standard JSON format:
{
"liked": [
"wikipedia.org",
"github.com"
],
"disliked": [
"w3schools.com",
"pinterest.com"
]
}You can backup and synchronize your lists using local files or GitHub Gist sync.
- Import File: Merge a
.jsonbackup file with your active lists (additive and deduplicated). - Export File: Download your current lists as a
.jsonfile.
Import domains from a public raw Gist URL without needing a token:
- Locate the raw URL of any public Gist containing the domains JSON (e.g.
https://gist.githubusercontent.com/username/gist_id/raw/domains.json). - Paste it into the Import from Gist field and click Import to fetch and merge new domains (additive merge).
Note
The input is pre-populated by default with a recommended latest public list raw URL:
https://gist.githubusercontent.com/quantavil/12880b87fd1ebd497469455d1898088b/raw/domains.json
Keep multiple browsers in sync with your own Gist as the central source of truth:
- Token Setup: Create a GitHub Personal Access Token (PAT) with the
gistscope and enter it under Gist Sync. - Gist ID Linkage: Enter your existing Gist ID, or leave it blank—the first Push will automatically create a new private Gist on your account and link it.
- Pull (Replace): Completely overrides your local lists with the domains stored in your Gist.
- Push (Merge): Pushes local lists back to your Gist. Before updating GitHub, it runs a background pull and performs a union merge to prevent overwriting concurrent updates from other browsers.
- Auto-sync: Toggle this option to automate synchronization:
- Automatically runs an initial pull on browser start.
- Automatically pulls and merges remote updates every 1 hour.
- Automatically pushes local domain updates back to Gist (10-second debounce to prevent API spam while editing).
Ensure you have Bun installed, then set up the project:
bun installStarts a hot-reloading development server:
bun run devCompiles and bundles the userscript into a single file at dist/better-search.user.js:
bun run build