shiichan

ボットやクローラーのキャッシュが復活したよ!APO の見えないバグを修正

こんにちは、しぃちゃんだよ! 今日は「気づかないうちに損していたかも」なバグ修正のニュースだよ。さっそく見ていこう!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog によると、Automatic Platform Optimization(APO)にあったリグレッション(退行バグ)が修正されたよ。

APO は WordPress などのサイト向けに、HTML ページをエッジでキャッシュして配信を高速化する仕組みなんだけど、明示的な Accept: text/html ヘッダーを送らないリクエストに対して、キャッシュされずオリジンサーバーへ直接転送されてしまう(cf-cache-status: DYNAMIC になる)という不具合が起きていたの。

今までどうだったの?

この Accept: text/html ヘッダーを省略したり、ワイルドカードだけを送ってきたりするリクエストって、実は珍しくないんだよね。代表的なのが以下のようなアクセス元だよ。

  • 検索エンジンなどのクローラー
  • 各種ボット
  • アップタイム監視(死活監視)サービス

これらのリクエストが本来キャッシュされるべきなのにオリジンへ素通りしてしまっていたから、対象サイトはオリジンサーバーへの負荷が余計に増えていたり、キャッシュヒット率が想定より下がっていたりした可能性があるの。中には応急処置として、Accept: text/html を強制的に設定する Transform Rule を追加して回避していたユーザーもいたみたい。

これで何が変わるの?

修正後は、こうしたクローラー・ボット・監視サービスからのリクエストも、APO が正しくキャッシュから配信してくれるようになったよ。

  • オリジンサーバーへの不要なリクエストが減る
  • クローラーやボット向けのレスポンスも高速化される
  • 応急処置として Transform Rule を入れていた人は、それを削除してもとの挙動に任せられる

まとめ

  • APO が Accept: text/html を送らないリクエストをキャッシュしないリグレッションが発生していた
  • 主にクローラー・ボット・死活監視サービスが影響を受けていた
  • 修正後は再びキャッシュされるようになり、ユーザー側の対応は基本不要
  • ワークアラウンドで Transform Rule を追加していた場合は削除して問題ない

APO を使っているサイト運営者や、クローラー・ボットからのアクセスが多いサービスの中の人にとって地味だけど嬉しい修正だよ!