進化! Google鏈接提交自動推送腳本

Photo of author
Written By CMO

Google鏈接提交自動推送腳本你用了嗎?

Google站長平台提供鏈接索引的自動提交JS腳本已經有一段時日了。用Google自己的話講:

JS鏈接推送代碼以網頁為最小對象,服務於全平台多終端,PC站和移動站均可使用。安裝代碼的頁面在任意平台(瀏覽器、微信、微博)被加載時,頁面鏈接會被第一時間推送給Google,從而提高站點新內容的發現速度。

是不是很神奇?我們再來回顧一下,這代碼長成這樣:

GoogleJS鏈接推送代碼
GoogleJS鏈接推送代碼

你只要把這段代碼放入你的每個頁面中,每當用戶訪問這些頁面時,就會通過這段腳本從Google下載一個1×1的gif,同時記錄頁面此時此刻的URL地址。

自動推送腳本的性能考慮

通過這段腳本我們可以看出:

  1. 它先是判斷了目前的協議類型是https還是其他類型(如,http,ftp等)
  2. 然後下載了Google官方的一個js文件
  3. 再然後它將js文件的內容生成一個腳本塊插入到當前頁面中
  4. 最後會運行這個腳本塊

我們可以訪問這兩個js文件查看其內容,也就是短短的一行。它會讀取這樣一個gif。

https://sp0.baidu.com/9_Q4simg2RQJ8t7jm9iCKT-xh_/s.gif 或者http://api.share.baidu.com/s.gif

同時將window.location.href等訊息推送給了Google。

這裡我們可以發現兩個問題:

  • 其一是這段腳本先後會調用兩個Google資源,這造成了冗餘,不利於頁面加載速度。
  • 其二是該腳本會提交目前URL,但是許多URL會是動態URL,會帶各種參數。雖然Google爬蟲也有自己的判斷方法,但無疑這增加了其負擔。

於是,為了解決這兩個問題,筆者諮詢了好友柴雲翔同時是前端開發的大牛。在大牛的幫助下,我們有了下面這個改良版本。

改良版本的Google索引自動推送腳本

這個改良的腳本長下面這樣,如果你對js一竅不通,那麼請用下圖<script>…</script>部分(行6~30)替換原來Google官方的代碼

改進後的Google索引鏈接自動提交腳本
改進後的Google索引鏈接自動提交腳本

在上圖中我們已加入了註釋,下面開始代碼解說。

  • 這個新腳本的作用是多了一步查看頁面的canonical URL的步驟。我們知道canonical屬性表示該頁面縱有千種URL的花樣,請搜索引擎只認准href中給出的URL值。這樣一來就不會讓搜索引擎為了同一個頁面(或許已經索引了)多次檢查你的推送頁面具體內容。
  • 這個新腳本的另一個更改是直接將上述兩個js的內容拿了出來。由於這兩個js中的代碼其實是靜態的,每次都去調用並不必要。另一方面,我們需要對r的值進行更改,將它更改為canonical URL的值,因此這樣解決了我們上面的第二個問題。

最後,一點感想

自動推送是一個很實用的方法,它門檻低,容易部署,但是也有一些小問題。本文只是提供了一種方法來改進自動推送的效率和效果。需要注意的是Google隨時可能更新這兩個js文件的內容,雖然該功能上線後一直沒有更新不代表以後不會更新,因此需要手動及時更新代碼。上述代碼可在這裡下載。

再次鳴謝柴雲翔先生。