ワードプレス(WordPress)

WordPressで特定ページだけが異常に重くて開かない!原因は複合要因で記事数が多いこととショートコードのプラグインでした

この記事は約7分で読めます。

WordPressのエラーをGeminiとの対話で解決WordPressを運営していると、「なぜかログインしている時だけ、サイトの表示が異常に遅い…」という現象に遭遇することがあります。
ログアウトしている(一般の読者として見ている)時はサクサク動くのに、管理画面や、ログイン状態で実際のページを確認しようとすると、ぐるぐると読み込みマークが回り続け、ひどい時は数分待たされることも。
今回は、特に「ブログ記事一覧」のページが異常に重くなり、最終的に「504 Gateway Timeout」エラーで一切表示されなくなってしまった絶望的な状況になしました。しかしその後にAI(Gemini)の力を借りて原因を突き止め、劇的に表示速度を改善させた体験談をシェアします。
同じような症状でお悩みの方の解決の糸口になれば幸いです。

WordPressの表示エラーをGeminiで解決しました

WordPressのエラーをGeminiとの対話で解決

ログインした状態だとページ表示が異常に遅い!

事の発端は、「WordPressにログインした状態だと、とにかくページの表示が遅い」というストレスでした。

一般的に、(ログアウト状態の)読者には「キャッシュ」というあらかじめ作られたコピーのページが瞬時に表示されるため、高速に動作します。しかし、ログイン中の管理者には、常に最新の状態や編集用ツールバーなどを表示するために、アクセスするたびにサーバーがページを裏でイチから作り直しています。
そのため、ログイン中はある程度遅くなるのは仕方ないのですが、それにしても待たされすぎる状況でした。

特に「ページ一覧」の表示が重く、ついに504エラーに…

サイト内の色々なページを見て回ると、特定のページ、特に「ブログの新着記事一覧」を表示するページの重さが尋常ではないことに気が付きました。

問題を起こしていたページはこれです。

ブログの新着記事一覧
ブログ記事の最新30件ブログ記事の最新30件は以下のとおりです。他の記事は「カテゴリ一覧」か「検索窓」から探してください。人気の記事5件▼以下は人気の記事5件です他の記事は「カテゴリ一覧」か「検索窓」から探してください。ぜひ他のページもご覧...

なんとか改善しようと不要なプラグインを削除したりしてみましたが、効果はなし。 そうこうしているうちに、記事一覧ページを開こうとすると「504 Gateway Timeout」という恐ろしい画面が表示され、完全にページが開けなくなってしまいました。

504エラー

504エラーは、「サーバーでの処理に時間がかかりすぎて、タイムアウト(時間切れ)になってしまった」というサインです。

504エラーになった状況

ちなみにこの504エラー画面は、エラー原因追求のためのゲストモードでログインしているときのもので、F12で状況を表示したものです。

AI(Gemini)を使って原因を探す

自力での解決は限界だと感じ、対話型AIのGeminiに相談することにしました。 現在の画面のスクリーンショットや、表示されているHTMLソースコードの情報をそのままGeminiに読み込ませ、「なぜこんなに遅いのか、解決策を教えてほしい」と質問しました。

原因として疑われた設定やプラグインたち

Geminiからは、ログイン時のみ遅くなる原因として、いくつか有力な容疑者が挙げられました。

Cocoonのアクセス集計機能
管理者パネル テーマ「Cocoon」の機能で、ページを開くたびにPV数などを集計してデータベースに書き込むため、長年運営してデータが蓄積しているとログイン時の動作を著しく重くする原因になる。

高機能なプラグイン(Site Kitなど)
外部APIと通信したり、細かなアクセス解析を行ったりするプラグインは、裏側の処理を増やす原因になる。

WP-Cron(予約処理)の動作タイミング
WordPressの標準機能で、アクセスされたタイミングの「ついで」に裏で重い予約処理が走ってしまうため、表示が待たされることがある。

ブラウザの拡張機能
セキュリティツールや広告ブロッカーが、WordPressの管理バーなどに過剰反応してブラウザをフリーズさせている可能性。

これらを一つずつ、一時的にオフにしたり、シークレットモードで試したりして原因の切り分け(犯人探し)を行っていきました。

「Query Monitor」とGeminiの連携でついに原因を特定

決定的な証拠を掴むために、Geminiの提案で「Query Monitor(クエリーモニター)」というプラグインを一時的に導入しました。 これは「どの処理に何秒かかっているか」を可視化してくれる健康診断ツールのようなものです。

Query MonitorのデータをGeminiに分析してもらったところ、驚くべき事実が判明しました。

サーバー自体は「0.5秒」で仕事を終えており、超優秀だった。
しかし、Cocoonのアクセス集計機能の裏側処理には約6秒もかかっていた。(→過去の集計データを削除してオフにすることで解決!)

サーバーの処理は速いはずなのに、なぜか「記事一覧ページ」だけが504エラーで落ちてしまう。サーバーが元気なのに特定のページだけが完全に落ちる。この謎を解くため、「全プラグインを一旦すべて無効化する」という最終テストを行いました。

真犯人は「ショートコード」と「多すぎる記事数」の組み合わせだった!

全プラグインを停止して記事一覧ページを開いたところ……なんと、不具合が起きていたページが開きました。

しかし、画面には [su_posts posts_per_page=”30″ …] という謎の文字列がそのまま表示されていました。

表示されたものショートコードがそのまま見える状態に

Geminiに報告すると、ついに真犯人が確定しました。 原因は、記事を一覧表示するために使っていた「Shortcodes Ultimate」というプラグインのショートコードでした。

このショートコードは非常に便利なのですが、私のサイトには約6,900件もの膨大な記事がありました。

約6,900件の全データの中から、最新の30件を探し出し、画像を取得して綺麗に並べ替える……という作業をこのプラグインにやらせていた結果、検索処理が非効率すぎてサーバーの限界を超え、パンク(504エラー)を起こしていたのです。

このような複合的な状況がエラーの原因でした。記事数が少ない場合は問題がなかったので記事数が多い時には要注意ですね。

解決策の検討と「Cocoon標準ショートコード」の採用

原因が「重すぎるショートコード」だと分かったので、解決策はシンプルです。これを「軽いもの」に置き換えるだけ。

Geminiが提案してくれたのは、テーマ「Cocoon」が標準で用意している新着記事ショートコード[new_list]の採用でした。 外部プラグインを使わず、テーマ自身に最適化された機能を使うことで、データベースへの負荷を劇的に減らすことができます。

実際に、記事の編集画面で [su_posts …] を消し、[new_list count=”30″] に書き換えてみました。

結果は……大成功! プラグインをすべて有効化して元に戻しても、これまで504エラーで落ちていたページが、嘘のようにサクサクと表示されるようになりました。

オプション設定でカスタマイズも自由自在!

Cocoonのショートコードは軽いだけでなく、オプションを追記することで表示のカスタマイズも可能でした。
例えば、トップページに最新の1件だけをリッチに表示させたい場合は、このように書きます。

[new_list count=”1″ date=”1″ type=”border_square” bold=”1″ snippet=”1″]

count=”1″:1件だけ表示する
date=”1″:日付を表示する
type=”border_square”:枠線で囲むデザインにする
bold=”1″:タイトルを太字にする
snippet=”1″:本文の抜粋を表示する
また、「どもどもカフェ」など特定のカテゴリーだけを表示したい場合は、カテゴリーID(例:284)を指定して以下のように書くこともできます。

[new_list count=”10″ cats=”284″]

これらを設定したことで、表示速度が爆速になっただけでなく、見た目も思い通りになり、大満足の利用感になりました。

※この画面でのショートコードはブログ記事として表示させるために半角の[を全角の[に変えています。もしもコピペで使いたい場合は半角に直してください。

Cocoonの設定をもとに戻しました

エラー原因をつかむために、Cocoonのいくつかの機能をオフにしていました。管理者メニューを非表示にし、アクセス集計も停止。

Cocoonのアクセス集計データが肥大化していたことは事実でしょう。この問題はキャッシュ削除でいったん解決です。

そこで、管理者メニューをふたたび表示にし、アクセス集計も再開しました。現在は問題なく動いています。

まとめ

今回の一連のトラブルから学んだ教訓は以下の通りです。

・記事数が多いサイトでの「並び替え・一覧表示プラグイン」の安易な利用は危険!(ショートコードがサーバーをパンクさせる原因になる)

・テーマ標準の機能(Cocoonのショートコードなど)がある場合は、極力そちらを使う方が処理が速くて安全。

・原因不明の遅延には、プラグイン「Query Monitor」を使った調査が極めて有効。

・トラブル解決が終わったら、負荷をかけないためにQuery Monitorなどの調査用プラグインはしっかり「無効化して削除」しておくこと。

もし、あなたも「ログイン時だけ異様に遅い」「504エラーが出る」という問題に直面したら、ぜひ「重い裏側処理(肥大化した集計データや、全記事を検索するショートコード)」が動いていないか疑ってみてください。
AI(Gemini)と対話しながら一つひとつ原因を潰していくプロセスは大変でしたが、サイトが本来の軽さを取り戻した時の爽快感は格別ですよ。