我們在上一期提到了 robots.txt 的各項功能描述,這一期我們來介紹一下在 meta data (元資料)當中的 SEO 優化。用更白話的方式來說,就是讓大家學習如何對單一網頁進行控制是否要進行索引或是禁止索引的過程。。
隨著一步步介紹 SEO 的內容說明,我們也逐步走入深水區,因此有些內容比較艱深一點。但我盡力用更直接簡單的方式說明。
我們已經了解透過 robots.txt 可以跟搜尋引擎溝通,針對網站特定的目錄進行索引查找,但是這些都只限於網站架構下的目錄部分,並沒有針對單一網頁。那麼如果想針對單一網頁該怎麼辦?在這一期要介紹的是 meta robot標籤,透過 meta robots 標籤,可以針對我們希望網站特定頁面也能透過索引結果,被搜尋引擎納入到索引的範疇當中。
什麼是元標籤
從 W3C 的說明中,可以很明顯的知道什麼是元標籤:從meta到link和script的所有這些元素實際上都是元標籤。當然並不是所有的元標籤都跟 SEO 相關,因此我只在這個地方說明那些跟 SEO 相關的元標籤。
元標題〈title〉
title元素是頁面的主要標題,由<title>元素表示。對於SEO,這可能是最重要的元素,在頁面上添加正確的標題仍然可以直接影響網站的排名,確保在開頭包含主關鍵字(或:focus關鍵字),並<title>以公司或網站名稱作為品牌結尾。標題的長度<title>可能會根據人們用來查看網站的最常用設備而有所不同。但是,請相信我,越短越合適。又臭又長的標題內容其實並不受用戶歡迎。
元描述〈description〉
元描述曾經是當前頁面的簡短描述或摘要。在過去,它可以幫助Google輕鬆地告知網頁內容。如今,谷歌只是簡單地“讀取”整個頁面,而元描述已成為對谷歌搜索結果頁面中顯示的文本的建議。也就是說,Google 並不一定會用你建議的內容,Google 可能會用另外一段內容,而不是你建議的內容。
元關鍵字<keyword>
這個元資料現在已經很少有搜尋引擎使用,因為它太容易變成網站管理員用這方式進行 spamming 的方式,所以請忘記元關鍵字吧。如果您認真對待SEO,現在您將知道meta關鍵字的影響已接近於零(對於Google而言則為零)。
元資料機器人標記<data>
從大量的案例中,我觀察到 meta機器人標籤比Google的robots.txt聲明更受尊重。所以在以下的案例中,我會把重點放在元資料機器人這件事上。
元資料標籤並不是只有上面這些內容,事實上,它涵蓋的範圍非常廣。日後,我們還會有機會接觸到其他的元資料(如:link_rel)。
什麼是 REP
介紹了元資料這個概念之後,接著讓我們介紹 REP,這個簡寫在中文被稱為機器人排除協議(Robot Exclusion Protocol)是蜘蛛索引指令的元素,是網站用來與網站抓取工具的通信標準,也因此我們常會將REP視為網站與搜尋引擎相互溝通的工具,由REP 告訴搜尋引擎網站上哪個網頁要更新,哪些網頁不需要。透過 REP,它會告訴搜尋引擎如何對網站的指定頁面進行關鍵字的查找以及索引。
由於對搜索引擎爬網,索引編制和排名相關的REP指令定義層級不同,因此搜索引擎會遵循一種命令層次結構:
REP的命令層次
REP 依據用戶設定的層次定義了規則。首先最上層是 XML 網站地圖,這個網站地圖已經在前一課跟各位做了介紹,接著就是 robots.txt,最底層就是 meta robots。也就是說:如果不想讓搜尋引擎對網站網頁進行索引,可以透過多種方式把這些不想被搜尋引擎找到的網頁進行索引,我們可以運用不同的方式,而且有層級的方式實現:
- XML 網站地圖:XML 網站地圖會告訴搜尋引擎哪些網頁目錄是可以被索引的;或是哪些目錄是不能被索引的。
- robots.txt:用 robots.txt 指引搜尋引擎哪些目錄要看到,哪些目錄不能被看到,方便搜尋引擎進行索引
- 單一網頁:可以用 meta robots 在網頁中的代碼確認是否要進行索引或是禁止,但要注意的是這個代碼的層級低於 robots.txt,所以如果已經在 robots.txt定義了,那麼你在 meta robots 輸入的內容就會失效。就是說:
robots.txt 位於 Web 服務器的根目錄,它是整個站點的索引把關方式。換句話說,如果其他要求定義與 robots.txt 中的語法產生衝突,則 robots.txt 會否決該指令要求。一般來說,搜尋引擎每天會查詢 robots.txt 並根據查詢結果緩存其內容。這意味著更改不會立即影響爬網。提交的站點地圖可能會清除並刷新robots.txt緩存,這樣就意味著搜索引擎會得到更新的 robots.txt,然後更新索引內容。
什麼是 meta robots tags?
我們在前面提到了 XML 網站地圖,它提供給搜尋引擎的機器讀取 URL 列表作為判讀的規則。 XML網站地圖會設置幾個特定於URL的爬網程序指令,或者為爬網程序提供更好的提示,例如所需的爬網優先級或“上次修改的”時間戳。借助XML格式的視頻站點地圖,可以為搜索引擎提供meta data,例如標題(title)或文本摘要(snippet)等。而那些被 robot.txt 語法限制的網站地圖,搜尋引擎不會違背這些命令要求去讀取這些網頁的內容。
meta robots 標籤的使用方式
meta robots 標籤的使用方法可以加上很多的選項,這些選項說明如下:
- 全部 – 不對內容進行索引。絕大部分的網頁都會默認使用此指令,而且也不會對搜索引擎的工作產生影響。
- noindex – 告知搜索引擎對指定的頁面不進行索引。
- nofollow – 不允許搜尋引擎關注頁面上的連接。
- none – 與noindex和nofollow元標記相同。
- noarchive – 不要在搜尋結果頁面顯示保存的副本連接。
- nosnippet – 不要在搜尋結果頁面顯示頁面的內容描述內容。
noindex與nofollow之間有什麼差別
noindex表示網頁不應該被搜索引擎索引,因此不應該顯示在搜索引擎的結果頁面上。nofollow意味著搜索引擎蜘蛛不應遵循該頁面上的鏈接。您可以將這些值添加到您的漫遊器元標記。meta data是網頁頂部的一段代碼。
哪些情況不需要 noindex:
在大型網站中,有部分的網頁無法被搜尋引擎找到,多半是因為這些頁面重要性低,如此一來搜尋引擎想要找到這些網頁的機會就不大,在這樣的情況下,網站管理者就會在這些網頁上添加 meta- noindex 的指令。如此一來,當搜尋引擎找到這一類的網頁時,網頁內的 meta data 就會告訴蜘蛛不需要為這些網頁建立索引,這樣一來,這些頁面即便被搜尋引擎找到了,也不會出現在搜尋結果頁面。
哪些情況需要顯示為 nofollow:
當網站擁有較佳的搜尋排名或權重,難免會有其他排名較低的網站,來排名佳的網站留言區留下垃圾連結,甚至寫惡意程式產生大量外部網址,企圖將好網站的權域值傳給自己的網站,以提升網站排名,俗話說就是來「蹭」好網站的權重。
將頁面設置為nofollow標記,則該頁面上的所有連結均不會被跟踪。Google提出了nofollow以便能夠區分到不可信內容的連結。在常規網站上,你可能希望很少的頁面讓Google不遵循任何連結。
舉例來說:如果你有一個網頁顯示了所有的 SEO 圖書的內容,上面顯示大量的博客來圖書連結,那麼這些內容對你的網站可能會帶來價值。帶有大量的博客來連結,這些內容對用戶而言可能對網站會認為是有價值的,但是一旦加上nofollow,如果頁面上沒有其他內容,即使已經被編入索引也是一樣,搜尋引擎不會追隨這些連結,繼續深挖下去,因此在這種情況下,只要確保你以正確的方式隱藏鏈接即可。
如何使用 meta robots 標籤
meta robots 標籤無論是設置或是使用都非常簡單。 設置 meta robots 標籤所需要的時間很短,只要 通過四個簡單的步驟,就可以使您的網站索引更上一層樓:
- 按CTRL + U訪問頁面代碼。
- 複製頁面代碼的<head>部分,然後貼到另一個文本格式的文件中。
- 請準備一個完整的分步驟指南,告訴工程師哪些內容需要使用這些標籤,建議你加上重點關注範圍,還有說明哪些地方需要加上這些 meta robots 標籤。
- 工程師完成設置之後,請安排時間檢查(一定要檢查,以免工程師做錯了),確保工程師已經正確完成設置。怎麼檢查呢?請使用 SEO 蜘蛛查核工具。
如果你想優化特定頁面,則 meta robots 標籤是必不可少的,但操作就像前面說的非常簡單,只要打開網頁代碼,然後指導工程師如何植入這些代碼就可以了。如果你用的是一個內容管理系統架設網站的,或是你用了 WordPress 網站平台,你可以選擇使用一些 plugin,比如:Yoast,那麼這樣不需要開發人員的介入,可以直接招前端工程師幫忙完成植入。
Meta robots 標籤
在協助其他公司的SEO專案過程中,我經常會遇到的問題是:客戶的 robots.txt 檔案中的指令與頁面上的 meta robots 的索引需求不一致,特別是客戶將 robots.txt 文件要求將頁面隱藏起來,不要被搜尋引擎列入索引,但 meta robots 標籤卻相反。就如同前面說的,robots.txt 是整個網站根部的索引發起點,因此站點內的網頁索引需求在層級上都會低於 robots.txt 的要求。
設置META機器人標籤和ROBOTS.TXT的最佳做法
主要的搜索引擎可以識別元機器人標籤:Google,Bing,Yahoo和Yandex。 您不必為每個單獨的搜索引擎或瀏覽器調整代碼(除非它們遵循特定的標籤)
設置META機器人標籤和ROBOTS.TXT的最佳做法
当你要在页面中设定索引标签时,以下是多家搜索引擎共同建议的最佳做法,提供给你参考:
- notranslate – 不在搜寻结果页面显示此页面的翻译内容。
- noimageindex – 不在页面上显示图片的索引结果。
- unavailable_after:[RFC-850日期/時間] – 在[RFC-850日期/時間](指定的日期/時間)之後不在搜尋結果頁面顯示。
robots.txt 以及 meta robots 如果不合規,會發生什麼情況
robots.txt中的指令與頁面上的 meta robot之間的不一致是一個常見的錯誤。例如,robots.txt文件將頁面隱藏在索引中,但是meta robots標籤卻相反。在這種情況下,Google將注意robots.txt文件禁止的內容。機器人很可能會忽略鼓勵內容索引的指令。
請注意,robots.txt是Google的推薦,而不是要求。
因此,只要有外部鏈接指向您,您仍然有機會看到您的頁面被索引。
如果robots.txt沒有隱藏頁面,但指令卻隱藏了– Google漫遊器將完成最嚴格的任務,並且不會索引頁面內容。
結論很簡單:消除meta robots標記和robots.txt之間的不符之處,以清楚地向Google顯示應為哪些頁面建立索引,哪些不應該建立索引。
另一個值得注意的示例是頁面元標記之間的不連貫性。當發現網頁上的meta標籤之間存在衝突時,Yandex搜索機器人會選擇正值:
<meta name =“機器人” content =“ all” />
<meta name =“機器人” content =“ noindex,關注” />
<!–機器人將選擇“全部”值並為所有鏈接和文本建立索引。
Sitemap.xml 的規則
- Sitemap.xml、robots.txt 和 meta robots 標籤是分層級定義規則的,不應該發生衝突。
- 同樣的,當 robots.txt和meta robots標記中,被禁止索引的頁面,也應該從 sitemap.xml當中排除。
- 而所有要建立索引的頁面都必須包含在sitemap.xml中。
- 正確設置後,sitemap.xml,robots.txt和meta robots標籤說明會展示一種互補的效能,表現出整個網站的索引效果。
整體回顧
知道如何設置和使用 robots.txt 文件和 meta robots 標籤非常重要,因為可能因為一個疏忽,就會造成整個廣告投放效果付諸流水,而且可能還不知道問題來自什麼地方。因為它太隱秘,很多行銷人員會忽略!
我在工作過程中,認識幾個 SEO 專員,他們花了大量的時間操作SEO,但到了最後一刻,才發現他們的網站忘了要在 robots.txt 建立索引的指示!而我也見過某幾個行銷人員並沒有意識到要妥善運用“nofollow”標籤,導致實際執行過程中發現沒有產生大量的雙向連接(又稱為反向連接),失去了搜索引擎現在最看重的外部鏈接要求,降低了網站在 SERP 的排序效果。
處理 robots.txt 文件和 REP 標籤非常有技術要求,而且要細心操作。一個小小的錯誤,就會造成許多錯誤。不過雖然如此,還是有一些基本規則可以照表操課,幫助你正確實現。
robots.txt
- 當你或者你要求網站管理員創建了 robots.txt,請務必要將 robots.txt 放在網站的根目錄,也就是輸入 www.example.com/robots.txt 就可以讀取到 robots.txt 的內容。,這樣可以簡化搜尋引擎抓取網頁、建立索引的過程。
- robots.txt 的寫法有一定的順序,通常是這樣的次序:用戶代理(user-agent)名稱/不允許/允許/主機/網站地圖(每個/代表的是一行,而不是斜線區分),透過這樣的表示方式,搜尋引擎會根據你的要求訪問網站上的類別以及網頁。
- 對每個 URL 準確輸入每一行當中,而且明確“允許”或“禁止”。請不要在一行當中出現多個 URL 或是多個命令要求,這樣索引指引檔案就無法正確訪問,而且也無法顯示錯誤,除非你在發佈前,先用 Google Search Console 之類的蜘蛛管理工具預先檢查,才能避免發生這樣的問題。
- 強烈建議你使用小寫字母命名 robots.txt。此外,對於文件名稱,我也建議你用大小寫區分。
- 與上述第 3 點的描述相同,再次強調請不要用空格分隔查詢參數。例如,像這樣的 “/ cars / /bmw/” 這樣的查詢條件請不要用這種方式呈現,不然會發生 robots.txt 出現錯誤。
- robots.txt 當中只能使用*和$這兩種特殊字符,其他特殊字符都無法識別,請仔細檢查。
- 如果你使用多個子域,請為不同的子域創建單獨的robots.txt文件。例如“ office.microsoft.com”和“ dev.microsoft.com”,它們都具有帶有目錄和頁面特定指令的單個文件。
- 如果要在 robots.txt 增加註釋,請使用使用#。
- robotst.TXT是用來讓你跟搜尋引擎溝通索引使用的,而不是為了讓你保護網站安全得,因此請不要處於安全目的,依賴 robots.txt。如果想保護網站的安全,請使用密碼或是其他的安全機制,避免黑客攻擊或是數據上的欺詐。
meta robots 標籤
- meta robots 大小寫需要區分:Google和其他搜尋引擎可以識別大小寫的屬性、值和參數,,而且還可以在大小寫之間進行切換,因此為了避免搜尋引擎誤判你的 meta robots 標籤要求,我強烈建議你最好習慣使用單一的大寫或小寫方式提高代碼可讀性(我個人偏好小寫方式,因為出錯機率低)。
- 請避免使用多個<meta>標籤,這樣可以避免代碼發生衝突,建議直接在 <meta>標記中使用多個值,如下所示:<meta name =“ robots” content =“ noindex,nofollow”>。
- 標記之間不要出現使用上的衝突,以避免索引錯誤。例如,如果在幾段代碼中出現了 meta 標籤,搜尋引擎會優先考慮限制值。例如<meta name =“ robots” content =“ follow”>和此<meta name =“ robots content” =“ nofollow”>,這樣搜尋引擎會先考慮 nofollow 這個命令。
- 你可以在網站上使用 robots.txt 和 meta robots 標籤。但是請避免發生混淆。同前面的說明,這裡的基本規則是:限制值優先。
- 請記住不同的搜尋引擎使用的 bot 機器人其實都有不同的名字,因此如果要針對特定的搜尋引擎,如:Google。請使用 <meta> “googlebot” 而不是 "robot",就像後面這個例子:<meta name =“googlebot” content =“nofollow”>。它限定了 Google 蜘蛛進行索引,但不允許 Googlebot 關注網頁上的連接。