Search Restore combines two Google Search repairs in one Chrome extension: archive links under normal results and a button that loads later result pages into the current list.
Archive links can open the latest Wayback Machine capture, check archive.today or save the live page. The load-more button requests one Google result page per click. A Copy URLs button next to it puts every loaded result URL on the clipboard.
Loading stops at your result limit: about 30, 50 or 100 results, chosen in the popup. Auto-load while scrolling is also available there and defaults to off, so pages only grow when you ask them to.
Each feature has its own switch. The switches are stored with
chrome.storage.local.
- Download the release ZIP and extract it.
- Open
chrome://extensionsand turn on Developer mode. - Choose Load unpacked and select the extracted folder.
- Open a supported Google search page.
The ZIP puts manifest.json at its root, so the extracted folder is the one to
select. Chrome, Edge, Brave and Opera can load MV3 extensions this way.
The manifest declares only the storage permission. It has no
host_permissions key. Its content script is limited to the HTTPS /search
path on the Google domains listed in manifest.json, with a second runtime
check that requires location.pathname === '/search'.
Chrome may describe that content-script scope as permission to read and change data on the listed Google sites. That access is what lets Search Restore inspect the visible result links and add controls to the search page; it does not cover other sites or other Google paths.
There is no analytics or extension server. The two switches stay in local extension storage. Google receives a request only when the user presses the load-more button. An archive service opens only after the user chooses its link. See PRIVACY.md for the full policy.
Node and Python are enough for the release checks.
node tests/core.test.js
node tests/content.test.js
python scripts/package.py
python tests/site.test.py
python tests/package.test.py
scripts/package.py writes a sorted ZIP with fixed timestamps, then writes its
SHA-256 checksum. tests/package.test.py builds twice in temporary directories
and compares the bytes.
This extension is a page repair, not an official Google API client. The archive
feature looks for result title links under #rso. Pagination uses the start
query parameter and extracts result blocks from the next page. Google can change
either behavior without notice.
A read-only check on August 23, 2026 found one #rso container and seven linked
h3 result titles for the query example. The same check found no captcha. See
MAINTENANCE.md for the selectors and failure cases that need
watching.
extension/ Chrome MV3 package source
scripts/package.py deterministic ZIP and checksum builder
store-assets/ Chrome Web Store artwork and screenshots
tests/ core, content, manifest, page and package checks
Not affiliated with Google, the Internet Archive or archive.today. MIT licensed.