
Sora Fujimoto
AI Solutions Architect

GoogleのAI Overviewsは、あなたのニッチ分野の具体的な競合を引用しており、これらの引用はユーザーがどのブランドを考慮するかに直接影響を与えます。AI生成の回答における競合の可視性を追跡することで、コンテンツのギャップ、引用パターン、戦略的な機会を把握でき、従来のSEOツールでは見逃されるものです。このガイドでは、CapSolverを使用してGoogleの検索結果への継続的なアクセスを維持し、AI Overviews用の自動化された競合可視性追跡システムを構築する方法を紹介します。
あなたの業界のクエリに対してGoogleがAI Overviewsを生成する際、特定のソースを引用します。これらの引用はランダムではありません。クエリに最も適切なコンテンツをGoogleが評価した結果です。あなたの競合がターゲットキーワードでAI Overviewsに常に表示される一方で、あなたが表示されない場合、彼らは毎日何百万もの購入意思決定に影響を与えるチャネルで可視性を獲得しています。
従来のSEOツールはオーガニックランク(1〜10位)を追跡しますが、AI Overviewsはオーガニック結果の上に存在し、異なるルールで動作します。競合がオーガニックで5位にランクインしている場合でも、AI Overviewsでは1位として引用される可能性があり、これは不比例な可視性と信頼信号をもたらします。Search Engine Landの研究によると、AI Overviewsは表示されるクエリで重要なクリック率を獲得しています。
AI Overviewsにおける競合の可視性をモニタリングすることで、あなたのターゲットクエリにおいてGoogleが権威あると評価する競合、引用されるコンテンツ形式(リスト、定義、比較、データ)、あなたが埋められる引用ギャップのあるクエリ、および時間の経過に伴う引用パターンの変化が明らかになります。
pip install git+https://github.com/capsolver-ai/capsolver-core.git
pip install aiohttp beautifulsoup4 pandas
export CAPSOLVER_API_KEY="your-capsolver-api-key"
追加の要件:
import asyncio
import time
from dataclasses import dataclass, field
from typing import List, Optional
from capsolver_core import create_capsolver, CaptchaType, CaptchaInfo
@dataclass
class CompetitorCitation:
domain: str
position: int
query: str
context: str
timestamp: float
@dataclass
class CompetitorVisibilityReport:
competitor: str
total_citations: int
avg_position: float
queries_cited: List[str]
content_types_cited: List[str]
visibility_score: float # 0-100
class CompetitorVisibilityTracker:
"""Google AI Overviewsにおける競合の可視性を追跡します。"""
def __init__(self, api_key: str, proxies: list, competitors: list):
self.cap = create_capsolver(api_key=api_key)
self.proxies = proxies
self.competitors = competitors
self.citation_history = []
async def track_query(self, query: str) -> List[CompetitorCitation]:
"""クエリのAI Overviewにどの競合が表示されるかを追跡します。"""
proxy = self.proxies[self.proxy_idx % len(self.proxies)]
self.proxy_idx = getattr(self, 'proxy_idx', 0) + 1
html = await self._search_google(query, proxy)
if self._is_captcha(html):
info = CaptchaInfo(
type=CaptchaType.RECAPTCHA_V2,
website_url="https://www.google.com",
website_key="6LfwuyUTAAAAAOAmoS0fdqijC2PbbdH4kjq62Y1b"
)
solution = await self.cap.solve(info)
html = await self._retry_search(query, proxy)
citations = self._extract_ai_overview_citations(html)
# トレースされた競合のみをフィルタリング
competitor_citations = []
for citation in citations:
for comp in self.competitors:
if comp in citation.get("domain", ""):
competitor_citations.append(CompetitorCitation(
domain=comp,
position=citation["position"],
query=query,
context=citation.get("context", ""),
timestamp=time.time()
))
self.citation_history.extend(competitor_citations)
return competitor_citations
async def run_full_audit(self, queries: list) -> List[CompetitorVisibilityReport]:
"""すべてのターゲットクエリにおける可視性を監査します。"""
for query in queries:
await self.track_query(query)
await asyncio.sleep(8)
# 競合ごとのレポートを生成
reports = []
for comp in self.competitors:
comp_citations = [c for c in self.citation_history if c.domain == comp]
if comp_citations:
reports.append(CompetitorVisibilityReport(
competitor=comp,
total_citations=len(comp_citations),
avg_position=sum(c.position for c in comp_citations) / len(comp_citations),
queries_cited=list(set(c.query for c in comp_citations)),
content_types_cited=self._analyze_content_types(comp_citations),
visibility_score=self._calc_visibility_score(comp_citations, len(queries))
))
return sorted(reports, key=lambda r: r.visibility_score, reverse=True)
def _calc_visibility_score(self, citations: list, total_queries: int) -> float:
"""引用頻度と位置に基づいて可視性スコア(0〜100)を計算します。"""
if not citations or total_queries == 0:
return 0
frequency_score = (len(citations) / total_queries) * 50
position_score = sum(max(0, 10 - c.position) for c in citations) / len(citations) * 5
return min(100, frequency_score + position_score)
async def close(self):
await self.cap.aclose()
| 洞察 | 注目すべき点 | 行動 |
|---|---|---|
| 引用リーダー | 50%以上の可視性スコアを持つ競合 | そのコンテンツ形式と深さを分析してください |
| 位置支配 | 1〜2位に常に表示される競合 | その権威信号とコンテンツ構造を研究してください |
| クエリギャップ | どの競合も引用されていないクエリ | これらのクエリに対して決定的なコンテンツを作成してください |
| フォーマットパターン | リスト、テーブル、定義が引用されるか | コンテンツで勝者のフォーマットに合わせてください |
| 新興競合 | 引用に表示される新しいドメイン | 早期にそのコンテンツ戦略をモニタリングしてください |
async def weekly_competitive_report(tracker, queries):
"""週次競合インテリジェンスレポートを生成します。"""
reports = await tracker.run_full_audit(queries)
print("=== AI Overview競合可視性レポート ===\n")
print(f"分析されたクエリ: {len(queries)}")
print(f"トレースされた競合: {len(tracker.competitors)}\n")
for i, report in enumerate(reports, 1):
print(f"{i}. {report.competitor}")
print(f" 可視性スコア: {report.visibility_score:.1f}/100")
print(f" 引用: {report.total_citations} 件、{len(report.queries_cited)} クエリで")
print(f" 平均位置: {report.avg_position:.1f}")
print(f" トップクエリ: {', '.join(report.queries_cited[:3])}")
print()
| モニタリング範囲 | 週間クエリ数 | 月間CAPTCHAs | 月間コスト |
|---|---|---|---|
| 50クエリ、5競合 | 200/月 | ~60 | $0.12-0.18 |
| 200クエリ、10競合 | 800/月 | ~240 | $0.48-0.72 |
| 500クエリ、15競合 | 2,000/月 | ~600 | $1.20-1.80 |
ボーナーコードを取得してください: CapSolverダッシュボードでコード WEBS を使用して、毎回の充電に5%のボーナスを追加してください。
CapSolver reCAPTCHAガイドは、Googleの特定の実装をカバーしています。CapSolver AIブログは、追加のGEOモニタリングパターンを提供しています。CAPTCHAの種類についての理解については、CapSolver FAQが一般的な質問をカバーしています。
AI Overviewsにおける競合の可視性追跡は、あなたのターゲットクエリにおいてGoogleが権威あると評価するブランドを明らかにします。CapSolverは、GoogleのreCAPTCHAを3〜8秒で解決する検証クリアインフラを提供し、競合の引用を継続的にモニタリングすることが可能になります。競合インテリジェンスデータは直接GEO戦略に影響を与え、あなたに正確にどのコンテンツを作成するか、どのフォーマットを使用するか、どのクエリが最高の価値を持つ機会であるかを示します。
30%以上の可視性スコアは、ターゲットクエリのほぼ3分の1で競合がAI Overviewsに表示されていることを意味し、これは重要な存在です。50%以上のスコアは支配的な可視性を示します。ほとんどのニッチでは、2〜3の競合が高スコアを持ち、多くの競合が10%以下のスコアを持っています。
コンテンツの新鮮さ、権威信号、Googleのモデルの更新に応じて、毎日変化する可能性があります。週次追跡は主要な変化をキャプチャし、日々の追跡はコンテンツキャンペーンやアルゴリズムの更新中の急な変化をキャッチします。
はい。自分のドメインを競合リストに追加してください。自分の可視性スコアを競合と比較して、ギャップを特定し、GEO最適化の取り組みの影響を時間とともに測定できます。