Maintenance Setup in progress: proxy delivery and outgoing email are not yet activated. Please contact support before paying. Status page
Use case

SEO and SERP tracking

Check rankings the way local searchers see them: country- and city-level results, without personalisation or rate-limit pages skewing the data.

Rotating residential Rotating per request, city targeting

The problem

Search engines localise results down to the city and adapt them to the device and network. A rank tracker running from a datacentre in Frankfurt does not see what a searcher in Lyon sees, and its requests are quickly answered with consent walls, CAPTCHAs or HTTP 429 responses.

Accurate tracking therefore needs many independent requests from residential addresses in the right city, spread over enough IPs that no single address carries a recognisable query pattern.

Configuration

Product
Rotating residential, billed per GB
Rotation
Per request (no session parameter)
Targeting
-country-fr-city-lyon, one city per tracked market
Request headers
Accept-Language and hl/gl parameters matching the target country
Concurrency
10–30 parallel requests per market; spread keywords over the day
Typical volume
A results page weighs 150–400 KB, so 1 GB covers roughly 3,000–6,000 queries

Example

Python
import random, time
import requests

LOGIN, PASSWORD = "px7h2k9m4q", "Rq4Tn8Vw2Lx6Bz9C"

def fetch_serp(query, country="fr", city="lyon"):
    user = f"{LOGIN}-country-{country}-city-{city}"
    proxy = f"http://{user}:{PASSWORD}@resi.gw.proxuno.com:7000"
    r = requests.get(
        "https://www.google.com/search",
        params={"q": query, "hl": "fr", "gl": country, "num": 20},
        headers={"Accept-Language": "fr-FR,fr;q=0.9"},
        proxies={"http": proxy, "https": proxy},
        timeout=30,
    )
    r.raise_for_status()
    return r.text

for keyword in ["avocat droit du travail lyon", "plombier lyon 3"]:
    html = fetch_serp(keyword)
    time.sleep(random.uniform(2, 5))

Example credentials. Replace them with yours from the dashboard.

Best practices

  • Match the language parameters and the Accept-Language header to the targeted country; mismatches produce mixed-language results.
  • Do not reuse cookies between queries. Personalisation from one search leaks into the next.
  • Retry a CAPTCHA or 429 response once through a new IP, then back off for that keyword instead of hammering it.
  • Store the raw HTML with the timestamp and the exit country so ranking changes can be audited later.

Compliance

Collect only public result pages, respect the search engine's rate limits and do not use the data to manipulate rankings through automated clicks.

Run your first request in under five minutes

Create an account, add funds in crypto and start with a 24-hour mobile proxy — paid from your balance and delivered instantly.