SEO 優化,是眾多細節的組成的,不光光只是設定好 title 而已,還有網站架構、速度、後端設定處理等等,包含非常多項目,對開發人員來說,不論是設計、前端、後端都需要注意。
假設一個網站改版更新,大概會有幾個需求,前端畫面修改、網址架構更新、增加欄位修改 api 等等。
前端需要注意畫面更新方式,如果是不變化網址(SPA),內容是經由互動產生內容,那互動產生內容同時,就要有對應的網址參數(window.history.pushState),然後這些網址要能夠請求拿到各自對應的內容。每個對應的網址參數在列在 sitemap 上,讓 google 有辦法索引。
rediect 轉址介紹
更換網址架構的話,假設你有個賣蘋果的頁面網址是 domain/product/apple,在 google 搜尋上 網購蘋果
是第一名,但如果改版後網址要變成 domain/product/freshapple,有個重點非常重要,千萬要記得做轉址。否則 product/apple 網購蘋果
的排名就會歸零。
白話來說,轉址的概念大概是宣告這個頁面要搬家到另一個頁面的意思,也可以跨 domain 轉。
轉址方法
依照不同後端語言,各有不同的轉址寫法,但邏輯上都是一樣的,大概分為 301、302、307。
rediect 轉址狀態碼
- 301 狀態碼表示網頁已永久遷移至新的位置
- 302 狀態瑪表示網頁暫時導向新位置
- 307 狀態瑪表示暫時導向新位置,但是保持使用者請求方式不變
Node.js express 301 語法
res.redirect(301, 'http://example.com');
哪些網址需要做 redirect
www.domain.com 跟 domain.com 就會被 google 是為兩個網站,這時候你可以用 301 轉址處理,避免網站同時存在各種 url 顯示相同網址。 (domain 網站就有做 domain.com redirect to www.domain.com)
網站同時存在 https:// http:// 兩種可以被訪問,也需要做轉址,假設網址結尾帶有或是無 .php .jsp,也需要指定一個做 301redirect。
需不需要轉址核心概念就是,這個頁面的內容,只有一個網址可以顯示。
但是如果今天網址需要帶參數怎辦(utm、gdn)? 這時候就需要 canonical tag。(後半段介紹)
轉址缺點、後遺症
三年前工作經驗,使用 301 轉址,新網址的關鍵字排名一定
會掉落排名,大概過了一兩週後才會慢慢回升,我會用一定是因為 john muller(google webmaster 發言人)也確實發表過掉落些許排名這件事情。
但 2016 年時 google’s Gary Illyes 表示 30x 不在會掉落 PageRank。在今年,我的 blog 有做過 301 轉址,大概一兩天之後,在搜尋結果上,新網址會取代舊網址,排名完全沒有變動。
canonical 介紹
如果你網站沒辦法經由 301 處理,讓同個頁面有多個網址可以載入取得,或是有重複性內容處理的問題,那你就需要使用 canonical 處理,你可以用 html 的 link 處理。指定目前網址的搜尋權重指派到哪個網址。或是在 server response header 加上 rel=canonical。
另外 sitemap 也可以指定索引的網址,但效力會被 canonical 蓋過。
<link rel="canonical" href="https://example.com/apple" />
- google 重複性內容處理
如果您有某一個網頁可透過多個網址存取,或是不同網頁上存在相似的內容 (例如同時有行動版和桌面版網頁),Google 會將這些網頁視為相同網頁的重複版本,從中選出一個網址做為「標準」版本並檢索該網址,其他網址則會被視為「重複」網址,檢索頻率會比較低。
結論
這邊大部分觀念都圍繞在更換網址、處理重複性內容。
一般網站很高機會遇到重複性內容的問題,因為前端或是後端需要網址參數來變化內容,記得,如果網址有帶參數,但是有沒有帶網頁內容都一樣,就記得加上 canonical,直接指定一個網址讓 google 指派權重。
但如果網址有帶參數,但是內容不一樣就要列在 sitemap 上或是產生個內部連結,如果沒有做的話,就浪費這個頁面被索引的機會了。
感謝閱讀,有問題歡迎留言!