Proxies for rank tracking

MIX pools up to 25,000 IPs: each address carries a handful of queries a day, so the search engine never shows a captcha. Every proxy in the list has a country code, so you pull local SERPs from addresses in the target country. A test hour costs $1.

  • Pool checked every 5 minutes
  • Country code on every address
  • Refund on packages from 3 days
See prices
Search result rows climb to the first position through a network of proxy addresses

The price for your volume

Pick a package, then move the period and thread sliders. A thread is one concurrent query to the search engine: a tracker with 200 threads pulls 200 result pages at once.

MIX-Business is built for an agency: a dozen projects, thousands of keywords, daily checks in two engines and several regions. 16,000 addresses leave headroom for the days when every client wants the report by morning. A thousand threads, expandable to 1,400.

1 month
1,000

A thread is one simultaneous connection. More threads — more done in the same time.

$100
≈ $3.3 / dayfor 30 days

$100 for a monthno extra charge for threads

save $350 vs. daily
YESrefund of the remainder
  • 1 hour — $1
  • 1 day — $15
  • 3 days — $35
  • 1 week — $50
  • 2 weeks — $75
  • 1 month — $100
  • 3 months — $255
  • 6 months — $475
Buy proxies — MIX-Business

How to connect the proxies to your rank tracker

  1. 1
    Buy an hour for $1 and enter the IP of the machine your tracker runs on.

    Your server goes on a whitelist, and from then on the proxies answer it without any login or password. The list holds up to ten addresses.

  2. 2
    Grab the proxy list URL from your dashboard.

    The link returns plain text, each line holding the address and port of one proxy. The same URL ending in .csv returns the list with a country code on every address, which you need for local SERPs.

  3. 3
    Load the URL into your tracker as the proxy source.

    Key Collector and A-Parser re-read the list on their own, paste the URL in their proxy settings. If your tracker is home-grown, start from the Python example below.

  4. 4
    Set tracker threads no higher than the port count in your package.

    That is 500 ports on Basic, 1,000 on Business, 1,500 on Elite. Every port is a separate proxy, and one query goes through one port.

  5. 5
    Set the region inside the search engine itself.

    In Google these are the gl and hl parameters, in Bing cc and setLang. Pick proxies from the target country via the CSV, and the SERP matches what a user there sees.

Google serves results only to a browser, so the example uses Playwright: the script takes a proxy from the list, opens the SERP for a region and looks for the domain among the results. Put the list URL from your dashboard in place of PROXY_LIST_URL_FROM_DASHBOARD.

# pip install requests playwright
# playwright install chromium
import random, time, requests
from urllib.parse import quote_plus, urlparse
from playwright.sync_api import sync_playwright

PROXY_LIST_URL = "PROXY_LIST_URL_FROM_DASHBOARD"
REFRESH_SEC = 600
DEPTH = 30

_pool, _loaded = [], 0

def pool():
    global _pool, _loaded
    if time.time() - _loaded > REFRESH_SEC:
        text = requests.get(PROXY_LIST_URL, timeout=15).text
        _pool = [line.strip() for line in text.splitlines() if ":" in line]
        _loaded = time.time()
    return _pool

def serp_links(browser, url, hl, tries=3):
    for _ in range(tries):
        proxy = random.choice(pool())
        ctx = browser.new_context(proxy={"server": f"socks5://{proxy}"}, locale=hl)
        try:
            page = ctx.new_page()
            page.goto(url, timeout=20000, wait_until="domcontentloaded")
            if "/sorry/" in page.url:
                continue
            page.wait_for_selector("#search", timeout=10000)
            return page.eval_on_selector_all("#search a[href^='http'] h3",
                                             "els => els.map(e => e.closest('a').href)")
        except Exception:
            continue
        finally:
            ctx.close()
    return []

def position(domain, query, gl="us", hl="en"):
    hosts = []
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=True)
        for start in range(0, DEPTH, 10):
            url = f"https://www.google.com/search?q={quote_plus(query)}&gl={gl}&hl={hl}&start={start}"
            for link in serp_links(browser, url, hl):
                host = urlparse(link).netloc.replace("www.", "")
                if host and host not in hosts:
                    hosts.append(host)
            if domain in hosts:
                break
        browser.close()
    return hosts.index(domain) + 1 if domain in hosts else None

print(position("example.com", "buy proxies", gl="us", hl="en"))

Which package to take for rank tracking

MIX-Basic

8,000 IPs · 500–900 threads

from $50 a month

One site, one check a day. Take it when you track hundreds of keywords and need the report by morning, not every hour.

MIX-Business

16,000 IPs · 1,000–1,400 threads

from $100 a month

A package for agencies: client projects, two search engines and several regions on one pool.

MIX-Elite

25,000 IPs · 1,500–9,900 threads

from $150 a month

A package for monitoring services: hourly checks, the full top 100 and threads up to 9,900.

Five settings that protect the pool

  • One query through one proxy. A tracker that pushes a hundred queries through one address gets a captcha by the tenth.
  • A 429 response or a captcha page: set that proxy aside for 10 minutes and repeat the query through another.
  • Google returns 10 results per page. Depth 100 means ten queries, so plan the load by pages, not by keywords.
  • Set the region with search engine parameters and an address from the same country. One without the other gives a SERP no user sees.
  • Refresh the list every 10 minutes: the pool is checked every 5, and addresses that dropped are already gone from the link.

Questions about proxies for rank tracking

01How many queries a day can the pool take?
The search engine counts queries per IP. One address with pauses handles a few dozen queries a day, so the 8,000 addresses in Basic cover thousands of result pages, and the 25,000 in Elite several times more. Get the exact figure for your tracker from a test hour: the captcha rate shows up right away.
02Do these proxies work for Bing and Yandex?
Yes. Both count the query rate per address the same way Google does, so spread queries across the whole pool and keep pauses. Bing takes the region from cc and setLang, Yandex from lr; pass them with every query.
03Does the tracker need a login and password?
No. When ordering you enter the IP of the machine with the tracker, and the proxies start letting it through. Up to ten such machines, the list is edited in the dashboard.
04How do I check rankings in another country?
Google adapts the SERP to the address country and the gl and hl parameters. Add .csv to the list URL: that file has six semicolon-separated columns, ip, port, country, speed, uptime and real_ip, with the country as a two-letter code. The script below picks addresses from the countries you need and writes them to a file for the tracker. The example takes Germany and France, swap in your own codes.
import csv, io, requests

CSV_URL = "PROXY_LIST_URL_FROM_DASHBOARD.csv"
COUNTRIES = {"de", "fr"}
OUT_FILE = "proxies_de_fr.txt"

text = requests.get(CSV_URL, timeout=15).text
rows = csv.DictReader(io.StringIO(text), delimiter=";")
picked = [f"{r['ip']}:{r['port']}" for r in rows if r["country"].lower() in COUNTRIES]

with open(OUT_FILE, "w") as f:
    f.write("\n".join(picked) + "\n")
print(f"{len(picked)} proxies saved to {OUT_FILE}")
05Does this work with Key Collector and A-Parser?
Yes. Both load the list by URL and re-read it on a schedule; set the protocol to SOCKS5 or HTTP, the port is the same. Cloud trackers such as SE Ranking or Topvisor never ask for proxies, they do not need the pool.
06What happens if the pool disappoints?
That is what the $1 hour is for: run the tracker on it and look at the captcha rate. If you took a package from 3 days and changed your mind, cancel it in the dashboard: the elapsed time is billed at the regular rate and the difference goes back to your balance.

Payment, protocols and limits are covered in the general FAQ, every package is on the home page.

Start with a $1 hour

An hour on the pool shows the captcha rate for your tracker, then choose a period. Packages from 3 days refund the unused time to your balance.

Test proxies for $1
LOGIN/REGISTER