加強 WordPress 的 SEO

以往幾年我的部落格網址樣式都是這樣:

http://blog.roga.tw/YYYY/MM/DD/POST_ID

作法是寫 rewrite rule 把 HTTP request 導給 WordPress 的 index.php 並且在後台的 Permalink Settings 採用 Custom Structure ( /%year%/%monthnum%/%day%/%post_id% ) 。


這樣好處就是簡單而且簡短,當時有不少用 WordPress 的朋友都用這種方法改寫網址,但缺點就是對搜尋引擎和訪客都不友善。所以,其實比較好的表示方式是 Permalink Settings 內建的 Month and name 格式。例如:http://blog.roga.tw/2008/05/james-blunts-live-concert-in-taipei/,這種格式可以直接從網址看出發文日期,也可以看出文章標題,而且和 http://blog.roga.tw/2008/05/18/581 是同一篇文章!

由於這個部落格已經有不少網址「流落在外」了,所以更換網址結構的時候,必須要寫個 Mapping 的機制,以避免文章找不到。

以下是我寫的小程式,存檔放到 plug-in 的目錄就可以解決新舊網址 Mapping 的問題 (當然,你的目錄結構也得和我以前一樣),程式採用 WordPress Native 的 Function 實做,設定也是拿 WordPress 定義的常數,所以不用擔心 hard code 的問題,如果不想用,在後台管理 plug-in 的地方也可以解除安裝。

以下是程式碼:

update:

謝謝 appleboy 的 patch ,修改一下一些錯誤。

1. 主要是加強判斷網址 blog.roga.tw/2011/02/17/2542 和 blog.roga.tw/2011/02/17/2542/ 兩者的差異 (trailing slash)
2. 最下面送 Header 的地方新增支援 CGI 和 Apache Handler (php module) 兩種,原本是只有支援 CGI, 因為我用 Fast-CGI
3. 上面的程式已經有 patch 過了~~

Posted in Programming
2 comments on “加強 WordPress 的 SEO
  1. appleboy says:

    hi, 用了一下你寫的 plugin,有一個小 bug
    如果當網址 http://blog.wu-boy.com/2011/02/17/2542 這沒有問題
    但是如果是 http://blog.wu-boy.com/2011/02/17/2542/ 就會出問題了,不會進行導頁的動作

    我改了 patch 檔案了,放在 http://blog.wu-boy.com/2011/02/wordpress-plugin-seo/ 裡面,給你參考看看

1 Pings/Trackbacks for "加強 WordPress 的 SEO"
  1. […] Mapping Url 程式,讓之前的舊網址轉到新網址,剛好在 Roga Blog 找到一篇 加強部落格的 SEO,提供了轉換的 plugin,底下是該程式碼: […]

Leave a Reply

Your email address will not be published.