ある日突然、液晶画面に謎のエラーの文字が…
ブログを運営している人間にとって、これほどドキッとする場面はありませんよね汗
WordPressでブログを運営している僕も、この謎のエラーにいきなり遭遇してしまったんです。
編集画面を他のページに移動する度にエラー、記事を公開してエラー、記事を更新するだけでエラー。
ついにはサイト内をただ移動しているだけでもエラー。
とにかくなにをやってもエラーの連発状態。
それでもかれこれ1か月以上かかってなんとか解決まで至ったので、同じようにエラーに陥った人のために詳しく記事にしておこうと思います。
・パーミッションの変更
・.htaccessの記述確認
・PHPのバージョンアップ
・WordPressのバージョンアップ
・プラグインの無効化
・googlebotのクロール頻度の制限
結論から言うと、エラーの原因はgooglebotのクロールでした。
【500 Internal Server Error】とは
【500 Internal Server Error】をざっくりと説明すると「サーバー内部でなんらかのエラーが発生しているよ」という意味のようです。
ちなみに僕はさくらのレンタルサーバを利用しています。
ブログを運営していて初めての経験だったので、すぐに他の人のサイトなどでいろいろと調べてみたところ…
この【500 Internal Server Error】が出てしまう原因として、
・データベース容量不足
・.htaccessの記述間違い
・PHPやCGIのソースコードの誤り
・PHPファイルのパーミッションの数値
などの可能性があるとのこと。
まずアクセス過多については、このブログは1日平均1000PVもいかない程度のアクセスなので真っ先に却下(笑)
データベース容量の不足も、まだ数%しか使用していなかったのでこれも却下。
.htaccessファイルやソースコードも特にいじっていなかったので、これらも却下。
最後に残った『PHPファイルのパーミッションの数値』の可能性について調べてみることに。
PHPファイルのパーミッション変更
どうやらindex.PHPファイルのパーミッション設定が『705 or 755』以外の数値の場合にエラーが出る可能性があるとのこと。
また、さくらのレンタルサーバの使っているなら705に変更とのことでした。
そこでさっそくFTPソフトを使って調べてみると、
僕の場合は644だったので、/WP以下にあるindex.phpファイルをすべて705に変更。
しかし【500 Internal Server Error】は変わらず連発。
PHPのバージョンアップ
次に試したのがPHPのバージョンアップ。
さくらのレンタルサーバのコントロールパネルにログイン>PHPのバージョン選択と進み、PHPのバージョンを最新に変更。
しかし【500 Internal Server Error】は相変わらず連発。
WordPressのバージョンアップ
次に試したのがWordPressのバージョンアップ。
実は2019年にWordPressがバージョン5に更新されたあとも、なにか大きな不具合が発生するかもとずっと更新できないままでした。
そこで思い切ってバージョン5に更新。
特に不具合などは起こりませんでしたが、【500 Internal Server Error】は相変わらず連発したままでした。
プラグインの無効化
インストールしているプラグインが原因の可能性があるということを知り、さっそく一つひとつ無効化して確認してみることに。
SEO対策プラグインを無効化したあと、数時間ほど改善しましたがその後すぐにまた【500 Internal Server Error】連発…
googlebotのクロール頻度の制限
調べた限りで可能性のあるのものはすべて試しましたが、何も変化なし。
そのままお手上げ状態で1か月が経過し、その間も【500 Internal Server Error】は連発。
そんな中で最後に試したのが、googlebotのクロール頻度の制限でした。
公開した記事をインデックスしてもらうのに必要なのがgooglebotのクロール。
それが何らかの理由でクロールの回数が異常に増えることで、サーバーに負荷がかかってしまいエラーが出る場合があるんだそう。
さくらのコントロールパネルのリソース情報でCPUの使用時間を調べてみたところ…
よ、よ、よ、48時間!?
1日は24時間しかないのに、1日のCPU使用時間が48時間ってどういうこと!?(笑)
普通ならこれが数時間を越える時点でサーバーへの負荷大とのこと。
とにかく毎日サーバーにものすごい負荷がかかっていることは分かったので、ダメ元でgooglebotのクロール頻度を変更してみることに。
サーチコンソールのプロパティのクロール頻度設定ページを開き、「Google の最大クロール頻度を制限する」にチェック。
0.1リクエスト回数/秒程度までに制限しました。
そして翌日の夕方に確認すると…
それまで分刻みでズラーっとエラーが出ていたのが、12時37分を最後にピタッとエラーなしに!
サイトやWordPressの編集画面でも嘘みたいにエラーが出なくなり、快適な操作環境に戻っていました。
でも結局こうなった原因は最後まで分からず汗
googlebotさんお願いしますよもう…
おわりに
原因を突き止めるまでのおよそ1カ月間、サイトに訪れた人たちにもエラーが発生していたかと思うとゾッとします…
ネット上で紹介されている【500 Internal Server Error】の解決方法を一通り試してもうまくいかなかった人は、googlebotのクロール頻度の変更を試してみるといいですよ。
ここまで読んでいただきありがとうございました。