WordPress 本体が最新でも安全とは限らない — 置き去りになりやすいテーマの更新
管理画面の「更新」を開くと「最新バージョンの WordPress をお使いです」と出ている。だからこのサイトは安全なはずだ——と考えている方に向けた記事です。その表示が言っているのは、サイトを構成する部品のうち本体のことだけです。
先に結論
- WordPress サイトは本体・プラグイン・テーマの3層でできており、更新はそれぞれ別々です
- 公表される脆弱性のほとんどはプラグインとテーマで見つかっています。本体だけ最新でも、守れている範囲は一部です
- 中でもテーマの更新は置き去りになりやすい構造があります
- 🚨 使っていないテーマ・プラグインも対象です。停止しても、ファイルはサーバーに残っています
3つの層は、別々に更新される
本体は WordPress の開発チームが、プラグインとテーマはそれぞれの作者が作っています。作り手が違うので、更新の出る時期も、届く経路も、自動で当たるかどうかの既定もばらばらです。
- 本体 — 既定のままなら、小さな修正の更新は自動で当たります
- プラグイン — 自動更新は1つずつ切り替える方式で、既定では手動です
- テーマ — プラグインと同じく既定では手動です。さらに、後で述べる事情で更新そのものが止まりやすい層です
つまり放っておいても最新に近づくのは本体だけです。「最新バージョンです」の表示を見て安心しているサイトほど、残りの2層が古いまま、ということが起こります。
狙われる側から見ても、重みは本体よりプラグインとテーマにあります。セキュリティ企業 Patchstack の年次報告(2025 年分)でも、新たに見つかった脆弱性のほとんどがプラグインとテーマで、本体はごくわずかでした。
テーマの更新が置き去りになる理由
テーマはサイトの見た目を決める部品なので、「一度作ったら触らないもの」と扱われがちです。そのうえで、更新を止める事情がいくつも重なります。
1. テーマのファイルを直接書き換えている
デザインの調整を、テーマのファイルに直接書き込んでいるサイトは少なくありません。この状態で更新すると、書き込んだ調整がすべて元に戻ります。それを避けるために「このテーマは更新しない」と決め、そのまま何年も経っている、という形です。
本来は、調整を「子テーマ」という別の入れ物に分けておけば、元のテーマ(親テーマ)は更新できます。なお、子テーマを使っていれば更新が要らない、という意味ではありません。更新が必要なのは親テーマのほうです。
2. 購入したテーマは、通知が届かないことがある
公式ディレクトリのテーマは、管理画面に更新の通知が出ます。一方、販売サイトで購入したテーマは配布元が別で、ライセンスの登録や購入元のアカウントが無いと、通知も更新ファイルも届かないものがあります。
サイトを作った人と運用する人が違うと、ここが途切れやすくなります。購入したときのアカウントが分からず、最新版がいくつなのかを誰も確かめられない、という状態です。
3. テーマに同梱されたプラグイン
購入テーマには、スライダーやページ編集の機能を持つプラグインが同梱されていることがあります。この同梱プラグインは、テーマ側が新しい版を同梱し直すまで更新されないことがあります。プラグインの作者が脆弱性を直していても、テーマの更新が止まっていれば、そのサイトには届きません。
4. 配布が終わったテーマは、通知が出なくなる
作者が開発をやめたり、公式ディレクトリから外れたりしたテーマは、新しい版が出ないので通知も出ません。画面上は「更新はありません」のままです。「通知が出ていない」ことは「最新である」ことの証明になりません。
使っていないテーマ・プラグインも対象になる
リニューアル前のテーマや、試しに入れて止めたプラグインが、「停止中」のまま残っていることがあります。停止しても、ファイルはサーバーに置かれたままです。脆弱性によっては、停止中のままでも外から直接呼び出せます。
しかも使っていない部品は、誰も気にかけないので更新も後回しになります。更新しないなら、削除するのが基本です。WordPress の「サイトヘルス」も、停止中のプラグインは攻撃者の標的になるとして、使わないテーマやプラグインの削除を勧めています。ただし、使っているテーマが壊れたときの代わりとして、WordPress 標準のテーマ(デフォルトテーマ)は1つ残しておくよう、同じ画面で勧められています。
3層を確かめる手順
- 「ダッシュボード」→「更新」を開く。本体だけでなく、下にプラグインとテーマの一覧が並びます。本体の行だけ見て閉じないでください
- 購入したテーマ・プラグインは、購入元で最新版の番号を確かめる。テーマは「外観」→「テーマ」の詳細、プラグインは「プラグイン」の一覧に出る番号と突き合わせます。通知が出ないものは、この方法でしか分かりません
- 「ツール」→「サイトヘルス」を開く。停止中のテーマ・プラグインや、古い PHP についての指摘が出ます
- 更新の前にバックアップを取る。取ってあることと戻せることは別です(この違いについて)
更新できずに止まってしまう場合は、プラグインが更新できないときの原因の切り分けが、テーマにもほぼそのまま当てはまります。3層のさらに下には、PHP やサーバーの層もあります。こちらはPHP のバージョンを上げると古いサイトが止まる理由で扱っています。
まとめ
「本体が最新」は、安全の一部でしかありません。確かめるべきは次の3つです。
- プラグインとテーマも最新か(通知が出ないものは購入元で確認)
- 更新を止めている理由が、今も有効か(直接の書き換え・同梱プラグイン・配布終了)
- 使っていない部品が残っていないか(更新しないなら削除)
見落とされるのは、たいてい「誰も更新の担当だと思っていない部品」です。本体が最新と出ていても、その下の層まで目を通してください。
