至今為止用了將近半年WP,折騰過不少功能,所以對它還算是略有些了解,所以就用這幾篇文章來詳細的寫一下基礎的一些WP優化操作。
工欲善其事,必先利其器,當WP這類本身優化就不錯的程序放在眼前的時候,不要因為模板而阻礙了SEO的腳步。
WordPress基礎SEO指南——模板的選擇:
模板最方便的下載方式就是在後台直接 外觀-》主題-》安裝主題-》搜索 ,不過這裡的都是一些免費模板,雖然不乏有些不錯的,但出色的依然比較少。
如果需要更好的模板可以去找收費主題,有些網站專門給這類收費主題破解版的下載,也可以干脆找個WP模板演示站,然後用上自己的CSS技術等等去仿站。
然後就是具體選擇哪個模板了,它的選擇主要有兩點:
1.美觀性
2.代碼簡潔性
一個很麻煩的事情,很多好看的模板都是代碼比較復雜的,改起來很不方便,還沒找到過既華麗又代碼簡潔的。我自己使用過的一些模板裡面,記得代碼最簡潔的是WP-Andreas01。代碼的簡潔性對於日後模板的修改帶來了莫大的好處。
選擇好了模板以後有一件事情要先做好,就是網站的url結構。
WordPress基礎SEO指南——URL結構設置:
這設置的是文章頁面的url格式,一一說明下:
%category%——顯示文章的所屬分類目錄的名稱,可省略%postname%——顯示文章的名字,和下面一個參數一般是2選1的
%post_id%——顯示文章的編號
可以在postname和post_id後面加一個“/”,那麼就是以目錄的url形式來顯示文章了,但是不推薦,無論這麼做是否對SEO的效果有直接影響,但是在用一些抓取工具(如GSA,HTTrack等)抓取自己的網站的時候就會發現查看結果不方便。
也可以在postname和post_id後面加“.html”之類,就是設置文章頁面的後綴名字。上面的截圖中設置為“.seo”純粹是為了新意而已。文章頁面的後綴名字不設置也可以。
另外WP裡面分類目錄的url默認是帶一個category的,如http://www.semyj.com/archives/category/ppc,要去掉的話一定要用插件才可以。那麼這時可以安裝一個WP No Category Base插件,直接安裝啟用就可以了。
WordPress基礎SEO指南——代碼篇
關於PHP,如果一點都不懂的話可以到w3school補充知識,基礎的一些可以很快掌握。
WordPress基礎SEO指南——<head>區的代碼設置:
首先設置title:
<title><?php wp_title('_', true, 'right');bloginfo('name');?></title>這段代碼的效果如:
首頁:光年論壇
內頁:WordPress基礎SEO詳細指南(二)_光年論壇
如果前面的“right”設置是“left”的話,內頁就會是:光年論壇_WordPress基礎SEO詳細指南(二)。前面的“_”自然指的是其中的分隔符。
bloginfo(‘name’)的意思是WP的 設置>常規 裡面設定的站點標題。
如果要把首頁的特別設置為不一樣的話,可以用下面一段代碼:
<title><?php if(is_home()) { ?>光年論壇-做科學的SEO與PPC<?php } else {?><?php wp_title('_', true, 'right');bloginfo('name');?><?php } ?></title>意思就是先判斷是不是首頁,如果是首頁的話,就顯示為首頁特別設置的title,不然就按照原先的設置來。
如果想在文章標題後面加上欄目標題再跟上首頁的話比較麻煩,所以就略去了。
然後是keywords,果斷無視。就算搜索引擎仍會考慮keywords的用途,也是微乎甚微的,至少我每次碰上寫一堆keywords的網站都會覺得略顯優化過度。
desciption標簽,建議設置為:
<?php if(is_home()) { ?><meta name="desciption" content="<?php bloginfo('description'); ?>" /><?php } ?>意思就是如果是網站首頁的話,顯示 設置>常規 裡面設定的副標題。如果是內頁就不顯示description。
覺得對於博客這種文章內容為主的網站而言,SERP裡面的摘要還是讓搜索引擎自行去動態提取比較好,應該有利於點擊率的提升。
WordPress基礎SEO指南——一些細節的代碼設置:
<a href="<?php bloginfo('url'); ?>/">上面一段代碼是連向網站首頁的代碼,注意最後一個斜槓。從一本PHP書上面看到似乎不加斜槓的話,似乎是會讓服務器多進行一次處理的。
另外,WP的head部分有一堆看似意義不大的代碼,Google可能會認,百度認識它們的可能性比較小。所以可以去除一些。代碼都在ftp裡面的wp includes文件夾裡面,分別分散於幾個文件中。我不記得那幾個文件的名字了,不過都是體積比較大的文件。
具體的修改方法比較簡單的是通過ctrl+f尋找對應的一些語句,隨後直接把函數裡面echo(輸出代碼)的部分去除就可以了。考慮效率的問題上,盡管把函數整個刪掉更好,但是相對略微麻煩點。
主要是後面還將會介紹WP Super Cache插件,使用了它以後,WP平常的運行速度慢這個問題幾乎不會再體現出來。
上面提到了WordPress程序優化中的模板的選擇與固定鏈接的設置,下面則主要是一些代碼的更改。
WordPress基礎SEO指南——文章摘要的處理:
盡管說博客做的時間長了以後,搜索引擎可能就認識它是博客了(猜測),但在之前,博客比較容易產生重復內容絕對是一件麻煩事。曾經有一次看的時候就發現我的一個分類目錄被作為重復內容處理了。
據說百度是根據詞頻為主來判斷原創性的,那麼只在首頁之類的輸出文章的一部分的話,它就應該不會認為是重復內容了。而且對博客讀者而言,文章摘要也可以更方便讓別人來找到想看的文章。
勤奮的人的方法:
圖上的這個more標簽找個地方插入進去就行了。其效果就是SEM一家之言這樣的效果。
懶人的方法:
安裝wp-utf8-excerpt插件,在插件頁面設置一番之後到模板裡面本來是<?php the_content(); ?>的地方改成<?php the_excerpt(); ?>,然後就可以按照固定的字數來輸出摘要了。
兩種方法都會讓文章有類似於“繼續閱讀全文”的鏈接,屬於無意義錨文本,可以設置為nofollow。第一種方法到ftp裡面去改,第二種方法在插件編輯頁面改。
兩個小技巧:
1.改代碼不一定要對PHP有多懂,只要記住:echo “Hello World!”; 是在頁面上輸出Hello World!的意思,而echo “Hello”.$a; 是在頁面上先輸出Hello,再緊接著輸出$a變量的值。而$a這個變量就是類似於代詞,它替代的內容由之前的類似於$a = “SEO”; 的代碼決定,echo “Hello”.$a; 實際輸出的就是Hello SEO。
改代碼的時候,只要ctrl+f尋找echo語句就行了,一般要改的東西在那裡。
2.WP有些代碼要在ftp裡面改,但是可能不知道是在哪個文件裡面改。這時模板編輯頁面可以找到這樣的一塊地方,只要是正在編輯的代碼裡面存在某個函數,就會在這個下拉框裡面顯示出來。
選擇查詢以後,會跳到WP的幫助頁面,裡面可以看到該函數處於哪個文件,然後到那個文件裡面去ctrl+f找echo語句。
另外,以這個添加nofollow的問題為例,可能還要注意的是單引號、雙引號、轉義符的問題,一下子難以說清楚,還是建議到w3school裡面去稍微補充下最基礎的一些PHP知識。
WordPress基礎SEO指南——文章互連的處理:
最近覺得SEO絕大的一塊地方就應該在處理文章頁面怎麼連向另一些文章頁面。首頁連欄目頁、欄目頁連內頁這些雖然也是有不少要注意的,但畢竟能做的相對比較少。
那麼排除一些特殊的鏈接情況,多數情況下,還是以相關文章互相鏈接為主的。
此時有個不錯的插件是WP Keyword Link,柳城從國外的一款插件改過來的,它能根據自己設置的tag來關聯文章。就是說如果有兩篇文章的tag有相同的話,它們就會被互相連接在一起。
然後就是考驗的如何設置tag的水平了,簡單點的話,可以從文章標題裡面抽取幾個重要的名詞出來。如果比較講究的話,可以用中文分詞統計工具找出內容中權重最高的幾個詞,結合標題裡面出現的一些來寫tag。
上圖是火車頭采集器裡面的中文分詞工具,詞語旁邊的數字即其權重,似乎是把tf-idf也考慮進去以後得出的結果。
另外順帶提一下,以前聽說過百度會提取網頁上權重最高的5個詞作為主索引詞,作為判斷主題用。
設置好tag以後,文章的互連是沒問題了,不過有人或許會考慮是否應該讓tag被搜索引擎收錄。反正我自己的打算是在tag頁面的內容還少的時候不讓搜索引擎收錄,免得可能有重復內容之類的問題,當內容多了以後就讓搜索引擎去收錄(打算以後做個類似於站內搜索引擎那樣的能動態提取文章摘要的tag頁面)。
讓搜索引擎收錄的話再容易不過,文章底部出現它有哪些tag,也可以在邊欄放上標簽雲。
而不讓搜索引擎收錄的話就略有點糾結了,不出現tag鏈接自然很省事,不過有時一些讀者會想通過tag來找文章,可能還是需要出現tag的鏈接的。此時最簡單的方法是robots.txt屏蔽,但覺得不是最好的方法。
推薦使用WP-Cumulus插件,是個3D的Flash版超華麗標簽雲,用Flash來給出鏈接的話,多數搜索引擎就不會收錄tag了。當然如果你想說Google可能會讀取swf裡面的鏈接的話,的確沒錯,不過至少我懶得管這麼多了。