很多同學會有這樣的疑惑,索引量工具顯示索引量數(shù)值很高但流量總也上不去,也沒有發(fā)現(xiàn)我們站內(nèi)有低質(zhì)內(nèi)容,百度這是要鬧哪樣?如果各位同學還有工作經(jīng)驗等內(nèi)容想分享、或者對已有內(nèi)容持相反意見者,歡迎給站長學院投稿。
首先聲明,我們只談論有檢索意義的URL,也就是用戶會從搜索引擎查找的頁面。其他頁面按照常用的方法做屏蔽就好了。鑒于很多站長都愛討論整體的收錄量,我必須潑一下冷水,也許你的有效收錄是1/10。
URL參數(shù)
也叫URL query,是一個最復雜,最容易被忽視,最容易被妥協(xié)的問題。他是網(wǎng)站運營中必不可少的元素,如果簡單的去除,其他部門就無法工作了。 靜態(tài)化是的話題,URL參數(shù)經(jīng)常被用于以下幾方面:
同一個實體的不同狀態(tài)展示,比如同一個酒店,在不同時間點會有不同的房間庫存:http://www.travel.com/hotel/123/?checkindate=2015-06-09checkoutdate=2015-06-10
為了統(tǒng)計不同渠道的流量:http://www.a.com/?tracking=website_a
為了統(tǒng)計不同渠道,具體模塊的點擊量:http://www.a.com/?tracking=website_aclick_spot=zone_abc
調(diào)試:http://www.a.com/product/item123/?debug=true
全世界最奇葩的是亞馬遜,居然把統(tǒng)計參數(shù)放到了路徑中http://www.amazon.cn/abc/dp/B005TZHJEQ/ref=lp_2130608051_1_1
出現(xiàn)這種問題的壞處有幾點:
1. 浪費搜索引擎對你網(wǎng)站的各項配額,從而影響其他正常的頁面。
2. 丟失很多本應拿到的鏈接加分,站外渠道的鏈接往往是最優(yōu)質(zhì)的。同一個URL的分值可能分散成幾十份。
3. SEO的流量被統(tǒng)計到別的渠道(因為tracking字段寫的是別的渠道,而且被收錄被點擊)
4. 往往形成一種局面,產(chǎn)品用一套URL,SEO用另一套URL, 甚至不同渠道用不同的URL,后期開發(fā)和維護的成本極高。
為了解決這個問題,首先要弄清URL的定義。以我的理解,每一個URL是一個靜態(tài)的、獨立不重復的、有意義的實體,一般也有檢索意義(就是有人會搜)。比如一個人、一輛車、一條道路、一個零件。而不能混入各種"狀態(tài)",比如這個人生病的時候,難道就不是他自己了么? 一件商品在促銷的狀態(tài)難道是另一件商品了么?
理論上canonical標簽就可以解決這個問題了, 但是從實際測試結(jié)果看,百度對這個標簽的支持優(yōu)先級非常低, 幾乎可以忽略不計。那么我的解決方案是這樣的:
1. 建立好網(wǎng)站的思維導圖和元信息。
2. 所有和SEO元信息相關的參數(shù)都放到路徑中去
3. 所有和SEO元信息不相干的參數(shù)都放到#后邊,因為#后邊不影響web服務器返回的內(nèi)容。簡單的說就是用"#"替代"?"。
4. 每個頁面中都利用js獲取#后邊的參數(shù)對,通過二次請求發(fā)回給統(tǒng)計服務器
5. 如果#后邊的參數(shù)影響頁面內(nèi)容,比如酒店的入住日期。那么這部分內(nèi)容用ajax加載就行,他是不穩(wěn)定的,不屬于頁面內(nèi)容的一部分。(當然還有變通的辦法,暫不贅述。)
6. 原始的#錨點定義肯定會沖突,定義一個#后邊的變量,并用js控制屏幕滾動,來保證原始錨點的作用。
有人可能會想到,根據(jù)ua判斷,如果是搜索引擎爬蟲,就用跳轉(zhuǎn)的方式去掉URL參數(shù)。但效率最高的方法必然是從一開始就不展示錯誤URL。那么前面的例子優(yōu)化后就變成了:
http://www.travel.com/hotel/123/#checkindate=2015-06-09checkoutdate=2015-06-10
http://www.a.com/#tracking=website_a
http://www.a.com/#tracking=website_aclick_spot=zone_abc
http://www.a.com/product/item123/#debug=true
其實很多網(wǎng)站早就使用這種方式了,但是還有很多網(wǎng)站由于開發(fā)效率無法及時實現(xiàn)。所以對于一般的小網(wǎng)站,一定要考慮開發(fā)成本,不要輕易冒進。只要能避免問題的發(fā)生,變通的方法是很多的。
路徑中使用非必要元素
很多網(wǎng)站仿照亞馬遜的做法,把商品名體現(xiàn)在URL中,然后再通過id來決定頁面展示的內(nèi)容:http://www.amazon.cn/博集典藏館043•基督山伯爵-亞歷山大•仲馬/dp/B005TZHJEQ/
這樣雖然可以提高一些相關性,但是很危險。在長期甚至短期的時間內(nèi),大量商品的名稱是非常可能有變化的,那么URL也就跟著變化。成本也是非常高的,因為加大了技術實現(xiàn)難度,不管從站內(nèi)還是站外,每次增加鏈接都是一個很麻煩的事情。
在我接手藝龍SEO之前,URL被全部改成了這樣,對我早期的工作造成了非常巨大的負擔:http://www.a.com/Shangrila_International_Hotel-12345678-hotel/
通過日志分析發(fā)現(xiàn)基本所有的百度蜘蛛發(fā)起的請求都被301跳轉(zhuǎn)了一次(日志分析方法可參考SEO健康度 )。細致調(diào)查后發(fā)現(xiàn),從SEO拼接規(guī)則到后臺的漢字和翻譯數(shù)據(jù)被一直修改。也就是說,這個URL相關的元素有:
1. 中文 (非必要元素)
2. 由中文翻譯的英文 (非必要元素)
3. id (必要元素)
而當時負責SEO的同事把英文和id拼接在了URL中,那么這樣一個URL先后變成過:
http://www.a.com/Shangrila_International_Hotel-12345678-hotel/
http://www.a.com/Xianggelila_International_Hotel-12345678-hotel/
http://www.a.com/XiangGeLiLa_International_Hotel-12345678-hotel/
http://www.a.com/Shangrila_guoji_Hotel-12345678-hotel/
跟"相關性"比,URL的唯一性和穩(wěn)定性更重要。所以針對這個問題,URL的最佳策略應該是:http://www.a.com/hotel/12345678/
如果這個id是隸屬于一個分類下的,比如城市,那么就可以是:http://www.a.com/hotel/beijing/123/
從技術角度說, id一般是數(shù)據(jù)庫的primary key,可以是數(shù)字也可以是字符串,那么這個時候URL是一維的; id也可以是聯(lián)合的唯一索引,那么URL就是二維的,就像上面的(bejing,123)缺一不可。電商類網(wǎng)站列表頁經(jīng)常用到三維以上。
大小寫
如果網(wǎng)站的技術架構用的是開源系統(tǒng),一般是不會有這個問題的。如果使用了微軟的技術架構,這個問題非常常見:
http://www.a.com/newyork/
http://www.a.com/Newyork/
http://www.a.com/NewYork/
我的建議是統(tǒng)一使用小寫,大寫自動跳轉(zhuǎn)為小寫(小心301死循環(huán)!)。
目錄的規(guī)范
很多網(wǎng)站同時存在這樣的URL,無形中把收錄量擴大了一倍:
http://www.a.com/product/123
http://www.a.com/product/123/
上邊第一個路徑的意思是在product目錄下有一個123文件。第二個路徑的意思是在product目錄下有一個123目錄,這個目錄下可能有很多文件,但是他代表眾多文件中的index.html或index.php或default.aspx等優(yōu)先級最高的那個文件。為了避免歧義,我定義文件都是用".html"結(jié)尾的。
為了減少重復收錄,那么按我的習慣是:
http://www.a.com/product/123 => http://www.a.com/product/123/
http://www.a.com/product/123 => http://www.a.com/product/123.html
總結(jié)
1. 所有部門統(tǒng)一使用SEO定義的URL,屏蔽非SEO URL的入口。
2. 用"#"替代"?"
3. 統(tǒng)一使用小寫
4. 保證目錄的規(guī)范
5. 把不規(guī)范的URL跳轉(zhuǎn)到規(guī)范的URL