最近、JavaScript変数(例var GLOBAL_VAR = true;
)をHTMLページ(例/Search/Index
)に追加し、別のJSファイル(例/Scripts/search/index.js
)を更新してそれにアクセスして使用する問題に遭遇しましたJS変数。これらの変更をWebに公開した後、Googlebotによって生成されたJSエラーを取得し始めました。これは、window.onerror
関数によって送信されます。エラーは次のようなものです。
キャッチされないReferenceError:GLOBAL_VARは定義されていません
ライン1
私たちのサイトの/ Search/Indexページにアクセスすると、新しいJS変数がそこにあり定義されていることがはっきりとわかります。
Googlebotがサイトをクロールしているときに、HTMLページが変更されたことを検出していないようです。つまり、GLOBAL_VAR
変数の設定を含まない古いキャッシュされたHTMLを使用しているため、JSエラーが発生します。
2/6にHTML/JSの変更を公開しましたが、2/10の時点でまだJSエラーが発生しています。 Googlebotは今までにHTMLの変更を認識すると思っていたでしょう。過去にこの問題を経験したことはありません。
ページのHTMLが変更された場合、Googlebotがキャッシュを更新しないのはなぜですか?最も重要なことは、GooglebotがHTMLの変更を検出してキャッシュを更新できるようにするには、これらのJSエラーの取得を停止する方法です。
これを解決する最も簡単な方法は、JavaScriptファイルをバージョン管理することです。その後、新しいページのみが新しいJavaScriptをフェッチします。