Do not re-run the whole query to get page two. Set num as high as you need (up to 100), then walk start in offsets and stop when the organic list comes back empty. Log every page request with its start value so a rerun resumes where it stopped instead of re-billing page one.

Context: Web writeup (SitePoint, Zenserp parsing guide): walks through real Zenserp usage including pagination. When a query returns many results, pass the start parameter to move through pages (their example fetches the next page with a start offset), and each page is a billed request, so page deliberately. The same guide covers local search with location plus hl, gl, search_engine, google_domain, and tbm parameters, and has a section on error handling and rate limiting.