實作更換網站域名
前言
前陣子決定要更換這個部落格的 Domain,這篇稍微記錄一下流程。
雖然短期內應該不會有換 Domain 的需求,不過最近看到不少大神表示分享以前寫過的文章救了現在的自己。
我想還是寫篇文章筆記一下,說不定這篇也可以幫助到未來的我,又或是正在看這篇文章的你。
更換 Domain 的流程
更換 Domain 的重點其實只有一個,就是讓搜尋引擎知道要轉移的新網址在哪裡。
以我的部落格來說,更換 Domain 的流程大概是這樣的:
- 購買新網域與設定
- 更新網站 Sitemap 與 Canonical Link 等相關網頁資訊
- 設定 301 轉導到新的網址
- 到 Google Search Console 更新網址(設定轉址)
其實流程看下來並不困難,這是因為部落格這種內容網站的網址結構相對簡單,通常情況下不需要對路徑做調整。
但如果網站的服務關聯比較複雜,或是有動態路由、特殊的轉導規則、i18n 等,轉移前務必謹慎評估,釐清整個網站的網址結構。
那怕只是缺少一個符號,就可能不小心讓頁面變成 404,造成 SEO 成效直接歸零。
所以如果路由結構太過複雜,更換前建議三思。
畢竟更換後最理想的狀況也只是和未更換 Domain 前一樣而已。
若因為商業考量之類不得不換,那建議採取分段遷移的方式,避免出現太多非預期的問題。
另外遷移過程中,需要確保舊網域不會過期,避免網頁無法順利處理轉導。
購買新網域與設定
網域商的部分我偏好使用 Cloudflare,購買完成後記得要設定 SSL 加密模式。
如果購買的網域是 .dev
,必須要先設定成 Full(strict)。
接下來就是設定 DNS,根據自行需求調整即可,
並將網域綁定到要使用的 Server 上。
若使用 Vercel 或 Netlify 這種 PaaS 的話都算蠻貼心的,只要照著步驟排除問題就能完成設定。
更新網站內容
只是換 Domain 的話,網站通常不太需要更新,畢竟 Domain 是綁定在部屬的機器上,而專案中換頁通常也是使用相對路徑處理。
不過還是建議稍微檢查一下是否有該調整的部分如:
- 網頁中使用到的絕對網址
- 網站 Sitemap
- Canonical Link
這些網址的 Domain 都要確認網址部分是否有更新成新的 Domain。
例如在 Astro 專案中使用 @astrojs/sitemap
自動產生 Sitemap,會需要在 config 中設定 Domain,這種就需要記得調整:
設定 301 轉導
轉換網址是告訴搜尋引擎或用戶這個網頁已經被換了新的網址,若有正確處理 301 轉導,基本上不會影響到 SEO 成效。
處理轉導通常只需要在 Server 端處理,HTTP Status Code 設定 301 或 308 都可以,例如在 Nginx 處理 301 轉導:
如果是 PaaS 如 Vercel 的話可以透過 UI 設定:
如果有設定正確的話,開啟瀏覽器 DevTools 後切換到 Network 頁籤,然後輸入舊網址,就可以在 Headers 中看到是否為 301:
到 Google Search Console 更新網址
現在的 Google 爬蟲其實很聰明,只要你的網站已經可以被 Google 找到,即使不操作這個步驟,Google 也會幫你更新網址。
不過為了安心(?)跟方便檢視網頁管理狀態,通常還是建議設定一下。
首先舊網站跟新網站的資源都要使用 Google Search Console,然後切換到舊的資源後,到設定頁面中的變更網址功能:
這邊選擇新的網域資源後,會跳出視窗顯示目前資源遷移的驗證狀態:
只要依照上面提示,修正問題網址和重新檢查類似網頁會不會有相同問題即可。
如果確認修正完成後驗證狀態依然會顯示錯誤,可以用無痕模式或換一個瀏覽器試試看,狀態應該就會正常更新了:
選擇「確認遷移」就完成了,接著就是等待 Google 更新網站了:
至於新網站的 Sitemap,我會等到新網站完成遷移後才手動在 console 上更新,這樣一來比較好管理遷移狀態。
持續觀察網頁遷移狀態
遷移過程中,網頁會從搜尋中突然消失一段時間,並隨著遷移完成逐漸恢復。
期間只要注意新網站有沒有出現無法加入索引的嚴重錯誤,例如 404、伺服器錯誤等等。
也有一些錯誤是遷移過程中可能會發生的,例如重複網頁:
不過可以看到後面有附上原因:主要是因為 Google 認定的標準網址仍然是我舊的網址,只要確認 Canonical Link 有設定正確,等待一段時間後 Google 就會修正了。
如果有順利遷移,可以觀察到新網站 console 資源中的顯示的索引頁面會越來越多:
而原本舊網站 console 資源中的索引頁面則會越來越少:
以我的部落格有 30 個頁面左右來說,大約在第四週的時候索引就全部遷移完成了,不過實際要多久還是得看 Google 那邊的收錄方式,不好說準。
盡量還是建議把遷移時間稍微拉久一點觀察會比較好。
另外,如果你的網站小有名氣,建議舊網域不要太早取消網域擁有權,避免網域過期後遭有心人士註冊利用。