みなさんこんにちは!りゅう(@bokkemondesu)です!
WordPressテーマの「Cocoon」には標準でブログカードの機能がついており、これがとても便利ですよね。
下記のようにサムネイル、タイトル、本文抜粋、URLなどをまとめてカード形式でリンクにすることができ、見やすくておしゃれです。
さて、先日記事を編集していた際にブログカードが「429 Too Many Requests」と表示されてしまいました。
今回は、Cocconでブログカードが「429 Too Many Requests」と表示されてしまったときの対処法についてお伝えしていきます。
ブログカードにどのような現象が起きたのか
先日、私が当ブログの下記記事のバナーの差し替え作業を行いました
するとこの編集した記事へのリンクのブログカードが下記のような表示になってしまいました。
通常のサムネイルがサイトのトップページになっており「404」という表示が出ています。
また、ページの概要欄が「429 Too Many Requests」という表記に変わってしまっています。
初めて見るエラーで困惑する私…。
一体このエラーは何なのでしょうか?
「429 Too Many Requests」とは
「429 Too Many Requests」とは「リクエストの回数が多すぎます」というサーバーからの警告メッセージのことです。
特定の時間内にユーザーがサイトに何度もアクセスしようとすると、サーバーが一定のアクセス数を超えたのでサイトの表示を停止したという意味になります。
「429 Too Many Requests」と表示された原因
なぜこのような現象が起きたのかを散々調べて、おそらく2つのことが原因だと考えられました。
- 元の記事の編集中のトラブルで429エラーが発生してしまった。
- Cocoonのブログカードのキャッシュが更新されず、元のURLのキャッシュが残ったままの状態だった。
順番に見ていきましょう。
編集中のトラブルによる影響
実はこの症状が起きる前、該当ページを複製して下書きをしていたのですが、誤って元の記事が表示されなくなったり、下書きがなぜか公開されてしまうというトラブルが発生してしまいました。
なんとか戻ったのですが、元の記事のURLが変わってしまいました。
リダイレクトされリンク切れは無くなりましが、、恐らくこの編集中のトラブルで429エラーが発生してしまったのだと思います。
元の記事に何度もアクセスしたり、リダイレクトをしたりなど何かしら負荷を与えたのかもしれません。
(このあたりはまた詳しく確認してから解説していこうと思います)
URLのキャッシュによる影響
Cocoonのブログカードはキャッシュを一定期間保存する機能があります。
キャッシュとは”Webページの情報を一時的に保存する仕組み”のことです。
例えば、Webページを閲覧するとき、ブラウザは画像などの情報を読み込みます。
この際にちょっと重いサイトだったり、ネット環境が悪かったりすると表示されるまでだいぶ時間がかかってしまいます。
それを防ぐためにページを表示した際に情報をダウンロードし、一時的にスマホやPCのブラウザに保存します。
そうすることでサイトを再訪問した際に、保存されたデータ(キャッシュ)を読み込むことで、ぺージの表示スピードを上げることができるのです。
Cocoonでは、一度取得したブログカードの情報を一定期間データベースにキャッシュし、2回目以降のブログカード表示の際にデータベースから取り出すことで表示までの速度を短縮する機能があるのです。
Cocoonは表示時間の短縮を図るため、一度取得したブログカード情報は一定期間データベースに保存してキャッシュ化します。
そのため、「2回目以降の外部ブログカード表示」では、DBキャッシュから作成されるので、表示までの時間を短縮します。
デフォルトでは30日間キャッシュが保存され、30日後に新しい情報と入れ替えられます。
そのため、「一旦キャッシュ化されたブログカード情報」は、例え間違った情報であっても「キャッシュ期間」中、同じものが表示されます。Cocoon公式サイト「外部ブログカードの表示方法」より引用
つまり、URLが変わったが、ブログカードは前のURLの情報を30日間読み取ったまま。
↓
・元の記事は429エラーになっているので「429 Too Many Requests」と表示される。
・URLが変わっているので「404」というトップページの画像になっている。
ということになったのかと思われます。
これらの症状はキャッシュを更新することで解決することができます。
「429 Too Many Requests」と表示されたときの解決策
結論から言うと、Cocoon設定の「キャッシュ更新モードを有効にする」にチェックを入れて該当のページを表示することで解決しました。
以下その手順を解説いたします。
Cocoon設定を開く
ダッシュボードのサイドバーにあるCocoon設定を開きます。
ブログカードタブを選択
Cocoon設定画面の上部タブにある「ブログカード」を選択します。
すると、ブログカード設定画面が開きます。
外部ブログカード設定でキャッシュの更新を有効にする
ブログカード設定画面を下にスクロールしていくと「外部ブログカード設定」があります。
その下にある「キャッシュの更新モードを有効にする」にチェックを入れます。
忘れずに「変更をまとめて保存」を押しましょう。
エラーが出た該当のページを開く
変更を保存したあとは「429 Too Many Requests」と表示されている該当のページを開きます。
すると、ブログカードが元のように戻ります。
「キャッシュ更新モードを有効にする」のチェックを外す
無事にブログカードが元に戻ったことを確認出来たら、今度は「キャッシュ更新モードを有効にする」のチェックを外し、無効の状態に戻しましょう。
まとめ
以上、Cocconでブログカードが「429 Too Many Requests」と表示されてしまったときの対処法についてお伝えしました。
突然のエラー表示が出ると不安や心配になってしまいますよね。
今回の記事で同様の症状が出た方の役に立っていただければ幸いです。
ここまで読んでいただきありがとうございました。