Fixes runs that returned organicResults: [] for every page, and that were sometimes charged for pages that were really the Google homepage.
- Default proxy. If
proxyConfiguration is omitted, the actor now uses Apify RESIDENTIAL proxies (country from countryCode), falling back to GOOGLE_SERP and then to no proxy. The input prefill is now RESIDENTIAL.
- Fetching (residential, datacenter, custom or no proxy). Requests now go to
https://.../search?...&gbv=1 with a basic-HTML user agent and a fresh proxy session on each attempt. Google redirects plain http://www.google.com/search to the homepage, and it serves modern browsers a page that needs JavaScript.
- Fetching (GOOGLE_SERP). A normal results page is no longer mistaken for a block. Script strings such as
/sorry/index and the <noscript> enablejs refresh had been triggering that. The actor also no longer falls back to an unproxied headless browser, which Google always CAPTCHAs. Google's opaque /goto?url=... result links are now resolved to the real target URLs.
- Query handling. An explicit
start=0 is no longer sent. When Google returns results that ignore part of the query (such as site: queries answered with off-site results), the page is retried in verbatim mode (tbs=li:1). GOOGLE_SERP requests and pages 2+ use verbatim mode from the start.
- Charging. Only real results pages are charged. Homepage, consent, CAPTCHA, JavaScript interstitial, HTTP error, empty parse and off-query pages are retried, and if they still fail they become uncharged
#error records.
- Parser. Supports the current desktop markup (
/goto links, data-pcu ad URLs, data-q People Also Ask) and the basic HTML markup. Related searches no longer include tab and filter links, "Read more" links are no longer counted as sitelinks, and AI Overview detection no longer matches the whole page.
- Pagination. Page N now requests
start=(N-1)*10, because Google ignores num. Before this, pages were skipped when resultsPerPage was above 10.
- Defaults and dependencies.
requestRetries now defaults to 3. renderJavascriptOnBlock is deprecated and ignored. Playwright was removed and the image is now apify/actor-node:22.
- Initial Google Search SERP scraper actor.
- Added query and Google Search URL inputs, pagination, country/language controls, advanced query filters, static SERP parsing, optional HTML snapshots, and pay-per-event charging.