博客遷移沒有注意 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:[email protected]" itemprop="email">[email protected]</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 相關的東西做了一個簡要的概述,同時也概括了搜索引擎做的一些工作,知識量有限,難以面面俱到,如有錯誤還請斧正。