加強 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 過了~~

3 thoughts on “加強 WordPress 的 SEO”

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.