Сколько IP-адресов нужно для SERP мониторинга: практический расчёт
SERP мониторинг — это сбор данных о позициях сайтов в результатах поиска по заданным ключевым словам. Чем больше ключевых слов и чем чаще вы обновляете (refresh) данные, тем больше запросов отправляется к поисковикам. Каждый запрос идёт с определённого IP-адреса, и поисковые системы жёстко ограничивают количество запросов с одного IP. Превышение лимита приводит к блокировкам — HTTP 429, CAPTCHA или полному бану IP. Вопрос «сколько IP нужно?» — это чистая математика, основанная на объёме запросов и безопасной скорости запросов с одного адреса.
В этом руководстве мы разберём конкретные формулы расчёта пула IP-адресов, сравним типы прокси и покажем, как настроить SERP мониторинг через ProxyHat для разных масштабов трекинга.
Почему поисковики блокируют IP при SERP мониторинге
Google, Bing и другие поисковики публикуют результаты через веб-интерфейс, рассчитанный на людей, а не на автоматизированные системы. Когда с одного IP-адреса поступает слишком много поисковых запросов за короткое время, антибот-системы срабатывают автоматически.
Основные механизмы блокировки:
- HTTP 429 Too Many Requests — стандартный код ответа, определённый в RFC 6585, указывающий на превышение лимита запросов. В заголовке
Retry-Afterможет содержаться рекомендуемое время ожидания. - CAPTCHA — вместо результатов поиска возвращается страница с задачей (обычно reCAPTCHA от Google). Без решения CAPTCHA запросы с этого IP продолжают блокироваться.
- Временный бан IP — IP-адрес полностью блокируется на период от нескольких часов до нескольких дней. Повторные нарушения могут привести к перманентному бану.
Согласно документации Mozilla, код 429 означает, что пользователь отправил слишком много запросов за заданное время. Поисковые системы не публикуют точные лимиты, но эмпирические данные показывают, что безопасный порог для Google составляет примерно 100–200 запросов в час с одного IP без признаков автоматизации. При превышении этого порога риск блокировки резко возрастает.
Формула расчёта объёма запросов для SERP мониторинга
Чтобы определить, сколько IP-адресов нужно, сначала рассчитайте суточный объём запросов. Базовая формула:
суточные_запросы = ключевые_слова × частота_обновления × поисковики × локации
Где:
- Ключевые слова — количество отслеживаемых ключей.
- Частота обновления (refresh) — сколько раз в день вы проверяете позиции (1 = раз в день, 2 = каждые 12 часов, 4 = каждые 6 часов и т. д.).
- Поисковики — количество поисковых систем (Google = 1, Google + Bing = 2).
- Локации — количество географических регионов (стран или городов), по которым отслеживаются позиции.
Пример 1: малый масштаб
1 000 ключевых слов, обновление 2 раза в день, только Google, 3 локации (Москва, Санкт-Петербург, Казань):
1 000 × 2 × 1 × 3 = 6 000 запросов в день
Пример 2: средний масштаб
10 000 ключевых слов, обновление 4 раза в день, Google + Bing, 5 локаций:
10 000 × 4 × 2 × 5 = 400 000 запросов в день
Пример 3: крупный масштаб
50 000 ключевых слов, обновление 6 раз в день, Google + Bing + Yandex, 10 локаций:
50 000 × 6 × 3 × 10 = 9 000 000 запросов в день
Расчёт необходимого количества IP-адресов
Зная суточный объём запросов, можно рассчитать минимальный пул IP. Формула:
IP_минимум = суточные_запросы / (запросы_на_IP_в_день)
Ключевой параметр — запросы на IP в день. На практике безопасная скорость для Google составляет около 100 запросов в час на IP, что даёт примерно 2 400 запросов в день при равномерном распределении. Однако нужно учитывать:
- Оверхед на ретраи — часть запросов завершится ошибкой (429, CAPTCHA, таймаут). Заложите 30–50% дополнительных запросов.
- Время на обработку — парсинг HTML-страницы занимает 1–3 секунды, плюс задержка между запросами для снижения подозрительности.
- Окно мониторинга — если обновление происходит не 24/7, а в течение 12 часов, доступная пропускная способность на IP уменьшается вдвое.
Скорректированная формула с учётом оверхеда:
IP_с_запасом = (суточные_запросы × 1.5) / (запросы_на_IP_в_день)
| Масштаб | Суточные запросы | Запросов на IP/день | IP минимум | IP с запасом (×1.5) |
|---|---|---|---|---|
| Малый | 6 000 | 2 400 | 3 | 4–5 |
| Средний | 400 000 | 2 400 | 167 | 250 |
| Крупный | 9 000 000 | 2 400 | 3 750 | 5 625 |
Эти расчёты основаны на консервативной оценке 100 запросов/час на IP. Если вы используете резидентные прокси, которые лучше имитируют реальный трафик, можно поднять порог до 150–200 запросов/час, но это увеличивает риск блокировок. Рекомендуем начинать с консервативных значений и постепенно повышать нагрузку, отслеживая процент ошибок.
Стратегии ротации IP: sticky vs rotating
Два основных подхода к распределению запросов по IP-адресам:
Ротация на каждый запрос (per-request rotation)
Каждый новый запрос отправляется с нового IP. Это максимально распределяет нагрузку и снижает риск блокировки любого отдельного адреса. Подходит для SERP мониторинга, где каждый запрос независим — вы запрашиваете позицию по ключевому слову и переходите к следующему.
В ProxyHat ротация на каждый запрос включена по умолчанию — просто отправляйте запросы без указания session ID, и каждый получит новый IP.
Sticky-сессии (постоянные сессии)
Несколько последовательных запросов выполняются с одного IP в течение заданного времени. Это полезно, когда поисковик требует прохождения через несколько страниц (пагинация результатов) или когда нужно сохранить cookies/сессию для обхода антибот-проверок.
В ProxyHat sticky-сессия задаётся через имя пользователя:
http://user-session-abc123:pass@gate.proxyhat.com:8080
Все запросы с session ID abc123 будут идти с одного IP, пока сессия активна.
Что выбрать для SERP мониторинга
Для большинства задач SERP мониторинга оптимальна ротация на каждый запрос. Каждый запрос к поисковику — это отдельная проверка позиции по ключевому слову, и нет необходимости сохранять сессию. Ротация максимизирует количество доступных IP и минимизирует риск блокировок.
Sticky-сессии полезны, если:
- Поисковик требует прохождения CAPTCHA или JS-челленджа, и нужно сохранить сессию после решения.
- Вы парсите несколько страниц результатов (например, топ-100 вместо топ-10) и хотите, чтобы запросы выглядели как последовательные действия одного пользователя.
- Вы отслеживаете персонализированные результаты и хотите сохранить контекст сессии.
Геотаргетинг и локации в SERP мониторинге
Результаты поиска Google зависят от местоположения пользователя. Позиция сайта по запросу «доставка пиццы» в Москве и в Новосибирске может отличаться. Для корректного SERP мониторинга нужно отправлять запросы с IP-адресов, географически привязанных к отслеживаемым локациям.
ProxyHat поддерживает геотаргетинг на уровне страны и города через имя пользователя:
http://user-country-DE-city-berlin:pass@gate.proxyhat.com:8080
Это означает, что для мониторинга 5 локаций вам не обязательно нужен 5-кратный пул IP — достаточно указать нужную страну/город в параметрах, и ProxyHat выдаст IP из соответствующего региона. Однако количество доступных IP в каждой локации ограничено, и при высоких нагрузках нужно проверять, достаточно ли адресов в каждом регионе.
Дополнительные параметры геотаргетинга:
- Страна —
user-country-USдля IP из США. - Город —
user-country-DE-city-berlinдля IP из Берлина. - ASN — для таргетинга на конкретного интернет-провайдера (доступно по запросу).
Подробнее о доступных локациях — на странице локаций ProxyHat.
Резидентные vs дата-центрные vs мобильные прокси
Тип прокси напрямую влияет на то, сколько IP вам нужно, и как часто они будут блокироваться.
| Параметр | Резидентные | Дата-центрные | Мобильные |
|---|---|---|---|
| Происхождение IP | Реальные домашние провайдеры | Дата-центры и облачные хостинги | Мобильные операторы (4G/5G) |
| Риск блокировки Google | Низкий | Высокий | Очень низкий |
| Скорость | Средняя (100–500 мс) | Высокая (10–50 мс) | Низкая (200–1000 мс) |
| Цена за GB | Средняя | Низкая | Высокая |
| Размер пула IP | Миллионы | Тысячи | Сотни тысяч |
| Подходит для SERP | Да (рекомендуется) | С осторожностью | Да (для сложных случаев) |
Резидентные прокси — оптимальный выбор
Резидентные прокси используют IP-адреса реальных интернет-провайдеров, поэтому поисковые системы воспринимают запросы как трафик от обычных пользователей. Риск блокировки значительно ниже, чем у дата-центрных IP, которые Google часто распознаёт по ASN (Autonomous System Number) и блокирует превентивно.
Для SERP мониторинга резидентные прокси — это баланс между ценой, скоростью и надёжностью. Пул IP измеряется миллионами, что позволяет масштабировать мониторинг без исчерпания адресов.
Дата-центрные прокси — для низких объёмов
Дата-центрные прокси быстрее и дешевле, но Google активно блокирует их. Если вы отслеживаете 100–200 ключевых слов с обновлением раз в день, дата-центрные прокси могут справиться. При масштабировании до тысяч ключевых слов процент блокировок вырастет до 50–80%, что делает их нерентабельными.
Мобильные прокси — для максимальной надёжности
Мобильные прокси используют IP-адреса мобильных операторов. Google особенно лоялен к мобильному трафику, поскольку за одним IP могут скрываться тысячи реальных пользователей (NAT). Риск блокировки минимален, но скорость ниже, а цена выше. Мобильные прокси оправданы для мониторинга в особо сложных условиях — например, при отслеживании высококонкурентных ниш, где Google применяет агрессивные антибот-меры.
Настройка SERP мониторинга через ProxyHat
Рассмотрим практическую реализацию на Python. Пример ниже отправляет запросы к Google с ротацией IP через ProxyHat.
Базовый запрос через HTTP-прокси
import requests
proxies = {
"http": "http://user:pass@gate.proxyhat.com:8080",
"https": "http://user:pass@gate.proxyhat.com:8080",
}
params = {
"q": "купить прокси",
"num": 100,
"hl": "ru",
"gl": "ru",
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"Accept-Language": "ru-RU,ru;q=0.9",
}
response = requests.get(
"https://www.google.com/search",
params=params,
proxies=proxies,
headers=headers,
timeout=30,
)
print(f"Status: {response.status_code}")
print(f"Length: {len(response.text)}")
Запрос с геотаргетингом на Германию
proxies = {
"http": "http://user-country-DE:pass@gate.proxyhat.com:8080",
"https": "http://user-country-DE:pass@gate.proxyhat.com:8080",
}
params = {
"q": "best proxy service",
"num": 100,
"hl": "en",
"gl": "de",
}
response = requests.get(
"https://www.google.com/search",
params=params,
proxies=proxies,
headers=headers,
timeout=30,
)
Запрос через SOCKS5
proxies = {
"http": "socks5://user:pass@gate.proxyhat.com:1080",
"https": "socks5://user:pass@gate.proxyhat.com:1080",
}
response = requests.get(
"https://www.google.com/search",
params=params,
proxies=proxies,
headers=headers,
timeout=30,
)
Запрос через curl
curl -x "http://user-country-US:pass@gate.proxyhat.com:8080" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \
-H "Accept-Language: en-US,en;q=0.9" \
"https://www.google.com/search?q=proxy+service&num=100&gl=us"
Параллельный мониторинг с управлением скоростью
Для масштабного SERP мониторинга нужен параллельный сбор с контролем скорости. Пример с использованием asyncio и aiohttp:
import asyncio
import aiohttp
KEYWORDS = ["купить прокси", "residential proxy", "serp tracking", ...]
CONCURRENCY = 20 # параллельных запросов
DELAY = 3 # секунд между запросами в одной задаче
PROXY = "http://user:pass@gate.proxyhat.com:8080"
async def fetch_rank(session, keyword):
params = {
"q": keyword,
"num": 100,
"hl": "ru",
"gl": "ru",
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
}
try:
async with session.get(
"https://www.google.com/search",
params=params,
proxy=PROXY,
headers=headers,
timeout=aiohttp.ClientTimeout(total=30),
) as resp:
if resp.status == 429:
await asyncio.sleep(30) # backoff
return None
html = await resp.text()
return parse_results(html, keyword)
except Exception as e:
print(f"Error for '{keyword}': {e}")
return None
async def main():
semaphore = asyncio.Semaphore(CONCURRENCY)
async with aiohttp.ClientSession() as session:
async def limited_fetch(kw):
async with semaphore:
result = await fetch_rank(session, kw)
await asyncio.sleep(DELAY)
return result
results = await asyncio.gather(*[limited_fetch(kw) for kw in KEYWORDS])
return results
results = asyncio.run(main())
В этом примере 20 параллельных запросов с задержкой 3 секунды дают эффективную скорость ~660 запросов в час. С ротацией ProxyHat каждый запрос идёт с нового IP, поэтому фактическая нагрузка на один IP — 1 запрос, что практически исключает блокировки.
Типичные ошибки при расчёте пула IP
1. Игнорирование оверхеда на ретраи
При расчёте пула IP многие забывают, что 10–30% запросов завершатся ошибкой и потребуют повторного выполнения. Без учёта оверхеда фактическая нагрузка на IP окажется выше расчётной, что приведёт к каскадным блокировкам.
2. Использование дата-центрных прокси для масштабного мониторинга
Дата-центрные IP дешевле, но Google распознаёт их по ASN и блокирует агрессивнее. При объёме от 10 000 запросов в день процент блокировок может достигать 60–80%, что сводит на нет всю экономию.
3. Отсутствие backoff-стратегии
При получении HTTP 429 нужно приостановить запросы с этого IP и подождать. Без backoff-стратегии система продолжает отправлять запросы на заблокированный IP, усугубляя ситуацию. Рекомендуется экспоненциальный backoff: 5 → 10 → 20 → 40 секунд.
4. Игнорирование геотаргетинга
Если вы отслеживаете позиции в 10 локациях, но отправляете все запросы с IP одной страны, результаты будут некорректными. Google персонализирует результаты по геолокации IP, и позиции для разных регионов будут отличаться.
5. Слишком высокая конкурентность
100 параллельных запросов с одного IP — это гарантированная блокировка за секунды. Даже с ротацией ProxyHat следите за тем, чтобы конкурентность не превышала разумных значений. 20–50 параллельных запросов — безопасный диапазон для большинства задач.
Практические рекомендации по масштабированию
- Начните с консервативной скорости — 100 запросов/час на IP. Мониторьте процент ошибок в течение 24 часов. Если ошибок меньше 2%, постепенно повышайте скорость.
- Используйте резидентные прокси для объёмов от 5 000 запросов в день. Дата-центрные прокси допустимы только для небольших объёмов и тестирования.
- Настройте геотаргетинг через параметры
countryиcityв ProxyHat для каждой отслеживаемой локации. - Мониторьте метрики — процент успешных ответов (цель: >95%), среднее время ответа (цель: <2 секунд), количество 429-ошибок (цель: <3%).
- Планируйте запас IP — закладывайте 50% оверхед на ретраи и пиковые нагрузки.
Подробнее о вариантах использования — на странице SERP tracking и web scraping. Техническая документация доступна на docs.proxyhat.com. Цены на прокси — на странице тарифов ProxyHat.
Ключевые выводы
- Суточный объём запросов для SERP мониторинга = ключевые слова × частота обновления × поисковики × локации.
- Безопасная скорость для Google — около 100 запросов в час на IP, что даёт ~2 400 запросов в день на один IP.
- Резидентные прокси — оптимальный выбор для SERP мониторинга: низкий риск блокировок, пул IP в миллионы адресов.
- Ротация на каждый запрос — стандартная стратегия для SERP мониторинга; sticky-сессии нужны только для пагинации и обхода CAPTCHA.
- Закладывайте 50% запас IP на ретраи, пиковые нагрузки и временные блокировки.






