PHP 301轉址的方法與其對SEO的影響

重新導向新網址
PHP header()重新導向新網址

使用header()語法宣告301

我們可以先跟搜尋引擎的爬蟲宣告這是 301 頁面,之後再轉址。相較於直接重定向轉址,這對爬蟲來說會比較友善,等於是說這一頁被淘汰了,它才不會一直花費效能來這一頁。

另外,宣告 301 也能告知爬蟲,重新導向的網址內容是優於原本網址的版本。


header("HTTP/1.1 301 Moved Permanently"); 
header("Location: https://example.com/"); 
exit();

又或者我們可以這樣寫:


header("Location: https://example.com/", TRUE, 301);
exit();

使用http_response_code()語法宣告301

寫法如下:


http_response_code(301);
header("Location: https://example.com/"); 
exit();

301、302、不宣告,分別差在哪裡?

301 狀態碼是「永久轉址」的意思,表示網頁已永久遷移至新的位置。如同前面所述,爬蟲就不會一直白白浪費效能。

302 狀態碼是「暫時轉址」的意思,因為某些原因,暫時轉址到其它頁面。可以告訴爬蟲,未來這個頁面還會再恢復使用。

不宣告直接刪除就跟404找不到頁面差不多意思,會造成使用者體驗不佳;而直接轉址的話,基本上會被視為301;最糟糕的情況是不宣告也不刪除,就直接把原來的內容複製到另一頁,或是在別的頁面更新原內容,這有可能會造成「重複內容」的情況發生。

標準網址含有追蹤碼怎麼辦?

有時候,Google會將含有追蹤碼的網址當成標準網址,原因是主要的參照網頁的網址有追蹤碼的關係,這會造成SERP的網址也包含追蹤碼,來源媒介會不準確。

這時候可以寫一段JavaScript轉址到你要的標準網址,Google會將其視為類似301的修正:


const params = new Proxy(new URLSearchParams(window.location.search), {
  get: (searchParams, prop) => searchParams.get(prop),
});
if(params.utm_source){
  document.location.href="你要的標準網址";
}

如此一來,SERP的網址在經過一段時間之後,就會因此而改變。

留言

這個網誌中的熱門文章

用CSS的 min() max() 與vw,設計有極限值的RWD響應式文字

10 steps、「ライブ会場を沸らせる、フロアを沸かす」ミーム動画の作り方 (Viggle AI)

運用資料層 dataLayer.push 建立 GTM 自訂事件