Edge SEO,邊緣計算能給你帶來什麼?

Photo of author
Written By CMO

行銷長第一次接觸Edge SEO🤖是在2019年讀了Dan Taylor在SEJ的文章《Getting Started with Edge SEO: What You Need to Know》即便是今天看來,該文章也是所有對Edge SEO感興趣的同學應該去讀一下的。 2020年的時候,本來是想拿Edge SEO寫一篇實例,也是答應小忻同學🦦的,誰知挖了坑忘了填了,這才一直留到現在。 🦥

什麼是Edge SEO?

Edge SEO 是一種技術SEO 方法,可讓你在無需開發人員幫助的情況下更快地進行網站更新。它的名字來源於“邊緣計算”,SEO 使用邊緣計算技術來啟動更新,而無需直接與網站的基礎設施進行交互。

使用邊緣搜索引擎優化,企業可以減少對開發人員的依賴,同時讓他們(和你自己)放心,你所做的更改是暫時的並且很容易恢復。並且因為你可以更快地進行網站更新,你也可以更快地開始看到SEO 結果。

舉個例子,有個頁面的<title>標籤需要修改。要去修改這個標籤,你要么去CMS後台自行更新,要么拜託技術部門為你更新。他們更新完了要等下一次網站批量更新發布,這麼做就耽誤事了。現在有了邊緣計算,你的更改可以在CDN上更改。這個頁面本來就不需要回源的,或者即便回源還是可以更改。那麼你就不需要對源服務器進行更改而快速發布了。

Edge SEO實例:返回204

我們舉一個例子。不久前行銷長介紹了Image SEO怎麼操作。其中提到了防止在Google Image結果中直接展示源尺寸的方法。那就是當請求圖片的referer為Google域名時返回204狀態碼。這個過程我們就可以通過Edge SEO來完成。

在GoogleCDN中使用EdgeJS
在GoogleCDN中使用EdgeJS

事實上Google的CDN就支持EdgeJS,因為HubSpot One使用的是Google的CDN(Google打錢),就以此舉例,其他供應商的Edge特性大同小異。

內容分發網絡CDN > EdgeJS邊緣服務> 新建EdgeJS任務。選擇你的域名,貼入下面的代碼。然後選擇調試發布即可。

var refers = ['https://*.google.com/*','https://*.google.com.hk/*','https://*.google.co.jp/*']; var i = 0; var referer = r.headersIn['referer']; var url = r.uri; for (; i < refers.length; i += 1) { if (baidu_utils.matchWildcard(referer, refers[i])) { if (url.includes('.jpg')||url.includes('.png')||url.includes('.gif')||url.includes('.jpeg')) { r.return(204); return; } } }

上面的代碼邏輯簡單,當同時滿足請求url為圖片文件AND來源referer為谷歌時,返回204狀態碼。實際效果如下圖。

點擊結果後的詳情中只顯示低像素的縮略圖
點擊結果後的詳情中只顯示低像素的縮略圖

我們可以發現,短短幾行代碼我們就省去了許多在CMS後端的開發。更重要的是,我們避免了更改服務期,快速且安全地進行了SEO部署。

Edge SEO實例:更改頁面內容

上面我們小試牛刀了一把,當然EdgeJS這樣的邊緣計算更多可以用於改變文檔的內容。當我們進行部署的時候可以通過特定的User Agent來調試。這樣只有你自己才會受到影響。

比如下面這段代碼,行銷長在原來代碼的基礎上添加了幾行,因為對一個域名只能添加一個任務:

var refers = ['https://*.google.com/*','https://*.google.com.hk/*','https://*.google.co.jp/*']; var i = 0; var referer = r.headersIn['referer']; var ua = r.headersIn['User-Agent'];
var url = r.uri;
for (; i < refers.length; i += 1) {
    if (baidu_utils.matchWildcard(referer, refers[i])) {
        if (url.includes('.jpg')||url.includes('.png')||url.includes('.gif')||url.includes('.jpeg')) {
            r.return(204);
            return;
        }
    }
 if(ua=="Hermes Test UA"){
        r.status = 200;
        r.headersOut['Content-Type']="text/html;charset=utf-8";
        r.sendHeader();
        r.send("<html><head><title>Hello Hermes</title></head><body>hello world</body></html>");
        r.finish();
        return;
    }
}

當我們把瀏覽器User Agent設為”Hermes Test UA“時,就能返回hello world頁面。

對自己返回Hello World頁面
對自己返回Hello World頁面

在這段代碼的基礎上,我們便可以應用ngx.fetch(url, [options])方法獲得原本的Document。再對返回的Response對象進行文本處理便可以更新返回的Document。具體的實現方法就留給讀者和讀者的攻城獅朋友了。況且也不是大家都在用Google雲的。 🤣

總結一下

總的來說,Edge SEO方法就像網站整個被CDN劫持了。你可以對指定客戶端針對指定請求返回指定響應。能劫持網站的當然不是普通的數字行銷者,需要有技術能力加持。

原則上Edge SEO非常適合:

  • 已經使用邊緣計算的站點(或可能想要開始的站點)
  • 不靈活的網站,或不使用用戶友好的內容管理系統(CMS) 的網站
  • 進行臨時頁面更改(例如特殊節日更新或限時促銷)
  • 開發資源有限或等待更新時間較長的團隊

懂技術的行銷者是不是很可怕?分分鐘可以把你公司的網站搞成個人心情展示。感謝關注和三連! 🤖