Skip to content

Geo Proxies for Testing: See Your Website from Different Countries

Check what visitors in each country and city really get — prices, language, banners and legal notices.

Why geo testing needs local IPs

Sites that adapt to the visitor's location — prices, currency, language, banners, legal notices — decide largely by IP. Cloudflare, for example, adds the visitor's country to every request it forwards, in a CF-IPCountry header, once the site turns on IP geolocation — so the site can branch on it.

That's why you can't QA another market from your office, and why search engines can miss it too: Google says Googlebot's default IPs appear to be in the US and that it may not crawl, index or rank every locale version of a page that adapts by location. Google recommends separate locale URLs with hreflang instead.

Location is more than the IP. Browsers also send a language (Accept-Language) and expose a time zone, so a test that changes only the IP can still get the default language. Change IP, locale and time zone together — Playwright sets locale and timezoneId per browser context.

Recommended geo testing setup

Scroll horizontally with the arrow keys to read all content.

Recommended geo testing setup
CriterionChooseWhy
ProductRotating residential proxyHousehold IPs in the place you test, billed per GB
Exit modeChoose region / sticky IPKeeps one exit for the whole test run; Global rotation has no fixed country
TargetingRegion, then State and CityCity-level differences — store availability, delivery, local offers — show up
How many proxiesOne per market or cityEach test context gets its own location
Browser settingsLocale and time zone matching the exitIP, language and time zone tell the same story
LineBudget, US$1.50/GB; Premium (US$5.00/GB) to pick the ISPPremium adds ISP (optional) when a test depends on the network

The button below opens Rotating Residential Proxies with the AI and automation use case. Pick the country and city for each market before you generate.

Which Proxy302 proxy to buy

Scroll horizontally with the arrow keys to read all content.

Which Proxy302 proxy to buy
CriterionStatic ISPRotating residentialDatacenter
What you getA dedicated home-broadband IP that stays yours for the whole termReal household IPs: rotating exits, or a sticky session in a chosen country or cityFast fixed server IPs, HTTP and SOCKS5
PricePer IP and term — live price at checkoutBudget US$1.50/GB (US$1.35/GB at 100 GB); Premium US$5.00/GBPer IP and term — the cheapest per IP
Best for geo testingLong QA sessions that must keep one home IPCountry- and city-level checks of pages and pricesQuick checks of sites that treat server IPs like any visitor

Prices in US dollars. Top up your wallet once and pay any line from it. Nothing renews automatically — renew in My assets to keep an IP.

Set up geo testing in 5 steps

  1. Open the setup and buy traffic

    The button below opens Rotating Residential Proxies with the AI and automation use case. Choose a Line, then open Add traffic and buy a package or a Custom GB (from 1 GB).

  2. Generate one proxy per market

    Under Connection settings set Exit mode to Choose region / sticky IP, pick Region, State and City, keep Protocol on HTTP and click Review cost and generate. Repeat for every market you test.

  3. Copy the lines

    In My assets, Copy each proxy and store it as PROXY_US, PROXY_DE, PROXY_JP in the form http://USER:[email protected]:2222.

  4. Run the script

    The code below opens the same URL once per market in its own context, with that market's locale and time zone, and saves a screenshot.

    Expected result One screenshot and page title per market; the language matches the market.

  5. Compare and file bugs

    Put the screenshots side by side. When a market shows the wrong price, language or banner, note the exit IP from My assets so the team can reproduce it.

Screenshot a page from three markets (Playwright, Node.js)

Scroll horizontally with the arrow keys to read all content.

// npm i playwright   then   npx playwright install chromium
import { chromium } from 'playwright'

const url = 'https://www.example.com/pricing'
// One Proxy302 exit per market (Exit mode "Choose region / sticky IP"), with matching locale and time zone
const markets = [
  { name: 'us', proxy: process.env.PROXY_US, locale: 'en-US', timezoneId: 'America/New_York' },
  { name: 'de', proxy: process.env.PROXY_DE, locale: 'de-DE', timezoneId: 'Europe/Berlin' },
  { name: 'jp', proxy: process.env.PROXY_JP, locale: 'ja-JP', timezoneId: 'Asia/Tokyo' },
]

const browser = await chromium.launch()
for (const m of markets) {
  const { host, username, password } = new URL(m.proxy) // http://USER:PASS@HOST:PORT
  const context = await browser.newContext({
    proxy: { server: `http://${host}`, username: decodeURIComponent(username), password: decodeURIComponent(password) },
    locale: m.locale,
    timezoneId: m.timezoneId,
  })
  const page = await context.newPage()
  await page.goto(url)
  await page.screenshot({ path: `pricing-${m.name}.png`, fullPage: true })
  console.log(m.name, await page.title())
  await context.close()
}
await browser.close()

Checked on 2026-10-18 with Playwright 1.63.0 and Chromium 153 against a local page that echoes the browser language: each context reached it through its proxy with its own Accept-Language (en-US, de-DE, ja-JP) and saved a screenshot.

Quick fixes

The page still shows your home version

Check Does a cookie, saved setting or logged-in account remember your country? Did you reuse a browser context?

Fix Use a fresh context per market and test logged out, or with an account that belongs to that market.

Right country, wrong language

Check Is the context's locale set to the market's language?

Fix Set locale (and timezoneId) on newContext() for each market.

Content says it isn't available in your region

Check Is the exit really in that country? Open an IP-check page in the same context.

Fix Regenerate the proxy with the right Region or City, or try the other Line.

Different results on every run

Check Is Exit mode set to Global rotation?

Fix Use Choose region / sticky IP so the whole run keeps one exit.

Geo testing proxy FAQ

How do I see my website from another country?

Open it through a proxy in that country with the browser's language and time zone set to match. One rotating residential proxy per market, set to Choose region / sticky IP, does it.

Can I test by city?

Yes. Choose region / sticky IP lets you pick State and City as well as the country.

Residential or datacenter for geo testing?

Residential shows what a home visitor in that city sees. Datacenter is fine for quick checks of sites that treat server IPs like any other visitor.

Will Google see my localized versions?

Not reliably if the page changes by IP: Googlebot mostly crawls from US IPs and doesn't send Accept-Language. Google recommends separate locale URLs with hreflang.

How much traffic does a geo test use?

About what the pages weigh: each screenshot run downloads the page once per market. Block video and large media if you only need layout and text.

Sources and verification

6
  1. Cloudflare docs — IP geolocation (CF-IPCountry header)

    Official documentation · Checked:

  2. Google Search Central — Locale-adaptive pages

    Official documentation · Checked:

  3. Playwright docs — Emulation: locale and timezone

    Official documentation · Checked:

  4. Proxy302 pricing

    Product observation · Checked:

    Rotating residential per-GB prices as published on the pricing page and used by the console (Budget US$1.50/GB, US$1.35/GB in the 100 GB package; Premium US$5.00/GB; 1 PTC = US$1). Static ISP and datacenter IPs are quoted live per IP and term.

  5. Proxy302 console — Rotating Residential Proxies

    Product observation · Checked:

    Option names, billing modes and limits as shown in the live console on 2026-10-18: Line (Premium/Budget), Exit mode, Region, State, City, Protocol (HTTP/SOCKS5), Quantity (1–500), Term, Auto-renew IP (not yet available), My assets → Copy / Rotate / Renew / Copy for AI. Rotating residential connects through proxy.proxy302.com:2222 (HTTP) and :3333 (SOCKS5).

  6. Local proxy fixture run

    Local example · Checked:

    The code block was executed on 2026-10-18 against a local password-protected HTTP proxy that answers 407 without valid credentials; Playwright 1.63.0 and Chromium 153 against a local page that echoes the browser language: each context reached the page through its proxy with its own Accept-Language (en-US, de-DE, ja-JP) and saved a full-page screenshot.

    A local check proves the configuration syntax and authentication path, not access to any specific website, country or platform.

Ready to connect?

Create an account, top up once and pick rotating residential, static ISP or datacenter. Rotating residential exits cover 195+ countries and regions.