ブログ更新で自動投稿をしている場合、更新量によっては「503 service unavailable」が出るケースがあります。
自分自身、メインブログで自動投稿をしていて何度かこのエラーを出して吐きそうになりました笑
エラーの原因は、アクセスの大量集中によるものです。
厄介なのは、このエラーが出ている間は自分のブログ記事は表示されないこと。
デメリットも甚大です。
デメリット
- Googleの評価に影響が出る場合がある
- PV数減少
- 広告収益減少
何一つ良いことはありません。
本記事では、自動投稿が原因で「503 service unavailable」になった時の対処法についてまとめています。
落ち着いて対処して、再発防止をしていきましょう。
自動投稿における「503 service unavailable」の原因
自分のケースに当てはめると、自動投稿で更新する記事が数千記事あることが原因でした。
自動投稿をしているメインブログは、総記事数が8000を超えています。
中身はデータベースサイトとなっており、毎日数百~数千記事の更新を自動投稿で実装している形。
自動投稿は以下のような仕組みです。
①Excelファイルの情報を更新
②Excel VBAでpythonコード作成
③Visual Studio Codeでpythonコードを実行
④ブログ更新
超ザックリと書きましたがこんな感じで自動投稿をしています。
自分が引き起こした「503 service unavailable」の原因を分析すると、以下の傾向が見えました。
- リアルタイムのアクセス数が多い時に大量更新するとアウト
- 500記事くらい自動投稿するとアウト
かれこれ10回くらい「503 service unavailable」を引き起こしてきたので、そこから傾向が掴めました。
自動投稿で「503 service unavailable」エラーを引き起こした記事が皆無なので、推測を交えて話しを進めると…
リアルタイムのアクセス数+自動投稿の件数がサーバーの同時アクセス数の制限を超過する可能性が高い
これが原因だと思います。
なので、サーバーの同時アクセス数の制限を超過しないように自動投稿の件数を調整すれば解決です。
自動投稿における「503 service unavailable」の対処法
実際に自分がやっている手法はこの3つです。
- キャッシュを削除する
- アクセス数が少ない時間帯に250記事程度の自動投稿を繰り返す
- 古いリビジョンは削除する
「503 service unavailable」が出た時は、WordPressの管理画面にすら到達できません。(自分の場合)
復旧するまでの時間はブログによると思いますが、自分の場合は1時間~2時間でした。
復旧するまではPV数・収益の減少は避けられないので、未然に防ぐことが重要です。
キャッシュを削除する
自動投稿で大量の記事を更新するため、古いキャッシュは基本的にゴミになります。
問題なのは、ゴミになる古いキャッシュが大量に生成されることです。
1日くらいならいいんですが、1ヶ月間毎日1000記事更新したら凄まじい量のキャッシュが生成されることに…。
なので、自動投稿をやる前に予めキャッシュをクリアしておいた方がいいと思います。
キャッシュの削除はレンタルサーバーやプラグインで実施できます。
個人的にですが、「WP Fastest Cache」のキャッシュクリア機能を使うと楽です。
管理画面のバーから「キャッシュを削除⇒すべてのキャッシュを消去」でキャッシュクリアできます。
アクセス数が少ない時間帯に250記事程度の自動投稿を繰り返す
自動投稿の件数はブログの状態によるかもしれません。
自分の場合、「7時~10時」、「20時~24時」が最もアクセス数が多いため、この時間帯は避けるようにしています。
上記以外の時間帯に250記事程度を自動更新⇒時間を空けて再度250記事程度を更新⇒ループ
こんな感じで自動投稿すると、「503 service unavailable」エラーが出なくていい感じです。
主な原因が、短時間のアクセス集中です。
なので、リアルタイムでアクセス数が少ない時間帯に適量ずつ自動更新をすれば問題ないかと思います。
古いリビジョンは削除する
自動投稿をしていると、古いリビジョンが溜まっていきます。
これにより、「504 gateway timeout」エラーが発生することがあります。
ブログで「504 gateway timeout」が出た時の原因と解決策にも書いたのですが、解決策は定期的に古いリビジョンを削除しておくことです。
古いリビジョンは「Optimize Database after Deleting Revisions」のプラグインで定期的に削除できます。
設定方法は【処理速度改善】Optimize Database after Deleting Revisionsのオススメ設定に書いているので参考にしてみてください。
裏ワザ:ゴリ押しで復旧させるやり方
裏ワザとして、レンタルサーバーのバックアップ機能を使うです。
要は、現時点の状態がアクセス集中なのであれば、アクセス集中の前に戻せば復旧を待つよりも早く復旧する可能性があります。
自分の場合、レンタルサーバーはエックスサーバーです。
エックスサーバーの場合、14日分の自動バックアップ機能があります。
この機能を使って前日の状態に戻せば、「503 service unavailable」のエラーは解消されました。
ただ、自然復旧とバックアップ復元による復旧のどちらが早いかはブログの状態によると思いますが、自分の場合はバックアップ復元による復旧の方が早いです。
ただし、デメリットもあり、バックアップ復元のため当日作業した分は全て無かったことになるので注意。
当日の作業量によって、自然復旧を待つかバックアップ復元するかを決めるのがベスト。
個人的には自然復旧を待ちたいんですが、リアルタイムが多い時間帯であればやむなくバックアップ復元でサイト復旧をしていたりします。
まとめ
「503 service unavailable」の対処法は以下の3つです。
- キャッシュを削除する
- アクセス数が少ない時間帯に250記事程度の自動投稿を繰り返す
- 古いリビジョンは削除する
中々治らない場合、レンタルサーバーに自動バックアップ機能があれば前日の状態に戻して解消することも可能。
ただ、「503 service unavailable」が出るとブログが表示されなくなるため、未然に防げるようにしておきましょう。