こんにちは。10年以上WordPressを使っているウェブエンジニアのアメンボです。
「スマホで自分のサイトを開いたら、知らない通販サイトに飛ばされた」「検索結果に、書いた覚えのない日本語のページがずらっと並んでいる」「Googleの検索結果に『このサイトはハッキングされている可能性があります』と出ている」。これらはどれも、WordPressが改ざんされたときによく見られる症状です。
やっかいなのは、こうした改ざんの多くが管理者には気づかれないよう作られている点です。普段使っているパソコンからアクセスすると普通に表示されてしまうため、「気のせいかな」と見過ごしている間に被害が広がってしまいます。この記事では、症状ごとの確認手順からコードが仕込まれやすい場所、具体的な対処法、そしてGoogleの警告を解除するまでの流れを分かりやすく解説します。
[Kensukeさん加筆: 実際にリダイレクト改ざんに遭ったときのエピソードを1〜2文]
結論:この順番で進める
- 自分以外の目で確かめる:ログアウトしたスマホ回線や
site:検索、外部のチェックツールを使って症状を確認します - 被害の拡大を止める:作業前に現状のバックアップを取り、関係するパスワードをすべて変更します
- 仕込まれたものを消す:.htaccessやPHPファイル、データベース、ユーザーを点検し、WordPress本体・プラグイン・テーマを公式ファイルで入れ直します
- スパムページを片付ける:存在しないページとして404や410を返す状態へ整え、Search Consoleに不審な所有者がいないか確認します
- Googleに審査をリクエストする:Search Consoleの「セキュリティの問題」から、どのような対処を行ったかを具体的に記載して申請します

サーバーのファイルやデータベースを直接操作する作業が多いため、「自力での復旧は不安」「できるだけ早く元に戻したい」という方は、記事の後半で案内している駆除・復旧の代行サポートもあわせてご検討ください。
症状から見当をつける
改ざんの症状は、大きく3つのパターンに分けられます。これらが同時に発生しているケースも珍しくないため、心当たりのある項目はすべてチェックしておきましょう。
| 症状 | よくある原因 | まず見る場所 |
|---|---|---|
| 勝手に別のサイトへ飛ばされる(スマホだけ・検索から来たときだけ・初回だけ、など) | 条件付きリダイレクトの仕込み(コードインジェクション) | .htaccess、テーマのPHP、投稿本文やウィジェットのJavaScript |
| 検索結果に、見覚えのない日本語のページが大量に出る | 日本語キーワードハック(スパムページの自動生成) | site:検索、Search Consoleの所有者、サーバー上の見慣れないフォルダ |
| 検索結果に「このサイトはハッキングされている可能性があります」と出る/Chromeで赤い警告画面が出る | Googleが改ざんやマルウェアを検出した | Search Consoleの「セキュリティの問題」 |
なお、「管理画面にはアクセスできるのに、サイトを開くと画面が真っ白で表示されない」といった状況であれば、改ざん以外のトラブルである可能性が高くなります。心当たりがある方は、WordPressの管理画面は開くのにサイトが表示されないときの原因と直し方を先にご確認ください。
なぜ自分には見えないのか
リダイレクトやスパムページの仕込みは、サイトに訪れたユーザーの環境を判別して表示内容を切り替える仕組みになっています。ログイン中の管理者やブックマークから訪れた人には通常のページを見せつつ、検索結果からスマホでアクセスしてきた人だけを外部サイトへ転送します。また、Googleのクローラーにだけスパム用の日本語ページを読み込ませる「クローキング」と呼ばれる手口も使われます。こうしてサイト管理者の目を欺き、発覚を遅らせているのです。

そのため、「自分のパソコンから見たら問題なかった」からといって、安心はできません。次にご紹介する手順で、第三者の視点からサイトの状態を確かめてみましょう。
1. 自分以外の目で確かめる
ログアウトしたスマホで、検索結果から開く
まずはWi-Fiをオフにしてモバイル回線につなぎ、スマホのシークレットブラウザを立ち上げます。その状態でGoogleからご自身のサイト名を検索し、検索結果のリンクからアクセスしてみてください。URLの直接入力やブックマーク経由では、転送処理が作動しないことがあるためです。サイト内のページをいくつか巡回してみて、不審な外部サイトへリダイレクトされないかをチェックします。
site:検索で、知らないページがないか見る
Googleの検索窓に site:あなたのドメイン(例:site:example.com)と打ち込んで検索すると、現在インデックスされているページの一覧が表示されます。この一覧に、投稿した記憶のない日本語タイトル(ブランド品や医薬品名など)や、規則性のない英数字で構成されたURLが紛れ込んでいないか確認してください。見つかった場合は、日本語キーワードハックの被害に遭っている疑いがあります。

外部のツールでチェックする
サイトの外部から無料で安全性を確かめられるWebツールが2つあります。どちらもURLを入力するだけで手軽に調べられます。
- Google透明性レポート(セーフブラウジングのサイトステータス):Googleが現在、対象サイトを「安全でない」と判定しているかどうかを確認できます
- Sucuri SiteCheck:外部からアクセスできる範囲をスキャンし、既知のマルウェアや不審なリダイレクト、ブラックリストへの登録状況を調べてくれます

立ち上げたばかりのサイトやアクセス規模が小さいサイトでは、「データがありません」と返されることがよくあります。これは判定に必要な情報が少ないという意味で、「安全ではない」という警告が出ているわけではありません。

ただし、こうした外部ツールで調べられるのは、外側から閲覧できる部分に限られます。判定結果が「問題なし」であっても、特定の条件だけで動くリダイレクトやサーバー内に隠れたファイルまでは検知できないことがあります。何らかの不審な症状が出ているなら、そのまま次の確認へ進んでください。
Search Consoleで確認する
Google Search Consoleを利用している場合は、管理画面の左側にあるメニューから「セキュリティと手動による対策」→「セキュリティの問題」を開いてみましょう。改ざんが検知されていると、ここに問題の種類(コード インジェクション、コンテンツ インジェクション、URL インジェクション、マルウェアなど)とあわせて、該当するURLの例が表示されます。
[スクショ: Search Consoleの「セキュリティの問題」画面(Search Console登録後に差し込み)]
不審なURLに心当たりがあるときは、画面上部のURL検査に該当URLを入力し、「公開URLをテスト」を実行してみてください。これにより、Googleのクローラーにどう見えているかを確認できます。普段のブラウザ表示は正常なのに、テスト結果にスパムの文章が現れるようなら、クローキングが行われているサインです。
2. 被害の拡大を止める
改ざんが起きていると分かったら、復旧作業に取り掛かる前にまず次の3つを済ませておきましょう。
- 現状を丸ごとバックアップする:改ざんされたファイルやデータベースをそのまま保存しておきます。侵入経路や原因を探る手がかりになるだけでなく、復旧作業で万が一ミスが起きた際の戻り先にもなります(公開ディレクトリには置かないでください)
- パスワードをすべて変更する:WordPressの管理者アカウントをはじめ、レンタルサーバーのコントロールパネル、FTP/SSHアカウント、データベースのパスワードまで、すべて新しいものに変えます。パスワードを盗まれて侵入されている場合、変更しない限り何度消しても戻されてしまいます
- サーバーの自動バックアップを確認する:サーバー側にバックアップが残っており、改ざん前の時点に戻せるなら、それが復旧への一番の近道です
バックアップからの復元手順や、変更すべきパスワードの範囲については、WordPressがマルウェアに感染したときの復元方法と再発防止で詳しく解説しています。ここでは、バックアップで戻せない場合や、戻したあとに不正なファイルが残っていないかを点検する方法を見ていきます。
3. 仕込まれやすい場所を確認して消す
不審なリダイレクトやスパムページを生み出すコードは、置かれる場所にある程度の傾向があります。上から順に確かめていきましょう。

| 場所 | 見るポイント |
|---|---|
| .htaccess(WordPressの設置フォルダや、その上のフォルダ) | 心当たりのない RewriteCond や RewriteRule。特に、検索エンジンからの訪問(HTTP_REFERER)やスマホ(HTTP_USER_AGENT)を条件にして、外部URLへ転送している記述 |
| wp-config.php、index.php | ファイルの先頭や末尾に付け足された不自然に長い1行のコード、include で見知らぬファイルを読み込んでいる記述 |
| テーマ(functions.php、header.php、footer.php) | 読めない文字列や、外部のJavaScriptを読み込んでいる記述 |
| プラグイン(plugins、mu-plugins) | インストールした覚えのないプラグイン。mu-plugins は管理画面に表示されにくいため、サーバー側で中身を直接確認する |
| uploads フォルダ | 画像などを置く場所なのに、.php ファイルが存在していないか |
| データベース | wp_options の siteurl/home が書き換えられていないか、投稿本文やウィジェットに <script> が紛れ込んでいないか、見覚えのない管理者ユーザーが追加されていないか |
難読化された悪意あるコードでは、eval(、base64_decode(、gzinflate(、str_rot13( といった関数がよく使われます。サーバーにSSHで接続できる環境であれば、WordPressを設置しているフォルダで次のコマンドを実行すると、疑わしいファイルの候補をまとめて洗い出せます。
# 難読化によく使われる関数を含むPHPファイル
grep -rlE "eval\(|base64_decode\(|gzinflate\(|str_rot13\(" --include="*.php" .
# uploads の中にある PHP ファイル
find wp-content/uploads -name "*.php"
# 最近7日以内に変更されたPHPファイル
find . -name "*.php" -mtime -7
ただし、正規のプラグインやテーマでもこれらの関数が使われていることはあるため、ヒットしたからといってすぐに削除せず、中身を見て判断してください。SSHが使えない場合は、サーバーのファイルマネージャーで更新日時順に並べて確認するか、レンタルサーバーが提供しているウイルススキャン機能を活用しましょう。
見つけたら、部分的に消すより「入れ直す」
怪しいコードを1か所ずつ取り除こうとすると、見落としが出やすくなります。仕込みは複数の場所に分けて置かれ、1つでも残っていると他を復活させる作りになっていることが多いためです。そのため、WordPress本体・プラグイン・テーマは公式のファイルで丸ごと入れ直し、自分で作ったものと画像(uploads)だけを確認して戻すやり方のほうが確実です。
作業に不安がある場合は、できるだけテスト環境で手順を試してから本番に反映させることをおすすめします。
ファイルの見極めや入れ直しに自信がない場合は、無理に進めず駆除の代行に任せるのも手です。中途半端な削除を繰り返すと、悪意あるコードが残ったまま原因が分かりにくくなってしまいます。
4. 日本語スパムページを片付ける
日本語キーワードハックを受けた場合、サーバー上の不正なコードを取り除いたあとも、Googleの検索結果には自動生成されたスパムページがしばらく残ります。次の手順に沿って整理していきましょう。
Search Consoleの所有者を確認する(重要)
日本語キーワードハックでは、攻撃者があなたのサイトのSearch Consoleに自分を所有者として登録していることがあります。所有者になられると、不正なサイトマップを送信されたり、設定を書き換えられたりしてしまいます。「設定」→「ユーザーと権限」を開き、見覚えのない所有者やユーザーがいれば削除してください。あわせて、サーバー上に置かれた google で始まる見覚えのない確認用HTMLファイルや、.htaccess に書かれた確認用の設定も消しておきましょう(残っていると、再び所有者に戻られてしまいます)。
[スクショ: Search Consoleの「設定」→「ユーザーと権限」画面(Search Console登録後に差し込み)]
スパムページが404か410を返すことを確かめる
site:検索で出てきたスパムページのURLをいくつか開き、「ページが見つかりません」と表示されるかを確認します。このとき、トップページへリダイレクトさせるのは避けてください。存在しないページとして404(または410)を返していれば、Googleが再クロールするたびに、検索結果から外していきます。
サイトマップと削除ツール
- サイトマップ:Search Consoleの「サイトマップ」を開き、自分で送っていないサイトマップがないか確認します。あれば削除し、正しいサイトマップを送り直してください
- 削除ツール:目立つスパムページを急いで検索結果から外したい場合は、Search Consoleの「削除」で一時的に非表示にできます。ただし、効果は約6か月の一時的なものです。本当に消えるのは、対象ページが404や410を返していることをGoogleが認識したときです
スパムページが数千〜数万件ある場合、検索結果から消えきるまでに数週間〜数か月かかることもあります。焦ってすべてを削除ツールに登録するより、404や410を返す状態を保って再クロールを待つことのほうが大切です。
5. Googleの警告を解除する(審査をリクエスト)
検索結果の「このサイトはハッキングされている可能性があります」という表示や、Chromeの赤い警告画面は、Googleが改ざんやマルウェアを検出したことで出ています。片付けが終わったら、Search Consoleから審査をリクエストしましょう。
- 「セキュリティの問題」を開き、表示されている問題をすべて直したことを確認します
- 「問題を修正しました」にチェックを入れ、「審査をリクエスト」を押します
- 何が原因で、どう直したかを具体的に書いて送ります
「修正しました」とだけ書いても審査は通りにくいため、原因と対処を分けて書きましょう。たとえば次のような内容です。
原因:更新が止まっていたプラグイン(○○)の脆弱性から侵入され、.htaccess とテーマの functions.php にリダイレクトのコードを追加されていました。
対処:WordPress本体・全プラグイン・テーマを公式ファイルで入れ直し、不正な管理者ユーザーとSearch Consoleの不正な所有者を削除しました。全アカウントのパスワードを変更し、2段階認証を有効にしました。スパムページは現在404を返しています。
審査にかかる期間は問題の種類によって異なり、Googleの説明では、ほとんどの審査は数日から数週間です。スパム目的のハッキングは長め(数週間)、マルウェアは数日がひとつの目安です。審査を通過すれば、警告は順次外れます。
審査が通らなかった場合は、まだどこかに仕込みが残っています。手順3に戻って、見落としがないか確認してください。
再発させないために
改ざんされたということは、サイトのどこかに侵入口があったということです。その入口を塞いでおかなければ、同じ方法で再び侵入されるおそれがあります。
- WordPress本体とプラグインを最新に保つ:2026年は、7月にWordPress本体の脆弱性(wp2shell)が実際の攻撃に使われ、9月にも本体のセキュリティ修正版(7.1.2)が公開されています。管理画面の「更新」を開き、自動更新が正しく動いているか確認しておきましょう
- 使っていないプラグイン・テーマを削除する:管理画面で停止しているだけでは、サーバー上にファイルが残ったままです
- ログイン制限と2段階認証を入れる:設定方法はマルウェア感染時の復元と再発防止の記事で解説しています
- 戻せるバックアップを持っておく:バックアッププラグインの定期メンテナンスも参考に、復元できるバックアップの体制を整えておきましょう
サイト全体のセキュリティ対策は、WordPressのセキュリティ対策は「プラグインを入れたら完了」じゃない|最低限やるべき7つのことにまとめています。
マルウェア駆除・改ざんの復旧を代行します(ココナラ)
「不正なコードがどこにあるのか特定できない」「何度消しても元に戻ってしまう」「Googleの審査がなかなか通らない」「記事や画像のデータは残したまま復旧させたい」。そんなお悩みがあれば、ココナラで出品しているWordPressのトラブル解決サービスをご利用ください。この記事で紹介した確認・駆除・再発防止の作業を、まとめてお引き受けします。
ココナラ|出品サービスWordPressトラブルを解決しますマルウェアの駆除・改ざんからの復旧、ログインできない、真っ白画面、500エラーなど。購入前にご相談ください。3,000円〜(マルウェア駆除は12,000円〜) / 評価4.9 / coconala.com
| サービス | WordPressトラブルを解決します |
|---|---|
| 料金 | 3,000円〜(内容によって変わります。マルウェア駆除は12,000円〜) |
| 対応できること | マルウェアの駆除・改ざんからの復旧、ログインできない、画面が真っ白になる、500エラー、サーバーの引っ越しなど |
| ご購入の前に | 症状、サイトのURL、契約しているサーバーを、メッセージでお知らせください。内容を確認して、お見積もりします |
このサービスでは、これまでに80件以上の評価(平均4.9)をいただいています。マルウェアの駆除にも数多く対応しており、記事や画像のデータを残したまま復旧した実績があります。「改ざんかどうか判断がつかないけれど、サイトの様子がおかしい」という段階のご相談も歓迎です。
※料金や内容は変わることがあります。最新の情報はココナラのサービスページでご確認ください。
まとめ
- リダイレクトやスパムページの改ざんは、管理者の目から隠れるように作られています。ログアウトしたスマホ回線、
site:検索、外部ツール、Search Consoleを使って症状を確かめましょう - 復旧作業に入る前に、現状のバックアップとパスワードの変更を済ませておきます
- 不正なコードは .htaccess、PHPファイル、データベース、ユーザーに分散しています。部分的に消すのではなく、公式ファイルで入れ直すのが確実です
- 日本語スパムページは、Search Consoleの所有者を確認したうえで、404や410を返す状態にして検索結果から消えるのを待ちます
- 最後にSearch Consoleから審査をリクエストし、原因と対処を具体的に伝えます
自力での対応が難しい場合や、できるだけ早く元に戻したい場合は、上で紹介しているココナラのサービスからお気軽にご相談ください。


COMMENTS
コメント
まだコメントはありません。記事の感想やご質問をお気軽にどうぞ。