WordPress 是大家熟知的一款建站程式。它功能強大、模板豐富、外掛充足、安裝簡單以及定製性強的特點使得我們在建立個人部落格,甚至企業網站
或其他型別網站使用也會選擇 WordPress 。我對 WordPress
SEO 有一些瞭解和經驗,以下就來說說過去 7 天,我對它做了些什麼。 WordPress 模板的 SEO 大同小異,希望能夠透過本文給有需要的朋友開拓一些思
路。

在 《網站整體標準化對 SEO 的影響》 一文中,我介紹了網站的四個層面:基礎層、結構層、內容層和表現層。

WordPress-SEO

在進行 WordPress SEO 時,我也是基本遵守著這個網站標準化的步驟去進行的。當然基礎層的東西不屬於 WordPress SEO 的範疇,我們跳過這一部分,從結構層面開始:

WordPress 結構層 SEO

WordPress SEO 在結構層面比較重要的地方有:網站欄目及結構劃分,URL 標準化,模板 header 最佳化,以及微資料的少許應用。

網站欄目及結構劃分

做為一個主題於 SEO 相關的部落格,不以 SEO 做為關鍵詞有些說不過去了。在選取好模板後,就需要開始欄目的劃分。按照初步規劃,我將欄目分為:

SEO:

SEO 人物:介紹一些著名的 SEO 從業人員,學習經典 SEO 案例

SEO 學習:學習 seo 基礎知識,免費的 SEO 培訓

SEO 工具:介紹一些對 SEO 有用的工具

……等:隨著內容的增加,還會有其他的板塊出現

根據中文分詞的原理 「SEO 學習」 可以區分為 「SEO」 和 「學習」 。套用 TF-IDF 框架的 SEO 衍生應用可以得出 「學習」 一詞的權值要低於
「SEO」 。由於它們都是作為導航出現在各個頁面,所以整站做 「SEO」 這個詞的最佳化,可以自然的帶動 「SEO 學習」 、 「SEO 工具」 等。

在結構方面,我運用了同百度百科相同的結構方式。將欄目做為一個頁面去處理,而不是做為一個目錄去處理。其作用是可以提高傳遞給欄目的權重。這塊的內容比較複雜,以後我會專門用一篇文章去解釋。這裡我想用一張圖來說明結構方面的部署:

網站扁平結構

同時 Sidebar 和 Footer 放置一些對 SEO 幫助不大但對真實使用者的體驗有幫助的東西。

最後在 nofollow 的使用上,選擇了將 Sidebar 和 Footer 區域的一些外鏈加入了 nofollow 標籤。

WordPress-URL 標準化

在 WordPress 中做 URL 的標準化不難。如果是 PHP 主機或虛擬空間,且支援.htaccess,那麼在其中加入一段程式碼即可開啟偽靜態設定:

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteRule ^index.php$ - [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

然後在 WordPress 後臺的 「固定連結」 中選擇自定義結構,然後填入:

/%postname%.html

最終的效果就是類似:http://baiduseoguide.com/1.html

或者可以寫成:

/%category%/%postname%.html

那麼最終的結果就類似於:http://www.easthv.cc/lanzhouseo/trustrank-and-reserse-trustrank/

我們可以透過這個連結獲得更多的 URL「樣式」:http://codex.WordPress.org/zh-cn:%E4%BD%BF%E7%94%A8%E5%9B%BA%E5%AE%9A%E9%93%BE%E6%8E%A5

此外,如果發現 URL 中有一個.(點),從而影響到了 SEO 和美觀,那麼我們可以使用 WP No Category Base 這個外掛來去除,非常方便。

模板 header 最佳化

出於適用人群廣和每個人使用目的不同的原因,在 WordPress 的各種模板的 header 中,都基本含有了一切能夠放進去的東西。

有些東西是必要的,如 title/Meta Description/canonical 標籤等,有些東西則不是必須,甚至是無用的,如:Meta
Keywords 等。我個人的處理方式比較平和,只是最佳化和清理了我不會用到的東西。具體 WordPress header 最佳化如下:

開啟模板目錄下的 functions.php 檔案,在?> 前加入以下程式碼:

remove_action('wp_head', 'wlwmanifest_link');

remove_action('wp_head', 'rsd_link');

remove_action('wp_head', 'index_rel_link');

remove_action('wp_head', 'feed_links_extra', 3 );

remove_action('wp_head', 'feed_links', 2 );

remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0 );

remove_action('wp_head', 'wp_generator');

儲存,更新,即可。

微資料的應用

做這一步工作的原因僅僅是因為我個人比較重視版權,所以希望在谷歌的搜尋結果中出現我的名字等資訊;此外就是出於 SEO 研究的目的 (網站或頁面權重達到什麼樣的值後,谷歌會顯示微資料資訊) 。注意百度是不支援微資料。除非是大型網站加入百度開放平臺。

關於微資料的解釋和使用方式,請參考谷歌站長工具中的相關介紹 《關於豐富網頁摘要和結構化資料》 。

WordPress 內容層 SEO

內容層方面的 WordPress SEO,主要涉及 Title, Meta Description, robots.txt Sitemap 等方面。至於內容創作方面的因素,不在 WordPress SEO 的範疇之內。

WordPress 標題和描述 SEO

這個應該沒什麼好說的,採用 「文章名-網站名」 或 「文章名-目錄名-網站名」 的方式進行。 WordPress 預設和部分模板所採用的 Title 標籤需要改動,直接替換 header.php 中的相關 Title 資訊即可。改動的程式碼網上有很多,可自行查詢。

同理,為了防止搜尋引擎自己抓取網站描述,從而影響使用者在搜尋結果頁面看到的文字,我們也需要對 Meta Description 做自定義處理,程式碼如下:

<?php

if (is_home()) {

$description = "這裡寫你網站首頁的描述";

} elseif (is_single() || is_page()){

$description = get_post_meta($post->ID, "description", true);

}

?>

上段程式碼的意思是,如果是首頁,則顯示 「這裡寫你網站首頁的描述」;而如果是文章頁或者頁面,則按照子定義欄目中輸入的指顯示。

那麼如何在自定義欄目中輸入值呢?怎樣找到輸入自定義 description 的地方呢?

1. 在後臺的撰寫新文章頁面下,找到右上方的 「顯示選項」,點選,勾選 「自定義欄目」;

2. 在文章編輯區下方會出現 「自定義欄目」,選擇 「輸入新欄目」,然後輸入」description」;

3. 在右方的 「值」 中輸入你文章的描述,注意保持在 70 個漢字之內。

robots 正確寫法

WordPress 的通用 robots.txt 寫法為:

User-agent: *

Disallow: /feed

Disallow: /trackback

Disallow: /comments/feed

Disallow: /wp-content/

Disallow: /wp-includes/

Disallow: /wp-admin/

Disallow: /author

Disallow: /*.css$

Disallow: /*.js$

sitemap: 替換為你網站的 sitemap.xml 地址

可以根據自己實際需求進行新增和刪減。

此外應該注意:robots.txt 檔案的編碼格式應該為 ANSI

sitemap

直接使用 Google XML Sitemaps 這個外掛創造 sitemap.xml 即可。同時也需要有一份 html 格式的網站地圖。我個人是使用 PS Auto Sitemap 這個外掛來實現的。

WordPress 內容層 SEO

這裡的最佳化主要牽扯到 CSS 和 JS 的整合及最佳化,從而提高網站相應速度和載入速度。下面的圖表示的是最佳化後的 WordPress 在 YSlow 中的得分,以及在谷歌管理員工具中網站效能中的速度測試。

最佳化後WordPress速度

由於網站速度這快的最佳化已經超出了 WordPress 的最佳化範疇,且相關要介紹和解釋的內容太多。我會在以後的文章中做專門的介紹。

以上就是楊帆對 WordPress 最佳化的一些見解,SEO 工作每個人針對每一個網站,都有不同的操作思路和具體做法。筆者也僅僅是拋磚引玉希望能夠給大家一些 WordPress SEO 上的思路。文章內容不當之處請多多包涵並指出。