網站的SEO以及它和站長工具的之間秘密

發表於2015-09-06

部落格遷移沒有注意 URL 地址的變化,導致百度和 google 這兩隻爬蟲引擎短時間內找不到路。近段時間研究了下國內最大搜尋引擎百度和國際最大搜尋引擎google的站長工具,說下感受。

  • 百度的站長工具地址:http://zhanzhang.baidu.com/dashboard/index
  • google 的站長工具地址:https://www.google.com/webmasters/tools/home

最近牆的比較厲害,google 不一定能訪問進去(我平時用的GreenVPN,還挺不錯的,速度快,支援的國家也多)。

站長工具的作用是為了輔助開發者,針對自己的網站做出更加合理的網頁佈局和程式碼最佳化,以便讓 spider 更好地理解網頁,從而將最準確的資訊送達到使用者的熒屏上。它對搜尋引擎和開發者是雙贏的。

Web 發展極快,由於客戶端廠商紛紜加之開發者沒把重點放在 web 標準上,直到 2014 年的 10 月底才有了統一的標準。使用者輸入關鍵詞,搜尋引擎要在 0.1s 內將網路上的資源匯聚起來,這個過程中計算的開銷、資料整合的開銷是極大的,如果我們開發的網頁不能讓 spider 準確理解,最後的結果就是,寫的東西很難出現在使用者面前。

搜尋引擎對網頁的理解

摸索兩個站長工具,感觸最深的是結構化資料(Structured Data),結構化資料不是把文章段落分清楚、標題寫清楚,實際上你文章段落分的再清晰,爬蟲機器也不知道你在表達什麼,所以資料結構化是給爬蟲看而不是給人看的。HTML 標籤的數量很有限,有限的幾個標籤沒辦法表達網頁上每一個元素的含義,比如一個小的圖示、一個廣告位、一個蒙層等,於是網頁上出現了很多 class 名、id 名來標記一個元素。這些內容的統一讓爬蟲理解的略微透徹了一些,比如:

.banner: 一張banner廣告位.sidebar: 側邊導航欄.nav: 主導航.icon: 頁面小圖示.post: 一篇文章.post-title: 文章標題

然而搜尋引擎聚合的網頁太多,當這些五花八門的 class 出來之後,它又開始迷茫了,難以較好的聚合分類。所以出現一個叫做 Schema 的東西,它用來表示一個結構化資料結構,可以看下面一個 schema 示例:

<div itemscope itemtype="http://schema.org/Person">     <span itemprop="name">李靖</span>     <img src="http://barretlee.com/avatar.png" itemprop="image" />      <span itemprop="jobTitle">攻城師</span>     <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">         <span itemprop="streetAddress">文一西路969號</span>         <span itemprop="addressLocality">浙江杭州</span>    <span itemprop="postalCode">310000</span>     </div>     <span itemprop="telephone">(0571) 123-4567</span>     <a href="mailto:barret.china@gmail.com" itemprop="email">barret.china@gmail.com</a>  李靖的主頁:  <a href="http://barretlee.com" itemprop="url">barretlee.com</a>    </div>

在一個需要表達的塊上加上itemscope屬性和一個itemtype屬性,itemtype 是有固定值的,具體可以參閱schema.org的說明。然後在塊內新增詳細的說明,使用itemprop標註。整個操作十分簡單,略微麻煩的是需要對照 schema 的官方網站填寫規定的itemprop欄位。

結構化資料,通常也可以稱之為後設資料,這些資料附著在網頁文字資訊內,釐清了頁面上每個部件的功能、屬性和意義。當機器進入網頁的時候,能夠像人一樣,一眼瞄出要表達的內容。關於 schema ,以前翻譯過一篇文章SEO:讓搜尋引擎對你的網站更有親和力。

SEO和站長工具的之間秘密

除非搜尋引擎能夠猜到你要搜尋的具體的 URL 地址,一般地,它都會從自己的資料索引庫中扒拉資料。對於權重高、更新頻率高、原創內容多的網站,搜尋引擎會十分勤快的爬最新內容。那麼,如何讓搜尋引擎知道網站上有多少網頁便成了一件重要的事情。

我們經常會聽到一個叫做”網站地圖”的東西。有些網站會在自己的站點中新增一個頁面,這個頁面包括了整站的重要入口,那麼這個頁面就是該頁面的網站地圖。這些地圖是給人看的,如果只想給爬蟲引擎看,可以將所有的連結按照一定的格式放到sitemap.xml檔案中,然後把這個檔案放到網站的根目錄下,如http://www.barretlee.com/sitemap.xml。

而最重要的還是robots.txt這個檔案,它是所有引擎約定俗成的一個檔案,比如我的網站中用到的http://www.barretlee.com/robots.txt,其內容為:

Sitemap: http://www.barretlee.com/sitemap.xmlUser-agent: *Allow: /

它告訴搜尋引擎,網站地址的位置、允許蜘蛛爬取的內容等,它是一個協議。最近,貌似還多了一個humans.txt,也是一個比較有意思的檔案,可以在這裡瞭解它:http://www.humanstxt.org.cn/,它可以描述一些站點和團隊的故事。

SEO上,站長工具主要分為兩個方面,一個是對網頁的抓取,一個是對網頁的分析。

網頁的抓取在百度站長工具中體現的比較多,而網頁的分析,諸如資料標註、結構化資料等,百度做的還比較搓,目前還在內測階段,需要傳送郵件才能申請許可權。看到百度站長工具頁面上的幾個資料標註示意圖,揣測應該比 google 弱一百倍,所以我還是重點說說 google 的吧。

網頁的抓取

這塊上,兩個站長工具都是強調讓開發者把網站地圖顯式的暴露給搜尋引擎,提供了各種分析網站地圖準確性合理性的工具,搜尋引擎如果發現你的網站上一個地址時有時無,就會覺得你不可信有點飄渺。所以一旦網頁因為改造或遷移導致頁面連結丟失,可以在站長工具中填寫這些死鏈。

不要貪婪的讓搜尋引擎不停的爬取你的網站,如果它多次過來發現內容是一樣的,它也會很傷心的離開。而如果它發現每次過來爬你的內容都能找到很有意思的、從來沒發現過的東西,它會對你越來越感興趣,甚至日久天長它會給你定型、定位,然後權重會越來越高。在站長工具上都是可以設定的。

網頁的分析

google 的資料化標記做的實在是太讚了!輸入網址,它會開啟你的網頁,設定你要標記的型別,比如文章。選中頁面上的元素然後標記。比如選中文章的標題,選中之後有一個選單,在選單上選擇 title,選中作者名字,然後選單上選擇 author,一個頁面標記完了之後,他會分析整站的所有頁面,如果結構相似,也會自動標記其他頁面。

整個標記完成之後,google 就知道你整個網站的資訊架構了,下次要做的就是對這些資訊內容做匹配和分類。所以我們可以看到,個人部落格在 google 中的搜尋是極其靠前的,因為頁面的資訊結構簡單,即便你不去標記,它爬取多次之後也能自己理解。

對比百度和 google ,兩者如同屌絲和高富帥。不過高富帥總是要越牆才能看到,所以我平時使用的依然是百度分析。百度分析和百度站長工具還是不一樣的。百度對網頁流量的分析和搜尋詞彙的分析還是挺精準,也很有參考價值。

小結

本文對 SEO 相關的東西做了一個簡要的概述,同時也概括了搜尋引擎做的一些工作,知識量有限,難以面面俱到,如有錯誤還請斧正。

相關文章