Chromeや他のブラウザが私のサイトをプリフェッチ/レンダリングするのを止めることはできますか?


14

ユーザーがサイトをクリックする可能性が高いと思われるリンクをプリフェッチするようにChromeをガイドできることを知っていますが、逆もできますか?あなたは、クロム(または本当に言うことができるすべてのサイトをプリフェッチしてプリレンダリングしていないブラウザを)?

現在表示されているページからリンクをプリフェッチするべきではないことをブラウザに伝えることができるタグまたは他の方法はありますか?


1
好奇心が強い、なぜこれがほしいと思うか。
マルタイン

@Martijn私が見ることができる1つのケースは、ページのレンダリングとユーザーが実際にそれを見るときの遅延が重要な、時間依存または非常に動的なコンテンツがサイトに含まれている場合です。
アンデルスFjeldstad

回答:


12

ChromeおよびSafariは、X-Purpose: previewWebコンテンツのプリフェッチ/レンダリング時にHTTPヘッダーを送信します。[ ソース ]

Firefoxは、という同様のヘッダーを送信しますX-moz: prefetch。[ ソース ]

プリフェッチをブロックするには、このブログ投稿でPeter Freitagが提案したように、そのようなヘッダーが検出されたときに404応答を返すことができます。.htaccessFirefoxのプリフェッチをブロックするには、次の行を追加することをお勧めします。

RewriteEngine On
SetEnvIf X-moz prefetch HAS_X-moz 
RewriteCond %{ENV:HAS_X-moz} prefetch 
RewriteRule .* /prefetch-attempt [L]

これを拡張して、次のようにFirefox、Safari、Chromeのプリフェッチをブロックできます(テストされていませんが、動作するはずです):

RewriteEngine On
SetEnvIf X-moz prefetch HAS_preview 
SetEnvIf X-Purpose preview HAS_preview
RewriteCond %{ENV:HAS_preview} .
RewriteRule .* /prefetch-attempt [L]


1

上記の答えはうまくいきませんでした。しかし、うまくいったのはこれでした:

RewriteEngine On
SetEnvIfNoCase X-Forwarded-For .+ proxy=yes
SetEnvIfNoCase X-moz prefetch no_access=yes

# block pre-fetch requests with X-moz headers
RewriteCond %{ENV:no_access} yes
RewriteRule .* - [F,L]

From:askapache.com

[F]フラグは403 Forbiddenステータスコードをブラウザに返しますが、[L]はルールが処理される最後のルールであることを示します。

また、(少なくともprev / nextメタタグの場合)chromeはリンクをプリフェッチしなくなったようです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.