目前國內站長做社群的首選程式莫過於 DISCUZ 和 PHPWIND,筆者有使用 DISCUZ 程式建過社群論壇,也吸收了前阿里巴巴 SEO 主管國平老師講的 discuz 的最佳化技巧,這裡總結我所學到的和所掌握的這套程式的最佳化手段和方法,以便於更好的讓自己的論壇被搜尋引擎所抓取和收錄,進而提升排名,獲取高質量的流量。閒言碎語少說為妙,我們開始切入正題吧。
一、 discuz 的 URL 靜態化設定以及正規表示式
細心的站長朋友會發現在 Discuz1.5 後臺自帶了一個靜態化 URL 的功能,而且預設也寫好了靜態化規則。但是帖子頁面的靜態化規則並沒有,預設的帖子頁面規則是:thread-{tid}-{page}-{prevpage}.html,其含義是:thread-{帖子 ID}-{帖子翻頁 ID}-{當前帖子所在的列表頁 ID}.html,但是這有一個問題,在 「當前帖子所在的列表頁 ID」 這裡,如果一個帖子是最新發表或最新回覆的時候,此 ID 是第一頁,url 中的數字是 「1」 。但是如果這個帖子很久沒人回覆沉下去的時候,這個 ID 就不知道是幾了,可能出現在第二頁,也可能在第十頁。所以每個帖子的 url 經常在變,也就會產生很多的重複頁面,而且 url 經常變化,當前帖子積累的權重會丟失。
所以可以使用重寫 url 靜態化規則來解決這個問題,這裡我列出寫的靜態化規則,供大家參考:
| # 將 RewriteEngine 模式開啟 RewriteEngine On # 修改以下語句中的 RewriteBase 後的地址為你的論壇目錄地址 RewriteBase / # Rewrite 系統規則請勿修改 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^topic-(.+).html$ portal.php?mod=topic&topic=$1&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^article-([0-9]+)-([0-9]+).html$ portal.php?mod=view&aid=$1&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^forum-(w+)-([0-9]+).html$ forum.php?mod=forumdisplay&fid=$1&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^thread-([0-9]+)-([0-9]+).html$ forum.php?mod=viewthread&tid=$1&extra=page%3D$3&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^group-([0-9]+)-([0-9]+).html$ forum.php?mod=group&fid=$1&page=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^space-(username|uid)-(.+).html$ home.php?mod=space&$1=$2&%1 RewriteCond %{QUERY_STRING} ^(.*)$ RewriteRule ^([a-z]+)-(.+).html$ $1.php?rewrite=$2&%1 |
規則做好後,儲存為 httpd.ini,然後上傳到論壇根目錄,進入論壇後臺 --》 全域性--》 最佳化設定--》 搜尋引擎最佳化。然後把 「主題內容頁」 規則改為:thread-{tid}-{page}.html,這樣就完成了 url 靜態化的處理,當然前提是你的空間必須支援偽靜態,這個要看你的伺服器的設定了。這個規則的好處是既可以幫助 url 偽靜態又可以解決重複頁面的問題一舉兩得,我們知道靜態的 url 更利於搜尋引擎抓取,所以論壇沒有設定靜態化的可以參考上面進行設定。
二、如何讓遊客和搜尋引擎蜘蛛看到論壇的圖片
開啟任何一個使用 discuz 建立的論壇,你會發現遊客是看不到論壇圖片的,而做網站什麼流量都是需要的,那麼圖片帶過來的流量也是不容忽視的,而且還不會少。但是論壇預設的設定是遊客看不到圖片的。同樣的道理,搜尋引擎也收錄不了帖子中的圖片。這種情況該如何處理呢?我們可以採用如下方式進行處理,首先開啟 「後臺 - 使用者 - 使用者組 - 系統使用者組 - 遊客 - 編輯 - 附件相關」,


然後在 「允許下載/檢視附件」 上選 「是」 。

這樣就可以解決遊客看不到圖片的問題了,但是還有一個問題,如果只是這樣設定,那遊客也可以下載其他附件了。所以我們還需要進行另外一個操作,就是在 「後臺 - 全域性 - 積分設定 - 積分策略」 裡,把下載附件設定需要 1 個金幣就可以了。

這樣雖然遊客可以看到圖片,但是當他想下載其他附件時候還是需要註冊成為會員才可以的。
三、最佳化前端訪問速度的 gzip 壓縮的設定
SEO 必須要考慮網頁的載入速度,一個載入速度快的論壇可以讓搜尋引擎抓取的更頻繁,而且對使用者更友好,其原理就是看爬蟲從發起一個請求到返回資料,中間需要經過哪些途徑,然後最佳化這些相關因素。
當一個使用者開啟論壇需要 10 秒鐘以上,我估計你的網站也要悲劇了,使用者可沒有那麼多的耐心去等待,所以為了加快前端的速度,我們要啟用論壇自帶的 gzip 壓縮功能。但是在 Discuz!x1.5 的後臺是沒有啟用 gzip 壓縮功能的地方,所以我們需要手動進行設定:我們開啟 「/config/config_global.php」 檔案,把 「$_config['output']['gzip'] = '0'」 修改為 「$_config['output']['gzip'] = '1'」,這樣一個簡單的設定既可以讓 gzip 壓縮啟用了。
四、重複 URL 的處理
雖然 Discuz!X1.5 的 SEO 已經做得不錯了,但是還是不可避免的出現 url 重複的問題。這樣就浪費了蜘蛛大量的時間抓取重複 url,那麼我們就要想法遮蔽重複頁面以及垃圾頁面 (沒什麼 SEO 價值的頁面) 進而節約蜘蛛的爬取時間。我們可以用 robots.txt 的設定來解決這個問題。其實我們只要在 discuz 的原有 robots 檔案裡增加以下規則:
| Disallow: /forum.php$ Disallow: /search-search-adv-yes.html Disallow: /space-username-* Disallow: /forum.php?gid= Disallow: /home.php?mod=space&username= Disallow: /forum.php?showoldetails= Disallow: /home-space-do-friend-view-online-type-member.html Disallow: /space-uid-* Disallow: /search.php$ Disallow: /forum-forumdisplay-fid-* Disallow: /forum-viewthread-tid-*-extra-page%3D.html$ Disallow: /forum.php?mod=viewthread&tid= Disallow: /forum-viewthread-tid-*-page-*-authorid-*.html Disallow: /forum-viewthread-tid-*-extra-page%3D-ordertype-*.html Disallow: /forum-viewthread-action-printable-tid-*.html Disallow: /home-space-uid-* |
這樣就完成了基本的處理,但是還不算結束,在這些遮蔽的地方還需要用 nofollow 標註一下。因為有些搜尋引擎並不遵守自己所定下的 robots 規則。除此之外,我們還要經常檢視網站的日誌檔案,分析蜘蛛抓取了那些無用頁面,然後進一步擴充我們的 robots,這樣發現一點修改一點,你的網站的抓取效率會提高很多。
五、版權資訊的修改和最佳化
當我們建立一個論壇後,開啟首頁一般都會有版權資訊,最重要的是 title 部分有個 「Powered by Discuz!」,這樣看起來我們的論壇對使用者很不友好,為了最佳化使用者體驗,我們就要去掉論壇程式的<title> 部分預設的版權資訊。
首先開啟 「 template/default/common/header_common.htm」,找到 <title> 部分,去掉 「Powered by Discuz!」 和最後一箇中劃線 「-」,然後修改下<meta name="keywords" > 這一行的關鍵詞為你需要最佳化的目標關鍵詞。 同樣的修改下<meta name="generator"> 和<meta name="author"> 等等這些標籤。
雖然 discuz 的程式已經得到了數十萬使用者的認可,但是在 SEO 上做的還並不盡如人意,這篇文章也是初步見解,或許也有自身的不合理性,希望能起到拋磚引玉的作用,帶動大家的更多思路去解決這套程式的 SEO 的不足。同時也希望看了這篇文章的菜鳥能夠按照以上步驟操作,我想最基本的最佳化還是可以的,在你做完這些工作後,讓後觀察網站伺服器日誌,看看是不是提升了抓取效率,是不是利於使用者體驗等。做 SEO 不能光靠理論,更不能人與亦云,必須要實踐,要分析資料,這一點國平老師說的很好,做 SEO 要做科學的可控的 SEO 。