SEOポイズニングとは、検索結果の上位に、偽のサイトや攻撃のためのページを出させる手口です。検索した人を詐欺サイトや不審な販売サイトへ連れて行くのが目的で、そのためのページは、攻撃者が自分で用意するほか、乗っ取った普通の会社のサイトの中に勝手に作られることがあります。JPCERT/CC(JPCERTコーディネーションセンター)は、国内のサイトが改ざんされて不正なページが置かれ、そのページを検索結果の上位に出すための「SEOポイズニングの細工」がされていた事例を報告しています。
ですから、立場は二つあります。利用者としては、よく使うサービスは検索ではなくブックマークか正規のアプリから開き、検索から入ったページで警告・電話・入力・ダウンロードを求められたら、そこで止まります。サイトの運営者としては、月に一度、Search Console(Googleの無料の道具)の「セキュリティの問題」を開き、「site:自社のドメイン」で検索して見覚えのないページが出ていないか、「ユーザーと権限」に見覚えのないオーナーがいないかを確かめます。何も出ていなければ、それ以上の手当ては要りません。
内容は、2026年10月に IPA(情報処理推進機構)、JPCERT/CC、Google 検索セントラルと各ヘルプの説明で確かめたものです。画面の名前は変わることがあります。
SEOポイズニングとは:検索結果を入口にした待ち伏せ
ポイズニング(poisoning)は「毒を混ぜる」という意味です。検索結果という、多くの人が信用して押す場所に、毒の入ったリンクを混ぜておく。これが名前の由来です。
JPCERT/CCが2021年6月に公開した分析(「ラッキービジター詐欺で使用されるPHPマルウェア」)は、手口の中身がよく分かる例です。要点を並べると次のとおりです。
- 国内のサイトのCMS(WordPressのような、管理画面からページを作れる仕組み)の脆弱性が悪用され、不正なプログラムがサーバーに置かれる。
- そのプログラムが、訪問者を詐欺サイトや不審な商品販売サイトへ転送するページを、サイトの中に大量に作る。サイトマップ(sitemap.xml)や robots.txt も書き換えられる。
- 作られたページには大量のキーワードが埋め込まれ、検索結果の上位に出るよう細工されている。
- 転送されるのは、Google などの検索エンジンから来た人だけ(ほかにもいくつか条件がある)。条件に合わない訪問、たとえば検索エンジンの巡回プログラム(クローラー)や、検索を経由しない訪問には、正規のサイトから盗んだ文章でできた無害なページが表示される。しかも同じIPアドレス(接続元の番号)からの2回目以降は転送しない。
最後の点が、運営者にとっていちばん厄介なところです。社内の人がブックマークから自社のサイトを開いても、何も起きていないように見えます。被害に遭うのは、検索から来たお客様だけです。JPCERT/CCは2016年にも、WordPressなどのCMSの中のファイルが書き換えられ、ページを開いた人のブラウザで動く不正なコードが差し込まれた事例を報告し、運営者が気づきにくいことを指摘しています。
Googleも、こうした行為を検索のスパムに関するポリシーで「ハッキングされたコンテンツ」として挙げています。新しいページを勝手に足す「ページ インジェクション」、既存のページに隠しテキストや隠しリンクを入れる「コンテンツ インジェクション」、有害なページへ転送するコードを入れる「リダイレクト」などです。ポリシーには、同じURLにブラウザから直接アクセスすると転送されない場合がある、とも書かれています。
なお、検索結果の上のほうに出る広告が入口になることもあります。IPAは、サービス名で検索したときに検索結果の最上位に「罠の広告」が出ることがあり、押すと偽のセキュリティ警告が出る場合がある、と注意を呼びかけています。仕組みは広告で、厳密にはSEOではありませんが、利用者から見れば「検索結果の一番上を押したら偽物だった」という同じ出来事です。この記事では、利用者の側の備えとしてまとめて扱います。
| 入口 | 何が起きるか | 主に備える人 |
|---|---|---|
| 攻撃者が作った偽サイト | 本物に似せたページで入力や購入をさせる | 利用者 |
| 乗っ取られた普通のサイト | サイト内に不正なページが作られ、検索から来た人だけ転送 | 利用者と、そのサイトの運営者 |
| 検索結果の広告 | 押すと偽の警告や偽サイトへ | 利用者 |
利用者として:検索結果から偽サイトに入らないために
社内の誰もが毎日検索をしています。見た目で本物と偽物を見分けるのは難しいので、「見分ける」より「入口を決めておく」「止まる場面を決めておく」ほうが確実です。
- よく使うサービスは、検索から開かない。IPAは、サービスを使うときは、いつも使っているブックマーク(お気に入り)からアクセスするか、正規のアプリを使うよう勧めています。ネットバンキング、通販、クラウドの会計、社内で使う管理画面などは、ブックマークに入れて、そこから開くと決めておきます。
- 押す前に、アドレスのドメインを見る。検索結果のリンクの近くには、行き先のサイトのアドレスが出ます。会社名やサービス名は合っているのに、ドメイン(「.co.jp」や「.com」の前の部分)が見慣れないものなら押しません。
- ブラウザやGoogleの警告が出たら、引き返す。Chromeのヘルプによると、フィッシングやマルウェアが見つかったサイトでは「危険なサイト」という赤い警告が、開こうとしているアドレスが本物と違うおそれがあるときは「このサイトは正しいですか?」「偽のサイトにアクセスしようとしています」といった表示が出ます。検索結果に「このサイトは第三者によってハッキングされている可能性があります」と出ているサイトについて、Googleは、その表示が消えるまでアクセスしないよう勧めています。
- 検索から入ったページで、次の4つを求められたら止まる。電話をかける、パスワードやカード番号を入れる、ソフトやアプリを入れる、「ウイルスに感染しました」などの警告に従う。
4の警告が出てしまったときの判断も書いておきます。IPAによると、偽のセキュリティ警告の画面が表示されただけなら、パソコンはウイルスに感染しておらず、画面を閉じるだけで問題ありません。画面に出た電話番号には電話をしません。全画面で閉じられないときは、パソコンなら「Esc」キーを長押しすると閉じるボタンが出ます(IPAの案内では3秒ほど)。電話をかけてしまった、遠隔操作のソフトを入れてしまった、お金を払ってしまった場合は、IPAの「情報セキュリティ安心相談窓口」や、消費生活センター(局番なしの188)に相談します。
会社としては、この4項目を一枚の紙にして、社内の全員に配っておくのが手軽です。迷ったときに「止まってよい」と決まっているだけで、慌てて電話をかける人は減ります。
運営者として:自社サイトが悪用されているときの兆候
小さな会社のサイトが狙われるのは、会社が有名だからではありません。更新されていないWordPressやプラグイン、弱いパスワードといった「入りやすい入口」があるからです。Googleのハッキング対策の解説(web.dev)も、乗っ取りのよくある原因として、パスワードの推測、更新されていないソフトウェア、手入れのされていないテーマやプラグイン、必要のない人に管理者の権限を渡していることなどを挙げています。
乗っ取られても、トップページの見た目は変わらないことが多いので、気づくのは外からの知らせか、検索の側からです。兆候と、見る場所をまとめます。
| 兆候 | どこで見るか |
|---|---|
| セキュリティの問題が出ている | Search Console「セキュリティの問題」 |
| 自社の検索結果に「第三者によってハッキングされている可能性」の表示 | 自社名で検索 |
| 作った覚えのないページが検索に出る | 「site:自社のドメイン」で検索 |
| 見覚えのないオーナーがいる | Search Console「設定」→「ユーザーと権限」 |
| サイトマップに見覚えのないURLが大量にある | サイトマップのファイル、Search Console「サイトマップ」 |
| 本業と関係のない商品名などで表示されている | Search Console「検索パフォーマンス」 |
「セキュリティの問題」レポート:問題がなければ緑のチェック
Search Console ヘルプによると、問題がなければ緑のチェックマークと説明が表示され、問題があればレポートの上に問題の総数が出ます。問題の種類は「ハッキングされたコンテンツ」「マルウェアや望ましくないソフトウェア」「ソーシャル エンジニアリング」に分かれ、個別には「ハッキング: コンテンツ インジェクション」「ハッキング: URL インジェクション」などの名前で出ます。問題が見つかると、検索結果に警告が付いたり、ページを開いた人のブラウザに警告ページが出たりすることがあります。
ここに緑のチェックが出ていれば、Googleが見つけた問題はない、という意味です。ただし、Googleがまだ見つけていない改ざんがないことまでは保証しないので、次の二つも合わせて見ます。
「site:」検索:ランダムな名前のページ、外国語やブランド品の題
Googleの検索窓に「site:example.co.jp」のように、自社のドメインの前に「site:」を付けて検索すると、そのサイトの中でGoogleに登録されているページが並びます。Googleがよく知られた例として解説している「日本語キーワードハック」では、ランダムな文字の名前のフォルダの中に、自動で作られた日本語のページが大量に置かれ、偽ブランド品の販売サイトへのリンクで稼ぐ仕組みになっています。並んだ題に、自社と関係のない商品名やブランド名、外国語、意味の通らない文字の並びがあれば、要注意です。
見るときの注意が二つあります。一つは、site: の結果は全部ではないことです。Google 検索セントラルは、site: で返されるURLの一覧は網羅的ではない、と明記しています。Googleの解説も、Googleで見つからなければ、ほかの検索エンジンで同じ検索をしてみるよう書いています。もう一つは、怪しいURLを自分で開いても、何もない(404などの)ページに見えることがある点です。乗っ取ったページを、運営者には「消えた」ように見せ、Googleにはスパムを見せる手口があるためです。Googleがそのページをどう見たかは、Search Console の「URL 検査」で確かめます。
逆に、見覚えのないURLがあっても、すぐに乗っ取りとは限りません。当社のサイトでも、Search Console の「ページ(インデックス作成)」に、「/*」「/wp-content/*」のような、末尾が「*」の実在しないURLが「見つかりませんでした(404)」として3件出ていました。中身のあるページではなく、どこかの記述(robots.txtの書き方やテーマ内の参照など)をGoogleがURLとして拾ったもの、と当社はみています(原因は確定していません)。これは改ざんの兆候ではありません。Google自身が「見つかりませんでした(404)」と記録している、つまりGoogleにも中身が見えていないURLで、「*」という記号の形にも説明がつくからです。このように中身のない404で、URLの形にも説明がつくなら、対処は要りません。ランダムな名前のURLが404に見えるときは、上に書いたとおり URL 検査で、Googleが見た中身を確かめます。区別の付け方はnoindex・404・重複の見分け方に書いています。注意すべきなのは、中身があり、自社の言葉ではない題が付いたページです。
「ユーザーと権限」:見覚えのないオーナー
乗っ取った側が、自分を Search Console のオーナーに加えていることがあります。Googleの解説は、見覚えのないオーナーがいれば、乗っ取りを疑う手がかりになるとしています。Search Console の「設定」→「ユーザーと権限」を開き、並んでいる人を一人ずつ確かめます。この画面はオーナーにしか表示されません。見覚えのない人がいれば、その人のメールアドレスを控えてから外し、確認済みのオーナーなら、サイトに置かれた確認用のファイルやタグも消します。外し方はサーチコンソールのユーザー追加と権限付与にあります。
月に一度、15分で自社サイトを確かめる手順
Search Console に登録していない場合は、まず登録します(サーチコンソールとは)。登録したあとは、次の順に見ます。
- Search Console で自社のサイトを開き、左のメニューの「セキュリティの問題」を開きます。緑のチェックか、問題の一覧かを見ます。続けて「手動による対策」も開き、何も出ていないかを見ます。
- Googleの検索窓に「site:自社のドメイン」と入れて検索し、題とURLをざっと見ます。作った覚えのないページ、外国語や商品名の題がないかを見ます。同じことを Bing でも行います。
- 自社の会社名で検索し、自社の結果に警告の表示が付いていないかを見ます。
- Search Console の「設定」→「ユーザーと権限」で、見覚えのない人がいないかを見ます。
- 「検索パフォーマンス」の「クエリ」の表を表示回数の多い順に並べ、本業と関係のない商品名やブランド名がないかを見ます(数字の読み方は検索パフォーマンスの見方)。
- WordPressなら、管理画面の「ユーザー」→「ユーザー一覧」で、見覚えのない管理者が増えていないかを見ます。
- 見た日と結果を一行メモに残します。「10月◯日 セキュリティの問題なし、site: 異常なし、オーナー2名」のように。
もう一つ、当社の考えでは「登録済みのページの数」も目安になります。Search Console の「ページ(インデックス作成)」の登録済みの数と、自社のサイトマップに載っているURLの数を比べます。当社のサイトでは、10月8日の時点で、サイトマップ(WordPress標準の目次)で検出されたURLが181、登録済みが98でした。登録済みがサイトマップの数より少ないのは、新しいサイトではよくあることです。反対に、登録済みがサイトマップの数を大きく超えて急に増えていたら、自分で作っていないページが登録されていないかを疑います。
改ざんに気づいたときの対処の順番
兆候が見つかったら、慌てて一つずつ消す前に、次の順で進めます。消すことから始めると、どこから入られたのかの手がかりまで消してしまい、同じ入口からまた入られるおそれがあります。Search Console ヘルプも、問題は一部のページだけでなくサイト全体で直すよう書いています。
- 記録を残す。見つけた日時、怪しいURL、Search Console の画面、検索結果の画面を、スクリーンショットで残します。
- サーバー会社と、サイトを頼んでいる会社に連絡する。Googleの解説(web.dev)は、まずサイトを公開から外す(サーバーを止める、別の場所の「メンテナンス中」のページに向ける)ことと、サーバー会社に知らせることを挙げています。お客様が検索から詐欺サイトへ送られている最中なら、止める判断を急ぎます。
- 人と鍵を整理する。WordPressの管理者、サーバーやFTP(ファイルを置くための接続)のアカウント、Search Console のオーナーを確かめ、見覚えのないものを消します。そのうえで、すべてのパスワードを変えます。JPCERT/CCは、マルウェアに感染したパソコンからサイト更新用のアカウント情報が盗まれている可能性も指摘しているので、更新に使っているパソコンも確かめます。
- 不正なファイルとページを取り除く。乗っ取られる前のバックアップがあれば、そこから戻すのが確実です。WordPressの「リビジョン」は記事の本文を戻すためのもので、プログラムのファイルは戻せません(WordPressのバックアップ方法)。JPCERT/CCの事例のように、サイトマップや robots.txt まで書き換えられることがあるので、それらも元に戻っているか確かめます。
- 入口をふさぐ。WordPress本体・テーマ・プラグインを最新にし、使っていないものは消します。どれが入口だったかの調べ方はWordPressの脆弱性とはに書きました。
- Googleに審査をリクエストする。「セキュリティの問題」レポートの「審査をリクエスト」から、何が起きていて、何を直し、どうなったかを具体的に書いて送ります。ヘルプによると、再審査の多くは数日から数週間かかり、結果はメールで届きます。結果が出る前に何度も送り直さないよう書かれています。web.dev の解説では、きれいになったと判断されれば、ブラウザと検索結果の警告は72時間以内に外れます。
JPCERT/CCは、改ざんの被害を受けた場合の連絡先として、インシデント対応の依頼の窓口を案内しています。取り除いたあとも検索結果に不正なページが残って困るときの、一時的に隠す方法はサーチコンソールでインデックスを削除する方法にあります。
放っておいてよいか:見えたものごとの判断
当社が勧める目安です。サイトの作りや、頼んでいる会社との分担で変わります。
| 見えたもの | 判断 | いつまでに |
|---|---|---|
| 「セキュリティの問題」に問題が出た | 上の対処の順番で動く | その日のうち |
| 自社の検索結果にハッキングの表示 | 同上 | その日のうち |
| 見覚えのないオーナー・管理者 | 外して、パスワードを全部変える | その日のうち |
| site: に自社の言葉でない題のページ | URL 検査で中身を確かめる | その日〜翌営業日 |
| URL 検査でも中身のない404だけ | 放っておいてよい | — |
| すべて異常なし | 何もしない。見た日を記録 | 翌月にまた見る |
「何もしない」が正しい判断になるのは、確かめた結果、何も出なかったときだけです。確かめていない「何もしない」は、判断ではなく見落としです。
自社をかたる偽サイトを見つけたとき
自社のサイトは無事でも、自社の名前やロゴをまねた偽サイトが検索に出ることがあります。この場合、偽サイトそのものは他人のサーバーにあるので、自社で消すことはできません。できることは三つです。
- Googleに報告する。Google 検索セントラルの「スパム、フィッシング、マルウェアを報告する」のページから、スパム、マルウェア、フィッシング(フィッシングは Google セーフ ブラウジングの担当)のそれぞれを報告できます。
- 自社のサイトのお知らせで、正しいドメインと、偽サイトの見分け方(自社が電話で支払いを求めることはない、など)を伝える。
- お客様から問い合わせが来たときの答え方を、社内で決めておく。
乗っ取られないために、先にやっておくこと
SEOポイズニングに自社のサイトを使われないための備えは、普段のサイトのセキュリティ対策と同じです。JPCERT/CCも、改ざんの事例の対策として、使っているCMSやプラグインを常に最新にすることを挙げています。小さな会社が最初にやる8つ(更新、使わないプラグインの削除、パスワードと二段階認証、管理者を絞る、バックアップなど)はWordPressのセキュリティ対策にまとめています。
一つだけ付け加えると、乗っ取りは、気づくのが遅いほど被害が広がります。検索から来たお客様だけが転送される手口では、社内の人は自分では気づけません。月に一度の15分の確認を、誰がやるかを決めておくことが、いちばん安上がりな備えです。
当社は、ホームページの運営に加わり、問い合わせが来るまでを引き受けています。Search Console の確認や更新の作業は、その土台として運営の中で行っています。毎月見る人を社内で決めにくい、見覚えのないページが出ていて判断がつかない、という場合は、相談するからお知らせください。
参考にした公式の説明
- JPCERT/CC Eyes「ラッキービジター詐欺で使用されるPHPマルウェア」(2021年6月)
- JPCERT/CC Eyes「改ざんの標的となるCMS内のPHPファイル」(2016年2月)
- JPCERT/CC「Web サイト改ざんに関する注意喚起」(2013年)
- IPA「パソコンに偽のウイルス感染警告を表示させるサポート詐欺に注意」
- IPA「偽セキュリティ警告(サポート詐欺)対策特集ページ」
- IPA「URLリンクへのアクセスに注意」
- Google 検索セントラル「Google 検索のスパムに関するポリシー」(ハッキングされたコンテンツ)
- Google 検索セントラル「ソーシャル エンジニアリング(フィッシングや偽のサイト)」
- Google 検索セントラル「site: 検索演算子」
- Google 検索セントラル「スパム、フィッシング、マルウェアを報告する」
- Search Console ヘルプ「セキュリティの問題レポート」
- Search Console ヘルプ「ユーザーと権限」
- Google 検索ヘルプ「Google 検索の問題を報告する」(「このサイトは第三者によってハッキングされている可能性があります」)
- Google Chrome ヘルプ「安全でないサイトについての警告表示を設定する」
- web.dev「Help, I think I’ve been hacked」ほか、ハッキングされたサイトの対処の解説(英語)
- web.dev「Fix the Japanese keyword hack」(日本語キーワードハックの対処、英語)
- web.dev「Request a review」(審査のリクエスト、英語)
※内容は2026年10月に各公式の説明で確かめたものです。手口や画面の表示は変わることがあります。