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.
Scroll horizontally with the arrow keys to read all content.
Recommended geo testing setup
Item
Choose
Why
Product
Rotating residential proxy
Household IPs in the place you test, billed per GB
Exit mode
Choose region / sticky IP
Keeps one exit for the whole test run; Global rotation has no fixed country
Targeting
Region, then State and City
In major cities, city-level differences — store availability, delivery, local offers — show up
How many proxies
One per market or city
Each test context gets its own location
Browser settings
Locale and time zone matching the exit
IP, language and time zone tell the same story
Line
Budget, US$1.50/GB; Premium (US$5.00/GB) to pick the ISP
Premium 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.
Scroll horizontally with the arrow keys to read all content.
Which Proxy302 proxy to buy
Item
Static ISP
Rotating residential
Datacenter
What you get
A fixed home-broadband IP that stays the same for the whole term
Real household IPs: rotating exits, or a sticky session in a chosen country or major city
Fast fixed server IPs, HTTP and SOCKS5
Price
Per IP and term — live price at checkout
Budget US$1.50/GB (US$1.35/GB at 100 GB); Premium US$5.00/GB
Per IP and term — the cheapest per IP
Best for geo testing
Long QA sessions that must keep one home IP
Country- and major-city checks of pages and prices
Quick 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 unless you switch auto-renew on for an IP in My assets — or renew by hand there to keep an IP.
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).
Generate one proxy per market
Under Connection settings set Exit mode to Choose region / sticky IP, pick Region, State and City (major cities can be targeted; small towns and some connections exit at country level, so the chosen city is not guaranteed every time), keep Protocol on HTTP and click Review cost and generate. Repeat for every market you test.
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.
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.
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.
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, for major cities. Choose region / sticky IP lets you pick State and City as well as the country. Major cities can be targeted; small towns and some connections exit at country level, so the chosen city is not guaranteed every time. Check the exit city with a lookup tool after generating.
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.
Test your website from different countries: language, currency, prices, forms and redirects as local visitors see them. Residential IPs with country, state and major-city choice, HTTP and SOCKS5.
SERP proxies for rank tracking: check Google results from the searcher's country and major city on household IPs, validate every page and record captchas as unknown.
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.
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, My assets → Copy / Rotate / Renew / Copy for AI. Rotating residential connects through proxy.proxy302.com:2222 (HTTP) and :3333 (SOCKS5). Since 24 October 2026 the console has an Auto-renew IP switch for static IPs (off for new purchases) on the purchase page and per IP in My assets.
Local proxy fixture run
Local example · Confirmed on:
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.