web-dev-qa-db-ja.com

プラグインのキャッシュが有効になっているときにソフト404エラー(200ステータス)を取得する

次のような状況で、最新の安定版WordPressを専用仮想サーバーで実行しているブログがあります。 (3つとも同じ結果を試したので、[caching plugin]をW3 Total Cache、Hyper Cache、またはQuick Cacheに置き換えます。)

  1. [キャッシングプラグイン]は無効です。私は私のサイト(http://example.com/xyzz/)で知られている悪いリンクを訪れ、404エラーページを受け取ります。 ChromeのInspectorやFirebugでHTTPヘッダーに "404 Not Found"ステータスが正しく表示されていることを確認できます。

  2. [caching plugin]をオンにして同じURLにアクセスします。最初の訪問時に、私はキャッシュされたページ(HTMLソースの下部にあるプラグインによって挿入されたデバッグコメントによって検証された)をHTTPヘッダに適切な "404 Not Found"ステータスと共に提供しています。

  3. このページに再度アクセスすると(http://example.com/xyzz/)、上記の#2と同じキャッシュページが "404 - ページが見つかりません"というエラーでユーザーに表示されますが、 "200"が表示されます。 HTTPヘッダーの "OK"ステータス。

  4. [caching plugin]をオフにして再度ページにアクセスすると、HTTPヘッダーに正しい "404 Not Found"ステータスのあるキャッシュされていないページが再び表示されます。

ここで何が起こっているのでしょうか。これは、適切な404ではなく "200 OK"というHTTPヘッダーが表示されるため、Google Botが存在しないページにインデックスを付けようとしているという問題を引き起こしているようです。

2
berberich

さらなるトラブルシューティングは私がこれが私が使用していたテーマに何らかの関連があることを信じるように私を導きました。無効にして別のものを有効にした後、キャッシングプラグインを使用している間、適切な404ヘッダーを受け取りました。

私はまだテーマの中で何がこれを引き起こしているのかわかりませんが、少なくとも回避策があります。

0
berberich

W3 Total Cacheには次のオプションがあり、有効にするとこの動作が発生します。

キャッシュ404(見つかりません)ページ

404ページをキャッシュすることでサーバーの負荷を軽減します。ディスク拡張方式のディスクキャッシュを使用すると、404ページが200応答コードで返されます。自己責任。

他のキャッシングプラグインも同様の機能を持っているかもしれません。

0
Scott Buchanan