# Changelog of Google Search Scraper (`codingfrontend/google-search-scraper`) Actor

- **URL**: https://apify.com/codingfrontend/google-search-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/codingfrontend/google-search-scraper.md

## Changelog

### 1.1.0

- Replaced the browser image with a bounded HTTP/Cheerio crawler on Node.js 22.
- Limited runs to 100 organic results and separated SERP feature metadata from dataset rows.
- Added strict input, dataset, output, and key-value-store schemas.
- Added URL deduplication, stable record IDs, empty-field compaction, response-size limits, and fail-closed page classification.
- Added support for every advertised localization, time, correction, and duplicate filter.
- Added bounded redirect-only resolution for Google's protected result links.
- Added automated contract tests, deterministic local test input, and zero-vulnerability dependency lockfile.

### 1.1.1

- Added a bounded native request path with response-size, timeout, retry, and redirect limits; the crawler no longer leaves a live request unbounded.
- Added source provenance, stable `dataAvailable` records, atomic normal-row publication, minimal diagnostics, and an `OUTPUT_SUMMARY` alias.
- Added fixture-driven pagination, deduplication, explicit-empty, and challenge QA plus independent dataset validation.
- Documented the observed direct-live outcome: Google returned a JavaScript-required shell, so the Actor failed closed without guessing or bypassing access controls.
