Which proxies do you need for rank tracking, and how many?
For rank tracking, use rotating datacenter proxies on the Main gateway, so every search leaves from a new IP, and keep Google traffic to a quarter of your plan’s threads. A 40-thread plan gives you 10 search threads, enough for a few thousand keyword checks a day with sensible pauses. Location comes from the gateway region plus the search’s own country settings.
Rank trackers send the same kind of request over and over: one keyword, one search engine, one results page. From a single IP, Google notices fast. You get the “unusual traffic” page, a CAPTCHA, or results that stop loading halfway through the run. The usual advice (“just buy residential”) skips what actually decides success: how many searches you push through at once.
A proxy for rank tracking has two jobs. It spreads your searches across many IPs so no single address carries the whole keyword list. And it makes the search come from the country whose rankings you want to see. A third job, city-level local rankings, is where IP-based proxies get expensive and where Storm is honestly not the right fit.
This guide covers which gateway to use, how to set up a desktop rank tracker and a custom script, the thread budget for Google, worked sizing for small and agency keyword lists, and what to do when the numbers you see don’t match a manual search.
Which Storm plan fits
Most rank trackers fit rotating proxies on the Main gateway: a new IP per search, flat monthly price, and unlimited bandwidth, so result pages with images cost nothing extra. Size the plan from your Google budget (a quarter of the threads): 40 threads for up to about 3,000 checks a day, 80 or 150 threads for agency-sized lists. Residential ports are the second choice for a smaller list that keeps hitting CAPTCHAs; they aren’t a fix for city-level local rankings, because Storm has no city targeting.
Rotating proxies (from $14/mo): 700,000+ IPs behind fixed gateway IP:PORTs. New IP on every request, or every 3 or 15 minutes. USA, EU, USA+EU or Worldwide. Unlimited bandwidth on every plan.
Get 40 threads for $39/mo See all rotating proxies plansBefore you start
- Log in to the member area and copy your gateway
IP:PORTs. They never change; the rotation happens on our side. - Add the public IP of the computer or server that will run your tool under Authorized IPs, click Save, and allow up to 15 minutes before testing. Rotating and residential proxies use IP authentication, so there is no username or password.
- Count your threads: the tool’s total open connections must stay within your plan (for example 40 threads on the 40-thread plan).
Set up a rank tracker with rotating proxies
- Count your daily searches before you buy
Multiply keywords by search engines, by locations, by result pages checked. 500 keywords, Google only, USA only, first page only is 500 searches a day. The same list checked to position 50 at 10 results a page is 2,500. This number, not the keyword count, decides the plan.
- Authorize the computer that runs the tracker
Desktop trackers run from your own PC or a VPS. Add that machine’s public IP under Authorized IPs in the member area and wait up to 15 minutes. Cloud-hosted rank tracking services run on their own servers with their own IPs, so you can’t plug IP-authorized gateways into them; those services usually handle proxies themselves.
- Pick the Main gateway in the right region
Use the Main gateway (new IP per connection). The 3-minute gateway is meant for sign-ups and browsing, not for search engines. Choose a USA or EU gateway for the market you track; avoid USA+EU for rank tracking, because half your searches would leave from the other region.
- Add the gateway to your tracker
In SEO PowerSuite Rank Tracker, open Preferences › Search Safety Settings › Proxy Rotation, enable it, and use Add or Import to enter each gateway
IP:PORTwith no username or password. Leave “Look for new proxies” off: the gateway already rotates. In ScrapeBox, see the ScrapeBox proxy guide. - Set concurrency to your Google budget
Trackers usually suggest tasks based on how many proxies you list. A gateway is one line but many IPs, so ignore that rule and set concurrency to a quarter of your plan’s threads. In Rank Tracker that’s Number of Tasks under Preferences › Misc. Global Settings: 10 on a 40-thread plan.
- Keep pauses and long timeouts on
Random pauses of a few seconds between queries and a generous request timeout cost little and cut CAPTCHAs. Link-Assistant’s own help suggests a 90-second request timeout when working through proxies.
- Run 20 keywords and compare by hand
Before a full run, check 20 keywords and compare three of them with a manual search in a private window set to the same country and language. If positions match within a place or two, start the full list.
A small rank checker in Python
This script keeps Google traffic inside a 10-thread budget, opens a fresh connection per search so each one leaves from a new IP, sets country and language explicitly, and backs off on 429s. The position parser is deliberately simple; Google’s markup changes, so check it against a saved results page before you trust it.
import random, re, time, requests
from concurrent.futures import ThreadPoolExecutor
from urllib.parse import quote_plus
GATEWAY = "http://GATEWAY_IP:PORT" # Main gateway, USA region
PROXIES = {"http": GATEWAY, "https": GATEWAY}
SEARCH_THREADS = 10 # 40-thread plan -> a quarter for Google
MY_DOMAIN = "example.com"
HEADERS = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
"(KHTML, like Gecko) Chrome/130.0 Safari/537.36",
"Accept-Language": "en-US,en;q=0.9",
"Connection": "close", # new tunnel = new exit IP
}
def position(html, domain):
links = re.findall(r'<a href="(https?://[^"]+)"', html)
links = [l for l in links if "google." not in l]
for i, url in enumerate(links, 1):
if domain in url:
return i
return None
def check(keyword, tries=3):
url = f"https://www.google.com/search?q={quote_plus(keyword)}&hl=en&gl=us"
for attempt in range(tries):
time.sleep(random.uniform(3, 8)) # pause like a person would
try:
r = requests.get(url, headers=HEADERS, proxies=PROXIES, timeout=(10, 40))
except requests.RequestException:
continue
if r.status_code == 429 or "unusual traffic" in r.text:
time.sleep(30 * (attempt + 1)) # back off, retry on a new IP
continue
return keyword, position(r.text, MY_DOMAIN)
return keyword, "failed"
keywords = [k.strip() for k in open("keywords.txt") if k.strip()]
with ThreadPoolExecutor(max_workers=SEARCH_THREADS) as pool:
for kw, pos in pool.map(check, keywords):
print(f"{kw}\t{pos}")Datacenter or residential for rank tracking?
Most comparison pages say residential, full stop. The real answer depends on volume and on how you pace requests. Google treats any IP that sends many automated searches with suspicion; a home IP buys you more patience, not immunity.
Rotating datacenter (Main gateway) gives every search a different address from a pool of 700,000+ IPs. Because no IP repeats often, per-IP limits rarely build up, and the flat price means you can check deep result pages without watching a data meter. This is where most desktop trackers and custom scripts should start.
Residential ports give one home IP per port for 5 minutes, shared by every thread on that port. That’s great for trust, but it means repeat searches from the same address inside each window. Ten threads hammering one port send all their searches from one IP for 5 minutes. If you use residential for rank checks, keep one or two search threads per port and add ports rather than threads.
A practical rule: start on rotating proxies. Move to residential only if CAPTCHAs stay high after you’ve cut concurrency to the quarter budget and added pauses.
Worked sizing: from keyword list to plan
Throughput depends on how fast Google answers and how long you pause, so treat these as planning numbers you check on your own run. Assume each search thread finishes one query every 10 to 15 seconds including a random pause. That’s roughly 240 to 360 searches per thread per hour.
- Freelancer, 300 keywords, Google USA, page one, daily: 300 searches. The 40-thread rotating plan gives 10 search threads; the run finishes in well under an hour, with 30 threads left for crawling or other tools.
- Small agency, 2,000 keywords, two markets (USA and EU), top 30: 2,000 × 2 × 3 pages = 12,000 searches a day. With 10 threads that’s 3.5 to 5 hours. With the 80-thread plan (20 search threads) it’s around 2 hours. Pick 80 threads if the report must be ready by morning.
- Agency, 10,000 keywords, daily, top 20: 20,000 searches. The 150-thread plan gives about 37 search threads, finishing in 2 to 3 hours. The 200-thread plan (50 search threads) gives headroom for retries.
- Weekly tracking only: divide the daily count by seven and size for the day you run it, not for the week.
Need to test first? The 10-thread package allows 2 or 3 search threads, enough to confirm your tracker works with the gateway, not enough to run a real list. When the list grows, the member area lets you upgrade in one click; the unused part of the current plan is credited.
Getting the right location in your rankings
Two things decide which country’s results you see: the exit IP and the search’s own parameters. Storm gateways give you a USA, EU, USA+EU or Worldwide exit. Within that, you steer the market with the query itself. Google documents gl (the searcher’s country, a two-letter code) and hl (interface language) for its Custom Search API, and rank trackers commonly pass the same names on the regular search URL. Most trackers set them for you when you pick a country.
Match all three signals: an EU gateway, gl=de, hl=de and a German Accept-Language header if you track Germany. Mismatches (a USA IP asking for German results in English) give mixed pages that won’t match what real searchers see.
What Storm can’t do: pick a city or state. Local pack and map rankings change from one city to the next, and trackers that need an exit IP in a particular city need a provider that sells that. If your tracker emulates location through search parameters instead of the IP, a country-level gateway is usually enough.
Why your tracker and your browser disagree
A position that differs from what you see manually isn’t always a proxy problem. Your own browser is signed in, has search history and sits in your city. The tracker is anonymous and country-level. Check by hand in a private window, signed out, with the same country and language settings.
Also check page depth. If the tracker counts organic results only and you count ads, maps and “People also ask” boxes too, numbers drift by two or three places. And if Google answers with a page asking for JavaScript, a plain HTTP client sees no results at all. In that case switch to a headless browser such as Playwright and budget around 10 threads per open tab.
Other SEO jobs on the same plan
The same rotating plan can feed a site crawler like Screaming Frog, backlink checks or competitor scraping, as long as the total open connections stay within the plan and Google work stays inside its quarter. Run the rank check overnight and crawls during the day, and a single 80-thread plan can cover both.
Common errors and fixes
gl and hl to match.429 Too Many Requests on retriesRetries fire too fast. Wait longer after each 429 and let the retry open a new connection so it leaves from a different IP.FAQ
Do I need proxies for rank tracking?
For a handful of keywords checked occasionally, no. Once you check hundreds of keywords daily from one IP, Google starts showing CAPTCHAs or blocking the address for a while, and proxies spread that load.
How many proxies do I need for a rank tracker?
Count searches, not keywords. Roughly 240 to 360 searches per search thread per hour with pauses, and on Storm you use a quarter of your threads for Google. A 40-thread plan handles a few thousand searches a day.
Are residential proxies better for rank tracking?
They get more patience from Google per IP, but a residential port keeps one IP for 5 minutes, so concurrent searches share it. Rotating datacenter gives a new IP per search and is usually the better start for volume.
Can I track local rankings in a specific city with Storm?
No. Storm offers USA, EU, USA+EU and Worldwide, with no city or state targeting. Use your tracker’s location parameters, or a provider that sells IPs by city for map-pack work.
Can I use Storm proxies with a cloud rank tracking service?
Usually not. Rotating and residential plans authorize by IP, and cloud services connect from their own changing servers. Run a desktop tracker or a script on a machine with a fixed IP instead.
Does Storm offer a SERP API for rank tracking?
No. Storm sells proxies, not an API. You run the tracker or script; the gateway provides the IPs, with unlimited bandwidth on every plan.
Still have questions? Contact us here. A real person answers.
Related guides
Tool facts checked against the official documentation (October 2026): Rank Tracker help: Search Safety Settings · Link-Assistant: avoid temp blocks in rank tracking · Google Custom Search JSON API: gl and hl parameters · RFC 6585: 429 Too Many Requests. Storm Proxies facts: our plans page and refund policy.
Unlimited bandwidth. One flat monthly price.
Access is live the moment you pay, and the smallest package of each proxy type has a 24-hour money-back guarantee on your first order.