如何恢復網址改變後被歸零的Facebook讚

為了提供更好的資安、及SEO,網站由http改成了https。技術面處理好上線後,卻遇到一個狀況-網頁上所呈現的Facebook讚、分享等的次數,居然全部歸零。在這社群的時代,這樣的結果不是大家所要的。

要讓Facebook讚的數字回來,說穿了不難。就是要讓網頁中og:url的值,填入原本的網址即可

以我們為例做說明,我們的網頁中原本就埋有Open Graph protocol中所定義的metadata-og:url。只是,隨者網站由http改成https後,og:url的內容自然就跟者改變了,調整前、後的內容如下
<!-- 調整前,原本使用http時的內容-->
<meta property="og:url" content="http://example.com/0010777884"/>
<!-- 調整後,改為https時的內容-->
<meta property="og:url" content="https://example.com/0010777884"/>
當網頁中有埋Open Graph protocol的og:url時,Facebook就是以og:url中的網址為主,而不會採用瀏覽時的網址。這樣的處理模式,和SEO、搜尋引擎中的標準網址(canonical)有異曲同工之妙~

因此,解決方就是讓og:url的內容,依舊使用http(即舊網址)
<meta property="og:url" content="http://example.com/0010777884"/>
調整之後,必須要讓Facebook得到新的內容。可是,Facebook的爬蟲在爬過網頁後要隔30天才會再度造訪。因此,還需要一個步驟,就是使用Debugger - Facebook for Developers,輸入您的網址讓FB的爬蟲馬上過來重新爬網頁。如此,FB才會吃到更改後的og:url(舊網址),讚的數字才會回來~

不過,如果您的網頁很多,使用Debugger - Facebook for Developers就不一定合適了。另一個方式,就是呼叫Facebook的API-Updating Objects,一次大量的處理。

所以,我最後就是用python寫了一個小程式,讀取要重爬的網頁清單,逐一呼叫Facebook的API-Updating Objects,讓FB的爬蟲逐一重新抓取網頁內容。
註:找FB官方資料確認作法時,發現一件事情。原文的文件寫的才是正確的作法……


參考資料




留言