IP計算チャレンジ
SERP監視を設定する際の最も一般的な質問の1つです。 「必要なIPアドレスはいくつありますか?」 回答は、いくつかの相互接続された要因に依存します。:追跡するキーワードの数、幾何の地理的な場所の問題、ターゲットを絞る検索エンジンの監視頻度、およびそれらのエンジンが自動化を検出する方法。
いずれかの方向で計算を誤って取得し、問題に直面します。 ブロック、CAPTCHA、および信頼性のないデータにつながるIP数が少ない。 未使用のプロキシ帯域幅上の多くのIPs廃棄物予算。 このガイドは、SERPモニタリングニーズに合ったIP数を計算するための実用的なフレームワークを提供します。
SERPスクレイピングの広範な技術的コンテキストについては、当社のを参照してください。 プロキシガイドによる完全なSERPスクレイピング. .
IP 要件を決定する要因
5つの主な要因は、あなたのIPニーズを駆動します。 それぞれを理解することは、正確な計算のために不可欠です。
1. キーワード数
これは最も明らかな要因です。 各キーワードは、少なくとも1つのGoogle検索が必要です。すべてのリクエストを回転させると1つのIPアドレスを消費します(これはGoogleの推奨アプローチです)。
- 小さいキャンペーン:100-500キーワード
- 中キャンペーン:500-5,000キーワード
- キャンペーン:5,000-50,000キーワード
- 企業: 50,000+キーワード
2. 地理的な場所
複数の都市や国でランキングを追跡する必要がある場合は、検索結果が異なります。 各キーワード位置の組み合わせは別のクエリです。
たとえば、米国5都市に1,000キーワードを追跡すると、5,000の合計クエリが1,000を超えない。
3. 監視頻度
ランキングが毎日クエリボリュームを多重する頻度:
| 頻度: | マルチプライヤー | ユースケース |
|---|---|---|
| デイリー | 1xの | 標準的なSEOの監視 |
| 毎日2回 | 2xの | 競争の市場、アルゴリズムの更新の追跡 |
| 6時間毎 | 4xの | 高優先キーワード、有料検索監視 |
| 時間通り | 24xの | リアルタイムランクトラッキング(レア、高価) |
| ウィークリー | 0.14xの | 低優先度、ロングテールキーワード |
4. サーチエンジン
複数の検索エンジンを追跡すると、クエリ数が多くなります。
- Googleのみ: 1x (ほとんどの共通)
- Google+ビング: 2x (広範囲の監視のために推薦される)
- Google + Bing +モバイル: 3x(デスクトップとは異なる)
5. 成功率の要求
初めての試みでリクエストを成功させることはありません。 retriesのアカウントが必要です。
- 住宅のプロキシ: 90-95%の成功率、1.1xのmultiplierのための計画
- データセンタープロキシ(ビングのみ): 70-85%の成功率、1.3xの乗数のための計画
IP計算式
ここでは、毎日のIP要件を計算するための式は次のとおりです。
# IP Calculation Formula
daily_queries = keywords * locations * frequency_multiplier * engines * retry_multiplier
# IP pool size recommendation
# Google: 10-15x the daily query count (IPs rotate back into the pool)
# Bing: 3-5x the daily query count
ip_pool_size = daily_queries * ip_multiplier作業事例
| スケナリオ | キーワード | アクセス | 頻度: | 日用品 | 推奨IPプール |
|---|---|---|---|---|---|
| 小さなブログ | 200円 | 1 | デイリー | ~220 | 2,000-3,000円 |
| ローカルビジネス | 500円 | 5都市 | デイリー | ~2,750円 | 25,000-40,000円 |
| Eコマース | 5,000円 | 3カ国 | デイリー | 16,500円 | 165,000-250,000の |
| SEO代理店 | 20,000円 | 10拠点 | デイリー | 〜220,000円 | 500,000 + |
| エンタープライズ | 100,000日元 | 20の場所 | 毎日2回 | 〜4,400,000 | 2,000,000 日元 |
Python IP の計算機
このスクリプトを使用して、特定のIP要件を計算します。
def calculate_ip_requirements(
keywords: int,
locations: int = 1,
frequency: str = "daily",
engines: list = ["google"],
proxy_type: str = "residential",
):
"""Calculate the number of IPs needed for SERP monitoring."""
frequency_multipliers = {
"hourly": 24,
"every_6h": 4,
"twice_daily": 2,
"daily": 1,
"weekly": 1 / 7,
}
retry_multipliers = {
"residential": 1.1,
"datacenter": 1.3,
}
ip_pool_multipliers = {
"google": {"residential": 12, "datacenter": 20},
"bing": {"residential": 4, "datacenter": 5},
}
freq_mult = frequency_multipliers.get(frequency, 1)
retry_mult = retry_multipliers.get(proxy_type, 1.1)
num_engines = len(engines)
daily_queries = int(keywords * locations * freq_mult * num_engines * retry_mult)
# Calculate pool size based on the most demanding engine
max_pool_mult = max(
ip_pool_multipliers.get(e, {}).get(proxy_type, 10)
for e in engines
)
recommended_pool = daily_queries * max_pool_mult
# Calculate estimated bandwidth (avg ~80KB per SERP page)
daily_bandwidth_gb = (daily_queries * 80) / (1024 * 1024)
return {
"daily_queries": daily_queries,
"recommended_ip_pool": recommended_pool,
"daily_bandwidth_gb": round(daily_bandwidth_gb, 2),
"monthly_queries": daily_queries * 30,
"monthly_bandwidth_gb": round(daily_bandwidth_gb * 30, 2),
}
# Example calculations
scenarios = [
{"keywords": 500, "locations": 1, "frequency": "daily", "engines": ["google"]},
{"keywords": 2000, "locations": 5, "frequency": "daily", "engines": ["google"]},
{"keywords": 10000, "locations": 3, "frequency": "daily", "engines": ["google", "bing"]},
{"keywords": 50000, "locations": 10, "frequency": "twice_daily", "engines": ["google"]},
]
for s in scenarios:
result = calculate_ip_requirements(**s)
print(f"\nScenario: {s['keywords']} keywords, {s['locations']} locations, {s['frequency']}")
print(f" Daily queries: {result['daily_queries']:,}")
print(f" IP pool needed: {result['recommended_ip_pool']:,}")
print(f" Daily bandwidth: {result['daily_bandwidth_gb']} GB")
print(f" Monthly bandwidth: {result['monthly_bandwidth_gb']} GB")なぜ IP プール サイズ マットレス IP の計算より
一般的な誤解は、クエリごとに1つのユニークなIPを必要とすることです。 実際、何が重要なのか プールのサイズ — 回転可能なIPの総数。 理由は次のとおりです。
- IP の再使用窓: Google クエリで IP を使用した後、15-30 分後に安全に再利用することができます。 10,000 IP のプールは、1 時間あたりの 1,000 のクエリを簡単に処理できます
- 同時アクセス: SERPモニタリングでは、通常5-50の同時同時同時IPのみが必要です。
- 地理的な配分: 各ターゲットの場所では、パターンを避けるために十分なIPが必要です。 市ごとの500+ IPは一般に十分です
ProxyHat住宅プロキシ 数百万人のIPへのアクセス 190+店舗、IP の排出の心配なしで企業のスケール SERP の監視を快適に扱う。
スケーリング戦略
あなたの監視が成長するにつれて、これらの戦略を使用して、比例してIP要件を増加させずに効率的にスケールアップします。
層の頻度
すべてのキーワードが毎日の追跡を必要としません。 階層的なアプローチを実装する:
# Tiered keyword monitoring
TIERS = {
"critical": {
"frequency": "daily",
"keywords": top_100_keywords, # Revenue-driving keywords
},
"important": {
"frequency": "twice_weekly",
"keywords": top_500_keywords, # Secondary targets
},
"monitoring": {
"frequency": "weekly",
"keywords": long_tail_keywords, # Awareness tracking
},
}
# This reduces a 10,000 keyword campaign from 10,000 daily queries
# to approximately 100 + (500 * 2/7) + (9,400 / 7) = ~1,586 daily queriesスマートスケジューリング
一日中、一度に実行するのではなく、クエリを配布します。
import asyncio
import random
from datetime import datetime, timedelta
async def schedule_serp_checks(keywords, max_concurrent=10):
"""Distribute SERP checks across the day with controlled concurrency."""
semaphore = asyncio.Semaphore(max_concurrent)
random.shuffle(keywords)
# Spread queries across 12 hours (6 AM to 6 PM)
total_seconds = 12 * 3600
delay_per_keyword = total_seconds / len(keywords)
async def check_with_limit(keyword, delay):
await asyncio.sleep(delay)
async with semaphore:
result = await check_ranking_async(keyword)
return result
tasks = [
check_with_limit(kw, i * delay_per_keyword + random.uniform(0, delay_per_keyword))
for i, kw in enumerate(keywords)
]
return await asyncio.gather(*tasks)結果キャッシュ
頻繁に変更しないキーワードについては、結果をキャッシュし、再チェックをスキップします。
import json
import hashlib
from datetime import datetime, timedelta
class SERPCache:
def __init__(self, cache_file="serp_cache.json"):
self.cache_file = cache_file
self.cache = self._load()
def _load(self):
try:
with open(self.cache_file) as f:
return json.load(f)
except FileNotFoundError:
return {}
def get(self, keyword, location, max_age_hours=24):
key = hashlib.md5(f"{keyword}:{location}".encode()).hexdigest()
entry = self.cache.get(key)
if entry:
cached_time = datetime.fromisoformat(entry["timestamp"])
if datetime.now() - cached_time < timedelta(hours=max_age_hours):
return entry["result"]
return None
def set(self, keyword, location, result):
key = hashlib.md5(f"{keyword}:{location}".encode()).hexdigest()
self.cache[key] = {
"timestamp": datetime.now().isoformat(),
"result": result,
}
with open(self.cache_file, "w") as f:
json.dump(self.cache, f)コスト見積り
IP 要件は、プロキシコストに直接影響します。 毎月の費用の見積もり方法は次のとおりです。
| スケナリオ | 日用品 | 月額帯域幅 | 見積もり費用* |
|---|---|---|---|
| 小さい(500のKW、1つの場所) | 550円 | ~1.3 GBの | $5-15/月 |
| 中(2,000 KW、5 の場所) | 11,000円 | ~25 GBの | $50-100/月 |
| 大きい(10,000のKW、3つの場所) | 66,000日元 | ~150 GBの | $200-400 /月 |
| 企業(50,000のKW、10の場所) | 1,100,000日元 | ~2,500GB | $1,500-3,000 /月 |
※住宅用プロキシ価格に基づく見積もり 提供者やプランにより実際の費用が異なります。 アクセス ProxyHat 価格 現在の速度のため。
最も費用対効果の高いアプローチは、実際の成功率に基づいて、より小さなIPプールを開始し、スケールアップすることです。 ブロックレートを監視 — 以下に滞在する場合、IP プールは十分です。 10%を超えた場合は、プールサイズを増加させます。
IP の使用状況を監視する
これらのメトリクスを追跡して、IPプールのサイズを最適化します。
class SERPMonitorMetrics:
def __init__(self):
self.total_requests = 0
self.successful = 0
self.blocked = 0
self.captchas = 0
self.retries = 0
def record(self, success, block_type=None):
self.total_requests += 1
if success:
self.successful += 1
elif block_type == "captcha":
self.captchas += 1
elif block_type:
self.blocked += 1
@property
def success_rate(self):
if self.total_requests == 0:
return 0
return self.successful / self.total_requests * 100
@property
def block_rate(self):
if self.total_requests == 0:
return 0
return (self.blocked + self.captchas) / self.total_requests * 100
def report(self):
print(f"Total requests: {self.total_requests:,}")
print(f"Success rate: {self.success_rate:.1f}%")
print(f"Block rate: {self.block_rate:.1f}%")
print(f"CAPTCHAs: {self.captchas}")
if self.block_rate > 10:
print("WARNING: Block rate exceeds 10%. Consider increasing IP pool size.")
elif self.block_rate > 5:
print("NOTICE: Block rate above 5%. Monitor closely.")スケールによる提言
SERPモニタリングのセットアップの数千をサポートする経験に基づいて、以下は実用的な推奨事項です。
スターター(1,000キーワード未満)
- 使用条件 ProxyHat住宅プロキシ 自動回転を使って
- 最小プール:5,000 IP
- 毎日の頻度は十分です
- 遅延によるシングルスレッドスクレイピングがうまく機能
成長 (1,000 - 10,000 キーワード)
- 層周波数を実装し、トータルクエリを削減
- 5-10同時接続を使用する
- 最低プール:50,000-100,000 IPs
- 再試行ロジックと結果キャッシュの実装
スケール(10,000〜100,000キーワード)
- Queue ベースのアーキテクチャは不可欠です
- 20-50同時接続を使用する
- 最低プール:500,000+ IPs
- 12時間以上の時間でクエリを配布
- 包括的な監視とアラートの実施
エンタープライズ(100,000以上のキーワード)
- お問い合わせ プロキシハート 専用のIPプールを備えた企業向けプラン
- 複数の規制スクレイピングインフラ
- リアルタイム監視ダッシュボード
- カスタム回転とセッションポリシー
拡張可能なSERPモニタリングを構築するには、記事を参照してください ウェブスクレイピングに最適なプロキシ, スクラップ中にブロックを回避と アンチボットシステムがプロキシを検出する方法. 参照して下さい ProxyHat ドキュメント セットアップガイドのため。






