WordPressサイトの構築や運用をしていると、この言葉に出会う機会がある。
「何もしていないのに壊れた。管理画面も触っていない」
「前回見たときは問題なかったはず」
うそをついているとは思わない。管理画面を開いた記録がないことも、実際にある。
ただ、体感では8割ぐらい、人の操作が原因になっている。
本人からすると「何もしていない」てしても…
別のスタッフが記事や画像を直していた。何年か前に入れた設定やプラグインが残っていた。通知から更新ボタンを押したこと自体を覚えていない。
だがしかし、本当に何もしていなくてもWEBサイトが壊れることはある。
この記事では、「何もしていないのに壊れた」がなぜ起きるのか、先に何を確認するか、日頃どう備えるかを、運用現場の感覚から整理する。
Webサイトは何もしなくても周囲が変わる
Webサイトは、一度作ったらそのまま止まっている物に見えやすい。
特に企業サイトは、公開した後に大きく手を入れないことも多い。会社概要、取り扱い先、ニュース、お問い合わせフォーム。これらが表示されていれば、「動いている」ように見える。
ただ、実際のサイトは、自分たちが書いたHTMLや画像だけで成り立っていない。
- サーバーのPHPバージョン
- WordPress本体、テーマ、プラグイン
- SSL証明書
- ドメインの有効期限
- ブラウザの仕様
- GoogleマップやSNS埋め込み
- ホスティング会社の仕様
これらは、サイト所有者が何もしていなくても進む。
例えばPHPは、バージョンごとにサポート期限がある。よくあるのが、「何年も問題なく動いている」ことを理由に、古いPHPやWordPressをそのままにしているケース。
その状態でも、昨日までは表示できる。
しかし、ホスティング会社がPHPを上げたり、プラグインが新しいPHPに対応していなかったりすると、突然白画面になる。
この場合、確かにサイト所有者から見ると「何もしていない」。
何もしていないからこそ、壊れたとも言える。
自動更新・証明書・外部サービスの影響
「何もしていない」ケースで、先に疑うのはこの3つ。
自動更新
WordPressは、本体、テーマ、プラグインを自動で更新できる。
セキュリティの観点だけ見ると、自動更新は非常に魅力的だ。
ただ、企業サイトで自動更新を信用していると、次のようなことが起きる。
- プラグインの更新でフォームが止まる
- テーマの更新でレイアウトが崩れる
- 本体の更新後、古いプラグインが動かなくなる
- 更新されたこと自体に、サイト所有者が気づかない
私はクライアントサイトでは、自動更新をあまり信用しない。
理由は簡単で、「更新された時刻」と「壊れた原因」が追いにくくなるから。
夜中にプラグインが更新され、朝、お問い合わせが届かなくなっている。こうなると、当事者から見ると「何もしていない」になる。
自動更新そのものが悪いわけではない。
個人ブログで、バックアップが取れていて、崩れても戻せる状態なら使うこともある。
ただ、企業サイトでフォームや予約、外部連携がある場合、誰がいつ更新したかが追えない状態は避けたい。
SSL証明書
SSL証明書も、「何もしていない」で壊れる典型だ。
ブラウザに「この接続はプライベートではありません」と出る。
サイト本体は死んでいないのに、訪問者から見ると壊れたのと同じになる。
現場で見るのは、大きく2通り。
| 証明書の種類 | 起きやすいこと | 見た目 |
|---|---|---|
| 有料SSL | 年に1回の更新を忘れる | 期限切れ後、突然警告画面になる |
| 無料SSL(Let's Encryptなど) | 自動更新が失敗する | 更新ジョブが止まっていたのに気づかない |
「証明書を入れたから安心」と思っていると、有効期限が来た時点で突然警告が出る。
無料SSLは自動更新できるが、常に成功するとは限らない。
古いVPS、OSのサポート切れ、証明書発行用コンテナの停止。こうした環境では、「無料だし自動だし大丈夫」という話にならない。
外部サービス
サイトの一部は、自分たちのサーバーの外で動いている。
- Googleマップ
- InstagramやXの埋め込み
- YouTube
- Webフォント
- 問い合わせフォームの外部サービス
- アクセス解析
- CDN
これらは、先方の仕様変更やAPIキーの無効化で止まる。
よくあるのは、トップページの一部だけが欠けるパターンだ。
サイト全体は見られる。しかし地図が出ない、投稿が出ない、フォントが崩れる。
こうなると、「サイトが壊れた」と報告される。
実際には、サイト本体より先方サービス側の変更であることが少なくない。
個人ブログでも同じことは起きる。
このブログはNotionから記事を取得しているので、Notion APIや画像URLの扱いが変わると、自分が記事を書いていなくても表示が壊れる。
本当に何もしていないのかを確認する
運用をしていると、「何もしていない」の中身が少しずつ広がっていることが分かる。
先に確認したいのは、次のような操作がなかったかだ。
- 記事や固定ページを更新した
- 画像を一枚入れ替えた
- 電話番号や営業時間を変えた
- プラグインを追加した
- 管理画面の通知から更新ボタンを押した
- 別の担当者が管理画面に入った
これらは、本人からすると「サイトを壊す操作」ではない。
ただ、システムから見ると十分に変更だ。
特に多いのが、自分ではなく、別の人が触っているケースだ。
営業、広告、宣伝、外注先。
管理画面のアカウントが複数あるサイトでは、「自分は何もしていない」が同時に成り立つ。
私が確認するときは、感想ではなく記録を見る。
- WordPressの更新履歴
- ユーザー一覧と最終ログイン
- プラグインの有効・無効
- 最近変更されたファイルの日時
- ホスティング会社の作業履歴や保守メール
- ドメインとSSLの有効期限
ここでよく分かるのが、「本人は何もしていないが、誰かが何かをした」という状態だ。
そして、本当に誰も操作していない場合でも、自動更新や証明書、外部サービスが動いていることが多い。
だから私は、「何もしていない」を否定するための質問にはしない。
「意図して変えた人はいない」という前提で、周囲の変更を探すようにしている。
原因を探すときに見る場所
壊れ方によって、先に見る場所は変わる。
私がよく使う切り分けは、おおよそ次の通り。
| 見た目 | 先に疑う場所 | 確認すること |
|---|---|---|
| ブラウザの警告画面 | SSL証明書 | 有効期限、ドメインと証明書の対応、自動更新ログ |
| 白画面・クリティカルエラー | PHP、プラグイン、テーマ | エラーログ、最近の更新、PHPバージョン |
| レイアウトだけ崩れる | テーマ、キャッシュ、CSS | テーマ更新、キャッシュ削除、ブラウザ差分 |
| 一部のブロックだけ欠ける | 外部埋め込み、API | マップ、SNS、フォント、APIキー |
| フォームが届かない | プラグイン、メール送信 | スパム対策、SMTP、通知メール |
| 自分の画面だけ古い | キャッシュ | ブラウザ、プラグイン、CDN |
| サイト全体が開かない | ドメイン、サーバー、ディスク | DNS、サーバー停止、容量不足 |
ここで大切なのは、最初から全部を疑わないことだ。
白画面なのにデザインを直し始めたり、地図が出ないだけなのにWordPress本体を更新したりすると、原因が更に追いにくくなる。
私が最初にするのは、次の3つ。
- 今、他の人のブラウザでも同じ症状か
- いつから壊れているか
- サイト全体か、一部だけか
これが分かると、見る場所が狭まる。
例えば、自分のブラウザだけ古い画面ならキャッシュを先に疑う。
誰の環境でもSSL警告なら証明書を先に見る。
トップだけ地図が欠けるなら、本体より埋め込みを先に見る。
WordPressなら、管理画面に入れるかどうかも大きな分かれ目。
- 公開側も管理画面も止まる → PHPやサーバー寄り
- 公開側だけ止まる → テーマやキャッシュ寄り
- 管理画面だけ止まる → プラグインや権限寄り
エラーログが見られるなら、推測で直すより先に読む。
Fatal error や Allowed memory size 、プラグイン名が出ていれば、原因はそこにある。
逆に、ログも更新履歴もない場合は、サイト内部より外側を疑う。
証明書、DNS、ホスティング会社の障害情報、外部APIで解決することがある。
壊れにくくするための日頃の備え
「何もしないこと」が安全な運用にはならない。
私が運用していて大切だと感じるのは、次の5つだ。
1. バックアップを取る
最低限バックアップさえあれば、なんとかなることが多い。
自動バックアップがあるなら、保持期間と復元方法まで確認する。
「バックアップがあるはず」と「今日戻せる」は違う。
復元テストをしたことがないバックアップは、必要なときに使えないことがある。
2. 更新は意図して行う
セキュリティ更新を後回ししていいわけではない。
ただ、ボタンを押す前に準備する。
- 今のバージョンを記録する
- バックアップを取る
- 一つずつ更新する
- 表示、フォーム、管理画面を確認する
企業サイトでは、自動更新よりこの方が安全だと思っている。
時間はかかるが、「いつ何が変わったか」が残る。
逆に、何年も更新しないのも危険だ。
古いWordPressやPHPは、今日は動いていても、攻撃面や後の更新難易度が上がる。
「動いているから触らない」と「自動更新に任せる」の間に、意図した更新を置きたい。
3. 有効期限をカレンダーに入れる
SSL証明書とドメインは、忘れやすい。
更新代行をしている場合でも、期限の1ヶ月前にリマインドを入れておく。
無料SSLなら、自動更新が成功しているかを定期的に確認する。
「入れたから大丈夫」になりやすいものほど、期限管理が必要だ。
4. 誰が触れるかを細くする
管理画面のアカウントが増えるほど、「何もしていない」が起きやすい。
- 管理者権限を渡しすぎない
- 更新通知メールの送り先を整理する
- プラグイン追加や更新の窓口を決める
- 外部委託先が触れる範囲を書いておく
プラグイン更新の通知が複数部署に届くと、誰も判断できなくて放置される。
そのまま放置するか、誰かが独断で更新するか。
どちらも、後からの「何もしていない」につながりやすい。
まとめ
「何もしていないのにWEBサイトが壊れました」は、本当にある。
ただ、サイトが自然に壊れたというより、周囲が変わったのに、サイト側だけ止まっていたというほうが近い。
- 自動更新
- SSL証明書
- 外部サービス
- ホスティング会社の仕様変更
- 別の担当者の操作
こうしたものが重なると、本人が意図していなくても表示が壊れる。
だから、運用で大切なのは「何もしないこと」ではない。
サイトは、手を止めた瞬間から古くなり始める。
壊れないことより、壊れたときに追える状態を作っておくほうが、結局は安心だと思っている。