Knowledge

WordPressで404の時だけエラーが出るケースとその解消までの備忘録

  • 投稿日:
    2025/10/08
  • 更新日:
    2025/10/08
  • 読了時間:
    4分程度
WordPressで404の時だけエラーが出るケースとその解消までの備忘録のサムネイル

なんか404ページだけエラーが出る

404なページにアクセスすると「このサイトで重大なエラーが発生しました」と表示されるケースに遭遇したので解消までの流れを備忘録として残しておきたいと思います。

エラー内容はメモリオーバー

エラー内容は
Fatal error: Allowed memory size of ****** bytes exhausted (tried to allocate ******* bytes)
/wp-includes/functions.php on line 625

といった内容で、該当行の処理はreturn serialize( $data );というような処理となっていました。

エラーの本質

メモリエラーということですので、シリアライズの処理内で巨大なファイルが実行されている可能性が考えられます。
ただ、404のページではNOT FOUNDであることを出力しているだけのシンプルな内容にもかかわらずメモリ不足が起きている。
以上から、update_option() や set_transient()などのオブジェクトで巨大なデータが保存されてる可能性が考えられます。

プラグインで大きなデータをピックアップ

GUIで確認したかったので、今回は Advanced Database Cleaner をインストールして確認することとしました。

すると、オプション一覧内が非常に肥大化しており、ファイルサイズの大きい順にソートしようとするとブラウザがハングアップしてしまう状況が発生。(そのためキャプチャがありません)

ただ、一瞬表示された内容として「rsssl_404_cache」というカラムが表示されているようでした。

rsssl_404_cache は Really Simple SSL で作られるキャッシュデータ

rsssl_404_cacheとまさに404の時に関係のありそうな名前です。
ではこのデータはWordpress標準の情報なのかと調べたところ、標準機能ではなく別のプラグイン「Really Simple SSL」にて404になった際にキャッシュさせる機構が働いているといるとのこと。

原因は分かったのですが、有料版でない為詳細は不明ですが少なくとも無料版ではキャッシュを制御する項目自体がなく、このプラグインを勝手に無効化することもできない状況。

仮にrsssl_404_cacheを削除しても、このまま放置すると、また肥大化する恐れがあります。

プログラム側からキャッシュを強制削除

勿論、プラグイン側から制御できるようであればそちらから実施いただくほうが良いかと思いますが、それができない、見当たらない場合は以下のように適用されているテーマファイルのfunctions.php内などで

delete_option( 'rsssl_404_cache' );

を追記してあげることで、サイトにアクセスがある度にrsssl_404_cacheを削除しに行く処理が実行されるようになります。
※ただし、削除処理が毎回挟まりますのでパフォーマンスを気にされる場合はキャッシュ削除後プラグイン自体の停止なども視野に検討いただければと思います。

削除後に改めてわざと404なページにアクセスして正常表示されていることを確認し、終了となります。

お疲れ様でした。