15% off your first purchase with code WELCOME15, up to 25 GB.

See pricing

SEO & SERP · International rank tracking

International rank tracking: rankings per country and language, and hreflang checks

International rank tracking runs the same keyword set in every country and language you target, and checks which of your localised URLs actually ranks in each. Collect each market from an exit in that country, with the market's language, and the matrix tells you where you rank and whether the right page is the one ranking.

Pay per GB · No subscription · Prices in EUR, excl. VAT

Illustration. The URLs and values are fictional; the connection string is the real grammar.
€0.75
per GB on ARC Basic, excl. VAT
−21%
at 1 TB (€0.59 / GB)
185+
countries, city targeting
Never
expires — no subscription

Written for

  • International SEO teams
  • Global e-commerce marketers
  • Localisation managers
  • Multi-market SEO agencies

The short answer

  • The unit is a market: a country plus a language. Belgium in French and Belgium in Dutch are two markets; so are Canada in English and Canada in French.
  • Search results are localised by location, and in April 2025 Google announced it would redirect its country domains to google.com, so the exit country is the main lever, not the domain.
  • The most useful international metric is not the rank but the ranking URL: did the German page rank in Austria, or the US page in the UK?
  • hreflang annotations must be reciprocal; check them from the crawl side as well as in results.

The problem

What goes wrong without the right IPs

The wrong localised page ranks

Your UK page ranks in Ireland and your US page in Australia, while the local pages you built sit on page three. A rank tracker that reports only the position calls this a win.

Country and language mixed up

The interface language, the result language and the searcher's country are three variables. Fix one and forget another and the market you report is a hybrid nobody searches from.

Every market checked from one place

A tracker running from one data centre sees one country's results, with other markets approximated by parameters. The approximation drifts, and you cannot tell how far.

Broken hreflang clusters

One missing return link and search engines may ignore the annotations for that pair. On a site with 20 locales, a template change can break hundreds of pairs overnight without any visible error.

IP redirects hide pages from crawlers

Sites that redirect by visitor location send a crawler from one country to one version. Google notes its crawler's default IPs appear to be in the USA, so the other versions can be harder to discover.

What to collect

What you can collect

Market (country + language)
The key of the matrix. Store both, never just one.
Exit country
The country the request actually left from, checked per run.
Position and result type
Organic position and whether the result sits in a feature block.
Ranking URL
Which of your localised URLs ranked. The most important international field.
Expected URL
The page your hreflang cluster designates for that market, for comparison.
Competitor domains per market
Local competitors differ by market; the set is part of the finding.
hreflang cluster status
Per page: self-reference present, return links complete, codes valid, x-default set.
Run timestamp
So rankings across time zones and markets can be aligned.

How it runs

How a collection run works

  1. 01

    Define markets, not countries

    List each country-language pair you target, the localised URL you expect to rank there, and the keyword set translated, not just copied, for that market.

  2. 02

    Run each market from its own country

    Put the country in the username and the market's language in the request headers and search parameters. Each query is one clean request on a rotating exit from the ISP pool; nothing is carried between markets.

    One rotating exit per query, per market
    import httpxGATEWAY = "proxy.arcproxies.io:8000"PASSWORD = "PASSWORD"MARKETS = [("de", "de-DE"), ("at", "de-AT"), ("ch", "fr-CH"), ("be", "nl-BE")]def run(country: str, lang: str, url: str) -> str:    user = f"USERNAME_pool-arc_country-{country}"    proxy = f"http://{user}:{PASSWORD}@{GATEWAY}"    headers = {"Accept-Language": f"{lang},{lang.split('-')[0]};q=0.9"}    with httpx.Client(proxy=proxy, timeout=30, headers=headers) as c:        return c.get(url).text
  3. 03

    Store the ranking URL and compare it

    For each market and keyword, store the position and the URL that ranked, and compare that URL with the one your hreflang cluster designates for the market. Mismatches are the international report.

  4. 04

    Audit hreflang from the crawl side

    Crawl each localised page and check that it lists itself and every alternate, that each alternate lists it back, that codes are valid ISO 639-1 languages with optional ISO 3166-1 regions, and that an x-default exists where you use one.

  5. 05

    Verify location-adaptive pages

    If your site changes content by visitor location, fetch each localised URL from exits in several countries and confirm each URL serves its own version rather than redirecting.

Setup

Recommended setup

International tracking is the same volume problem as any rank tracking, multiplied by markets, so the cheapest pool with country targeting carries it.

PlanRoleSessionTargetingPrice
ARC Basic
Rotating ISP
Default for the rank matrix
Rotating ISP exits with country targeting at our lowest price per GB. Result pages are small with assets blocked.
Rotating, one exit per queryCountry
€0.75 / GB
€0.59 at 1 TB (−21%)
ARC Fast
Rotating residential
For markets where ISP results fail
Residential exits for the markets or result types where ISP checks keep failing. City targeting is available where a market's capital differs from the rest.
RotatingCountry + city
€2.00 / GB
€1.12 at 1 TB (−44%)
ARC Ultra
Premium residential
For the markets a client report hangs on
Premium residential where a missing market in the matrix is a client conversation. Route those markets only.
RotatingCountry
€3.50 / GB
€2.17 at 1 TB (−38%)

Prices are list prices in EUR, excl. VAT. Volume discounts apply automatically at checkout — full ladder on the pricing page.

Connect

One connection string per market

The country, city and sticky session are tokens in the username. Change the token, change the market; keep the session handle, keep the IP.

sticky · Germany · 10 min
http://USERNAME_pool-arcfast_country-de_session-k3f9a1x2_sesstime-10:PASSWORD@proxy.arcproxies.io:8000

Swap _country-de for any market you quote. The full grammar is on the residential proxies page.

Illustration

What 1,000 keywords in 12 markets, daily costs

An illustration with round numbers — your pages, payloads and retry rate will differ. The arithmetic is the real price ladder.

Assumptions

Keywords per market
1,000
Markets (country + language)
12
Cadence
daily
Result page weight, assets blocked
250 KB
Days
30
Bandwidth per month
≈ 90 GB

On ARC Basic

€63.00per month, excl. VAT

90 GB bought in one purchase at €0.70 / GB (−7% volume rung, applied automatically).

The same 90 GB on ARC Fast: €133.20 at €1.48 / GB. Route only the jobs that need it through the pricier pool.

Running the long tail weekly and the head terms daily cuts this considerably. The hreflang crawl of your own site is a separate, small line.

Bandwidth never expires, so a bigger single purchase is only ever cheaper per GB. See the ladder.

In depth

International rank tracking, in depth

How search engines decide which market a searcher is in

Google moved to location-based results in 2017: since then, it says, everyone using Search gets the same local experience whether they use google.com or a country domain. In April 2025 it announced it would redirect its country-code domains to google.com, gradually, because the domain no longer decides the market.

That leaves location signals and language preferences as the variables. For a logged-out tracker, location means the exit IP's country, and language means your request headers and the search parameters you send. Set both per market and keep them fixed from run to run, or your series measures your configuration changes.

VariableWhat sets it in a trackerCommon mistake
CountryThe exit IP's country (the _country- token)One server for every market
Interface languageAccept-Language header and search language parameterLeft at the server default
Result languageFollows the query and the language settingsUntranslated keyword sets
CityThe exit's metro, where targetedNeeded only for local intent — see local rank tracking

hreflang verification: what to check

Google documents three equivalent ways to declare localised versions: HTML link elements, HTTP headers or the XML sitemap. Using more than one adds nothing. Whichever you choose, each language version must list itself and all other versions; if two pages do not point to each other, the annotations for that pair may be ignored.

Codes are an ISO 639-1 language, optionally followed by an ISO 3166-1 Alpha 2 region; a region alone is invalid. An x-default value is the fallback for users whose language matches no version. Google also says it does not use hreflang or the HTML lang attribute to detect a page's language, so the content itself has to be in the language you declare.

  • Self-reference — every page lists itself.
  • Return links — every alternate links back.
  • Valid codes — de-AT is valid, at alone is not, en-UK is not a valid region.
  • Indexable targets — alternates that redirect, 404 or carry noindex break the cluster.
  • Results match — the URL that ranks in each market is the one the cluster designates.

Location-adaptive sites and the crawler's view

Some sites serve different content on one URL depending on the visitor's location or language. Google's documentation notes that its crawler's default IP addresses appear to be in the USA, that it also crawls from IPs outside the USA, and that it sends requests without an Accept-Language header. It recommends separate URLs per locale with hreflang annotations.

A multi-country exit set is the practical way to test what your own site does. Fetch each localised URL from three or four countries: each should return its own version, not a redirect to the visitor's locale. Where it redirects, the version for the crawler's location is the one most likely to be found.

Reading the international matrix

The output is a table of keyword by market, each cell holding a position and a ranking URL. Three views make it useful: share of keywords where the designated URL ranks, positions where a different locale's URL ranks instead, and markets where no URL of yours ranks at all.

Cannibalisation between locales is the most common finding, especially between markets that share a language. It points at the hreflang cluster, the content differences between the versions, and internal links between locales. The parent SERP monitoring page covers keeping the daily runs clean; testing proxy location shows how to verify the exit country per run.

Works with anything that takes a proxy URL

  • Python requests / httpx
  • Scrapy
  • Playwright
  • Node.js
  • n8n
  • Docker

FAQ

Questions

Something not covered? Write to contact@arcproxies.io.

How do I track rankings in another country?

Send the query from an exit in that country, logged out, with the market's language in the Accept-Language header and search parameters. Store the position and the URL that ranked. With ARC pools the country is a token in the proxy username.

Do I still need country domains to check local results?

No. Google says results have been the same on google.com and its country domains since 2017, and in April 2025 it began redirecting country domains to google.com. Location signals such as the exit country now decide the market.

How do I know if hreflang is working?

Two checks. On your site, every localised page should list itself and all alternates, every alternate should link back, and codes must be valid. In results, the URL ranking in each market should be the one your cluster designates. Mismatches in the second check usually trace back to the first.

Is a country plus a language one market?

Treat it as one. Switzerland in German and Switzerland in French, or Canada in English and in French, return different results for translated queries. Keep separate keyword sets and track them as separate markets from the same country.

Which plan is best for international rank tracking?

ARC Basic for most markets: rotating ISP exits with country targeting at our lowest price per GB. Route only the markets or result types that keep failing to ARC Fast, and the few that a client report depends on to ARC Ultra.

How much bandwidth does tracking 12 markets use?

At 250 KB per result page with assets blocked, 1,000 keywords in each of 12 markets checked daily is about 90 GB a month. Checking the long tail weekly reduces it substantially.

Sources & review

Last reviewed by the ARC Proxies team. Prices are read from the live catalog at build time.

  1. [1]Google: Here's an update on our use of country code top-level domains (15 April 2025)
  2. [2]Google Search Central: Tell Google about localized versions of your page
  3. [3]Google Search Central: How Google crawls locale-adaptive pages

Get started

Buy a gigabyte and try it on your own targets.

No subscription, no sales call. Code WELCOME15 takes 15% off your first purchase, and whatever you do not use is still there next quarter.