標籤:
部落格遷移沒有注意 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: 文章標題
在一個需要表達的塊上加上 itemscope
屬性和一個 itemtype
屬性,itemtype 是有固定值的,具體可以參閱 schema.org 的說明。然後在塊內添加詳細的說明,使用 itemprop
標註。整個操作十分簡單,略微麻煩的是需要對照 schema 的官方網站填寫規定的 itemprop
欄位。然而搜尋引擎彙總的網頁太多,當這些五花八門的 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>
結構化資料,通常也可以稱之為中繼資料,這些資料附著在網頁文本資訊內,釐清了頁面上每個組件的功能、屬性和意義。當機器進入網頁的時候,能夠像人一樣,一眼瞄出要表達的內容。關於 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: /
SEO上,站長工具主要分為兩個方面,一個是對網頁的抓取,一個是對網頁的分析。它告訴搜尋引擎,網站地址的位置、允許蜘蛛爬取的內容等,它是一個協議。最近,貌似還多了一個 humans.txt
,也是一個比較有意思的檔案,可以在這裡瞭解它:http://www.humanstxt.org.cn/,它可以描述一些網站和團隊的故事。
網頁的抓取在百度站長工具中體現的比較多,而網頁的分析,諸如資料標註、結構化資料等,百度做的還比較搓,目前還在內測階段,需要發送郵件才能申請許可權。看到百度站長工具頁面上的幾個資料標註,揣測應該比 google 弱一百倍,所以我還是重點說說 google 的吧。
網頁的抓取
這塊上,兩個站長工具都是強調讓開發人員把網站地圖顯式的暴露給搜尋引擎,提供了各種分析網站地圖準確性合理性的工具,搜尋引擎如果發現你的網站上一個地址時有時無,就會覺得你不可信有點飄渺。所以一旦網頁因為改造或遷移導致頁面連結丟失,可以在站長工具中填寫這些死鏈。
不要貪婪的讓搜尋引擎不停的爬取你的網站,如果它多次過來發現內容是一樣的,它也會很傷心的離開。而如果它發現每次過來爬你的內容都能找到很有意思的、從來沒發現過的東西,它會對你越來越感興趣,甚至日久天長它會給你定型、定位,然後權重會越來越高。在站長工具上都是可以設定的。
網頁的分析
google 的資料化標記做的實在是太贊了!輸入網址,它會開啟你的網頁,設定你要標記的類型,比如文章。選中頁面上的元素然後標記。比如選中文章的標題,選中之後有一個菜單,在菜單上選擇 title,選中作者名字,然後菜單上選擇 author,一個頁面標記完了之後,他會分析整站的所有頁面,如果結構相似,也會自動標籤其他頁面。
整個標記完成之後,google 就知道你整個網站的資訊架構了,下次要做的就是對這些資訊內容做匹配和分類。所以我們可以看到,個人部落格在 google 中的搜尋是極其靠前的,因為頁面的資訊結構簡單,即便你不去標記,它爬取多次之後也能自己理解。
對比百度和 google ,兩者如同屌絲和高富帥。不過高富帥總是要越牆才能看到,所以我平時使用的依然是百度分析。百度分析和百度站長工具還是不一樣的。百度對網頁流量的分析和搜尋字詞匯的分析還是挺精準,也很有參考價值。
小結
本文對 SEO 相關的東西做了一個簡要的概述,同時也概括了搜尋引擎做的一些工作,知識量有限,難以面面俱到,如有錯誤還請斧正。
轉自我的個人部落格:http://www.barretlee.com/entry
網站的SEO以及它和站長工具的之間秘密