網站的SEO以及它和站長工具的之間祕密
部落格遷移沒有注意 URL 地址的變化,導致百度和 google 這兩隻爬蟲引擎短時間內找不到路。近段時間研究了下國內最大搜索引擎百度和國際最大搜索引擎google的站長工具,說下感受。
最近牆的比較厲害,google 不一定能訪問進去(我平時用的 GreenVPN,還挺不錯的,速度快,支援的國家也多)。
站長工具的作用是為了輔助開發者,針對自己的網站做出更加合理的網頁佈局和程式碼優化,以便讓 spider 更好地理解網頁,從而將最準確的資訊送達到使用者的熒屏上。它對搜尋引擎和開發者是雙贏的。
Web 發展極快,由於客戶端廠商紛紜加之開發者沒把重點放在 web 標準上,直到 2014 年的 10 月底才有了
搜尋引擎對網頁的理解
摸索兩個站長工具,感觸最深的是結構化資料(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.xml
User-agent: *
Allow: /
SEO上,站長工具主要分為兩個方面,一個是對網頁的抓取,一個是對網頁的分析。它告訴搜尋引擎,網站地址的位置、允許蜘蛛爬取的內容等,它是一個協議。最近,貌似還多了一個 humans.txt
,也是一個比較有意思的檔案,可以在這裡瞭解它:http://www.humanstxt.org.cn/,它可以描述一些站點和團隊的故事。
網頁的抓取在百度站長工具中體現的比較多,而網頁的分析,諸如資料標註、結構化資料等,百度做的還比較搓,目前還在內測階段,需要傳送郵件才能申請許可權。看到百度站長工具頁面上的幾個資料標註示意圖,揣測應該比 google 弱一百倍,所以我還是重點說說 google 的吧。
網頁的抓取
這塊上,兩個站長工具都是強調讓開發者把網站地圖顯式的暴露給搜尋引擎,提供了各種分析網站地圖準確性合理性的工具,搜尋引擎如果發現你的網站上一個地址時有時無,就會覺得你不可信有點飄渺。所以一旦網頁因為改造或遷移導致頁面連結丟失,可以在站長工具中填寫這些死鏈。
不要貪婪的讓搜尋引擎不停的爬取你的網站,如果它多次過來發現內容是一樣的,它也會很傷心的離開。而如果它發現每次過來爬你的內容都能找到很有意思的、從來沒發現過的東西,它會對你越來越感興趣,甚至日久天長它會給你定型、定位,然後權重會越來越高。在站長工具上都是可以設定的。
網頁的分析
google 的資料化標記做的實在是太讚了!輸入網址,它會開啟你的網頁,設定你要標記的型別,比如文章。選中頁面上的元素然後標記。比如選中文章的標題,選中之後有一個選單,在選單上選擇 title,選中作者名字,然後選單上選擇 author,一個頁面標記完了之後,他會分析整站的所有頁面,如果結構相似,也會自動標記其他頁面。
整個標記完成之後,google 就知道你整個網站的資訊架構了,下次要做的就是對這些資訊內容做匹配和分類。所以我們可以看到,個人部落格在 google 中的搜尋是極其靠前的,因為頁面的資訊結構簡單,即便你不去標記,它爬取多次之後也能自己理解。
對比百度和 google ,兩者如同屌絲和高富帥。不過高富帥總是要越牆才能看到,所以我平時使用的依然是百度分析。百度分析和百度站長工具還是不一樣的。百度對網頁流量的分析和搜尋詞彙的分析還是挺精準,也很有參考價值。
小結
本文對 SEO 相關的東西做了一個簡要的概述,同時也概括了搜尋引擎做的一些工作,知識量有限,難以面面俱到,如有錯誤還請斧正。