2026年10月7日時点で、ShifterはOxylabsやBright Dataを上回る、最大規模の米国ライブIPプールを保有しており、しかもコストはその一部で済みます。Shifterは現在、稼働中の米国IPの中で最大のプールを保有しています

ベンチマークを見る

ナレッジ

SEOクローキングとは?複数のロケーションから検出する方法

SEOクローキングとは何か、Googleがクローキングとみなすもの・みなさないもの、そしてユーザーエージェント、リファラー、ロケーションごとのレスポンスを比較して自社サイトや競合サイトのクローキングを検出する方法を解説します。

Daniel Okafor

2026年10月18日 · 2 分で読める

SEOクローキングとは、検索エンジンにはあるバージョンのページを見せ、人間には別のバージョンを見せる手法です。クローラーはランキングされやすい、キーワードを豊富に含んだきれいなページを受け取り、クリックした訪問者は別のもの(多くの場合はリダイレクト、別のオファー、あるいは露骨なスパム)を受け取ります。Googleはクローキングをスパムポリシーに含めており、それが発覚したサイトは個別のページ、あるいはドメイン全体のランキングを失う可能性があります。

多くのチームがクローキングに出会うのは防御側の立場からです。たとえば、ハッキングされたサイトが、所有者が見たこともない医薬品やカジノ関連のキーワードでランキングしているケースや、競合のランキングページがスニペットの内容と一致しないケースです。いずれの場合も、発見するのはSEOモニタリングの課題です。訪問者の種類ごとにページがどう見えるかを確認し、比較する必要があります。

クローキングに該当するもの

Googleの定義は意図に基づいています。つまり、ランキングを操作しユーザーを欺く目的で、ユーザーと検索エンジンに異なるコンテンツを提示することです。Google自身が挙げる例には、クローラーには旅行先に関するページを配信しながら訪問者には格安医薬品のページを見せることや、リクエスト元が検索エンジンの場合にのみテキストやキーワードを挿入することが含まれます。

仕組みは常に同じです。サーバー、またはページ上のスクリプトが、誰がアクセスしているように見えるかに基づいて送信内容を決めます。使われるシグナルは次のとおりです。

  • ユーザーエージェント。 単純なバージョンです。「Googlebot」と名乗るものにはすべてきれいなページを返します。
  • IPアドレス。 慎重なバージョンです。Googleが公開しているクローラーの範囲からのリクエストで、逆引きDNSで検証されたものにのみきれいなページを返すため、ユーザーエージェントを偽装するだけでは解除できません。
  • リファラー。 Googleの検索結果ページから来た訪問者にはリダイレクトを返し、URLを直接入力した人(サイト所有者を含む)には通常のサイトを見せます。
  • ロケーションとネットワーク。 ターゲット国から家庭回線でアクセスする訪問者にはペイロードを返し、オフィス、クラウド、データセンターの範囲にはきれいなバージョンを返します。審査担当者やセキュリティスキャナーはそこからアクセスしてくるからです。
  • デバイス。 モバイルの訪問者だけをリダイレクトする手口もあります。収益化できるのがそこだからです。

実際のケースの多くはこれらを2つか3つ組み合わせており、そのため自分のデスクから1回確認しただけでは通常何も見つかりません。

クローキングに該当しないもの

訪問者ごとに異なるレスポンスを返す正当な構成は数多くあります。Googleは、同等のユーザーが見るものをクローラーも見られる限り、これらは問題ないとしています。

  • 地域と言語によるパーソナライズ。 ドイツの訪問者にユーロで価格を表示するのはクローキングではありません。同じ場所にいるユーザーとGooglebotを異なる扱いにすれば、クローキングになります。ローカライズされたGoogle検索結果に関するガイドでは、ロケーションによって表示内容がどう変わるかを解説しています。
  • ペイウォールと限定コンテンツ。 Googleがペイウォールコンテンツ向けの構造化データを文書化しているのは、まさにパブリッシャーがクローキング扱いされずにクローラーに記事全文を見せられるようにするためです。
  • デバイス別のレイアウト。 メインコンテンツが同等であれば、モバイルとデスクトップで異なるマークアップを使っても問題ありません。
  • ボット向けのレンダリング。 クローラーに事前レンダリングしたHTMLを配信する方法は、かつては重いJavaScriptへの回避策として推奨されていました。現在Googleはこれを長期的な解決策ではなく回避策と位置づけていますが、コンテンツが一致していればクローキングではありません。

いずれについても、判断基準は同じ問いです。クローラーと同じ立場にいる実際のユーザーは、同じコンテンツを受け取るでしょうか。

1か所からでは確認できない理由

クローキングされたページは、確認する可能性が最も高い閲覧者にこそきれいに見えるよう作られています。そのため、3つの盲点が生じます。

  1. あなた自身が除外対象です。 ログインした状態で、オフィスから、あるいはURLを直接入力して自社サイトを確認しても、リファラーに基づくハッキングは決して姿を現しません。サイト所有者はSearch Consoleや顧客から知らされることがよくあります。
  2. あなたはGooglebotになれません。 Googlebotのユーザーエージェントを送信しても、見抜けるのは単純なクローキングだけです。クローラーのIPを検証する仕組みであれば、あなたはユーザーとして扱われます。
  3. 市場やネットワークが違います。 ある国の家庭回線を使うモバイル訪問者にのみ発動する手口は、別の国のクラウドサーバーからは見えません。

したがって検出とは比較であり、クローキングがフィルタリングに使う条件をカバーできるだけの観測地点から実行する必要があります。

検出のワークフロー

ステップ1:まずGoogleの視点を取得する。 Search ConsoleのURL Inspectionツールのライブテストは、Google自身のインフラからGooglebotとしてページを取得し、レンダリングされたHTMLとスクリーンショットを表示します。Rich Results Testは、自分が所有していないページに対して同じことを行います。実際のGooglebotのIPから取得されるため、これがクローラー版を確認できる唯一の信頼できる方法です。

ステップ2:ユーザー視点を収集する。 同じURLを一般の訪問者として取得し、条件を1つずつ変えていきます。

バリエーションユーザーエージェントリファラーネットワーク
ベースラインデスクトップブラウザなし自社オフィス
検索からデスクトップブラウザgoogle.comの検索結果ページ自社オフィス
検索からのモバイルモバイルブラウザgoogle.comの検索結果ページターゲット国の家庭IP
検索からのデスクトップ(市場)デスクトップブラウザgoogle.comの検索結果ページターゲット国の家庭IP
単純なボットチェックGooglebotの文字列なし自社オフィス

家庭IPの行でレジデンシャルプロキシが役立ちます。テスト対象国の一般家庭の回線を使うため、リクエストはその手口が待ち構えている訪問者のように見えます。プロキシの地域、タイムゾーン、ロケールを一致させるためのガイドで説明しているとおり、ロケール、タイムゾーン、言語を出口の国と一致させてください。そうしないと、よくできた手口はあなたを外れ値として扱います。

ステップ3:重要な部分を比較する。 生のHTMLは、トークンやタイムスタンプのためにどの2つのリクエストでも異なります。ランキングや訪問者の体験を左右する部分を比較してください。

  • リダイレクト後の最終URLと、チェーン内のすべてのホップ
  • タイトル、メタディスクリプション、canonical、robotsディレクティブ
  • 正規化してハッシュ化したメインテキスト
  • 外部リンク、特に見慣れないドメインへのリンク

ステップ4:繰り返す。 ハッキングや競合の手口は、訪問の一部に対してのみ、あるいは特定の時間帯にのみ発動することがよくあります。1回きれいな結果が出ても、証拠としては弱いものです。ページが問題ないと結論づける前に、異なる出口と時間帯でマトリクスを何度か実行してください。

以下は最小限の比較スクリプトです。PROXY_URLに国を指定したレジデンシャルゲートウェイを設定し、対象とする市場ごとにバリエーションを追加してください。

import hashlib, os, re
import requests

URL = "https://example.com/some-page"
DESKTOP = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0 Safari/537.36"
MOBILE = "Mozilla/5.0 (iPhone; CPU iPhone OS 18_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.0 Mobile/15E148 Safari/604.1"
GOOGLEBOT = "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"
SERP = "https://www.google.com/"
RESI = {"http": os.environ["PROXY_URL"], "https": os.environ["PROXY_URL"]}

VARIANTS = {
    "baseline": dict(ua=DESKTOP, ref=None, proxies=None),
    "from_search": dict(ua=DESKTOP, ref=SERP, proxies=None),
    "mobile_market": dict(ua=MOBILE, ref=SERP, proxies=RESI),
    "desktop_market": dict(ua=DESKTOP, ref=SERP, proxies=RESI),
    "googlebot_ua": dict(ua=GOOGLEBOT, ref=None, proxies=None),
}

def tag(html, pattern):
    m = re.search(pattern, html, re.I | re.S)
    return m.group(1).strip() if m else ""

def fingerprint(ua, ref, proxies):
    headers = {"User-Agent": ua, "Accept-Language": "en-US,en;q=0.9"}
    if ref:
        headers["Referer"] = ref
    r = requests.get(URL, headers=headers, proxies=proxies, timeout=30)
    html = r.text
    text = re.sub(r"<script.*?</script>|<style.*?</style>|<[^>]+>", " ", html, flags=re.S)
    text = re.sub(r"\s+", " ", text).strip().lower()
    return {
        "final_url": r.url,
        "hops": [h.headers.get("Location", "") for h in r.history],
        "title": tag(html, r"<title[^>]*>(.*?)</title>"),
        "canonical": tag(html, r'<link[^>]+rel=["\']canonical["\'][^>]+href=["\']([^"\']+)'),
        "robots": tag(html, r'<meta[^>]+name=["\']robots["\'][^>]+content=["\']([^"\']+)'),
        "text_hash": hashlib.sha256(text.encode()).hexdigest()[:12],
    }

results = {name: fingerprint(**v) for name, v in VARIANTS.items()}
base = results["baseline"]
for name, res in results.items():
    diffs = [k for k in res if res[k] != base[k]]
    print(f"{name:15} {'SAME' if not diffs else 'DIFFERS: ' + ', '.join(diffs)}")

text_hashだけが異なる場合は、無害なパーソナライズかもしれません。final_urlが異なる、新しいリダイレクトホップがある、あるいは検索からの訪問者にだけ表示されるタイトルがある、といった場合が調査すべきパターンです。その後、ユーザー視点の結果をURL Inspectionのライブテストで得たHTMLと比較してください。

発見した場合の対処法

自社サイトの場合は、 まずセキュリティインシデントとして扱ってください。自分で構築していないサイト上のリファラーやIPに基づくクローキングは、ほぼ確実に侵害を意味します。サーバールールの注入、改ざんされたプラグインやテーマ、テンプレートに追加されたスクリプトなどです。コードを削除し、侵入を許した穴を塞いだうえで、Googleが手動による対策を適用している場合はSearch Consoleで再審査をリクエストしてください。その後、同じ市場から比較マトリクスを再実行し、取り除かれたことを確認します。

競合サイトの場合は、 報告する前に記録を残してください。Rich Results Testでクローラー版を取得し、ユーザー版をタイムスタンプ、出口の国、デバイスとともに記録し、リダイレクトチェーン全体を保存します。Googleは検索品質の報告フォームを通じてスパム報告を受け付けています。同じ行為の有料検索版については、クローキングされた広告や地域ターゲティング広告を見つけるためのガイドで広告側を解説しています。

監視を続けてください。 侵入経路が修正されていなければハッキングは再発し、最も上位にランキングされているページで再発する傾向があります。オーガニックトラフィックをもたらしている国から、上位のランディングページに対して週1回マトリクスを実行すれば、低コストで早期警告が得られます。

よくある質問

SEOクローキングは違法ですか?

通常は法律の問題ではなく、検索エンジンのポリシー違反です。Googleはクローキングをスパムポリシーに含めており、それを使うページの順位を下げたり削除したりできます。クローキングが詐欺やマルウェアを隠している場合は、コンテンツそのものに他の法律が適用される可能性があります。

国によって異なるコンテンツを表示するのはクローキングですか?

それ自体はクローキングではありません。国ごとに価格、言語、オファーをローカライズするのは一般的なことです。同じ状況にいるユーザーとクローラーを異なる扱いにした場合に、クローキングになります。

ユーザーエージェントをGooglebotに変更すればクローキングを確認できますか?

単純なクローキングに限ります。慎重な手口はクローラーのIPを検証するため、偽装したユーザーエージェントは一般の訪問者として扱われます。Googleの実際の視点を確認するには、Search ConsoleのURL Inspectionのライブテストか、Rich Results Testを使ってください。

クローキングの検出にレジデンシャルIPが必要なのはなぜですか?

多くの手口は、ターゲット市場の一般の訪問者にだけペイロードを表示し、オフィス、クラウド、データセンターのアドレスにはきれいなページを表示します。その市場の家庭回線から確認することが、そうした訪問者が受け取るものを確認する方法です。

まとめ

クローキングは確認する可能性が最も高い相手から隠れるため、自分のデスクから1回見ただけではほとんど何も証明できません。Google自身のツールでGoogleの視点を取得し、重要な市場でリファラー、デバイス、家庭回線ごとのユーザー視点を収集し、最終URL、タイトル、メインコンテンツを比較し、ページが問題ないと判断する前に繰り返してください。自社サイトであれば、発見したものを侵害として扱い、侵入経路を修正してください。多数のロケーションでページがどう表示されるかを継続的に追跡するには、ジオグリッド順位トラッキングのガイドをご覧ください。

始める準備はできていますか?

Shifterのレジデンシャルプロキシをお試しください。IP 205M+件、195+カ国、$0.10/GBから。

始める