1. 程式人生 > 其它 >淺談Google蜘蛛抓取的工作原理

淺談Google蜘蛛抓取的工作原理

首先,Google 蜘蛛尋找新的頁面。然後,Google 對這些頁面進行索引,以瞭解它們的內容,並根據檢索到的資料對它們進行排名。爬行和索引是兩個不同的過程,但是,它們都由爬行器執行。

什麼是爬行器?

爬行器(也稱搜尋機器人,蜘蛛)是谷歌和其他搜尋引擎用來掃描網頁的軟體。簡單地說,它"爬"網頁從一頁到另一頁,尋找谷歌還沒有在其資料庫新增或修改的內容。

任何搜尋引擎都有自己的爬行器。至於谷歌,有超過15種不同型別的爬行器,谷歌的主要爬行器被稱為Googlebot。Googlebot同時執行爬行和索引,下面我們將仔細看看它是如何工作的。

爬行器如何工作?

這裡沒有URL的中央登錄檔,每當建立新頁面時都會更新。這意味著谷歌不會自動"提醒"他們,但必須在網上找到它們。Googlebot 不斷在網際網路上徘徊,搜尋新頁面,並將它們新增到谷歌現有頁面的資料庫中。

一旦 Googlebot 發現新頁面,它將在瀏覽器中呈現(視覺化)頁面,載入所有 HTML、第三方程式碼、JavaScript 和 CSS。此資訊儲存在搜尋引擎的資料庫中,然後用於索引和對頁面進行排名。如果一個頁面已被索引,它被新增到谷歌索引—— 一個超級巨大的谷歌資料庫。

爬行器如何檢視頁面?

爬行器在最新版本的Google瀏覽器中呈現一個頁面。在完美的場景中,爬行者會以您設計和組裝頁面的方式"展示"頁面。在真實的情況下,事情可能會更加複雜。

移動和桌面渲染

Googlebot可以"看到"你的頁面與兩個子型別的爬行者:桌面Googlebot和智慧手機Googlebot。需要此部門為桌面和移動 SERP 索引頁面。

幾年前,谷歌使用桌面爬行器訪問並渲染了大部分頁面。但隨著移動第一概念的引入,情況發生了變化。谷歌認為,世界變得足夠對移動友好,並開始使用智慧手機Googlebot來抓取、索引和排名移動和桌面SERP網站的移動版本。

儘管如此,實施移動先發制人索引結果卻比預期的要困難。網際網路是巨大的,大多數網站似乎對移動裝置的優化不佳。這使得谷歌使用移動第一的概念來爬行和索引新網站和那些老網站,成為完全優化的移動。如果一個網站不方便移動,它是由桌面Googlebot第一手抓取和渲染。

即使您的網站已轉換為移動先索引,您仍將有一些頁面由 Googlebot 桌面抓取,因為 Google 希望檢查您的網站在桌面上的表現。谷歌沒有直接說,如果與手機版本有很大不同,它將為您的桌面版本提供索引。不過,假設這一點是合乎邏輯的,因為谷歌的主要目標是為使用者提供最有用的資訊。谷歌幾乎不想盲目地遵循移動第一的概念來失去這些資訊。

注意:在任何情況下,您的網站將被移動Googlebot和桌面Googlebot訪問。因此,重要的是要照顧你的網站的兩個版本,並考慮使用響應式佈局,如果你還沒有這樣做。

如何知道谷歌是否以移動第一的概念抓取和索引您的網站?您將在谷歌搜尋控制檯收到特別通知。

HTML 和 JavaScript 渲染

Googlebot 在處理和渲染笨重程式碼方面可能會遇到一些問題。如果您的頁面程式碼混亂,爬網程式可能無法正確呈現它並考慮您的頁面為空。

至於JavaScript渲染,你應該記住,JavaScript是一種快速發展的語言,Googlebot 有時可能無法支援最新的版本。確保您的JS與Googlebot 相容,否則您的頁面可能會呈現錯誤。

注意您的JS載入時間。如果指令碼載入需要超過 5 秒,Googlebot 將不會渲染和索引該指令碼生成的內容。

注意:如果你的網站充滿了大量的JS元素,並且你不能沒有它們,谷歌建議 server-side rendering(伺服器側渲染)。這將使您的網站載入速度更快,並防止 JavaScript 錯誤。

要檢視頁面上的哪些資源會導致渲染問題(並實際檢視您是否有任何問題),請登入 Google Search Console帳戶,轉到URL 檢查,輸入要檢查的 URL,單擊測試實時 URL按鈕,然後單擊"View Tested Page"。

然後轉到"More Info"部分,單擊頁面資源和JavaScript 控制檯訊息資料夾,檢視 Googlebot 未能呈現的資源列表。

現在,您可以向網站管理員顯示問題列表,並要求他們調查和修復錯誤。

什麼影響爬行者的行為?

Googlebot 的行為並不混亂——它是由複雜的演算法決定的,這些演算法可以幫助爬行者瀏覽網路並設定資訊處理規則。

然而,演算法的行為不是你什麼也做不了,希望得到最好的結果。讓我們仔細看看什麼影響爬行者的行為,以及如何優化頁面的爬行。

內部連結和反向連結

如果Google已經知道您的網站,則Googlebot會不時檢查您的主頁上是否有更新。 因此,將指向新頁面的連結放置在網站的權威頁面上至關重要。 理想情況下,在首頁上。

您可以用一個塊來豐富您的主頁,該塊將具有最新的新聞或部落格文章,即使你有單獨的新聞頁面和部落格。這將使Googlebot找到你的新頁面更快。這個建議可能看起來相當明顯,儘管如此,許多網站所有者仍然忽視它,這導致了糟糕的索引和低倉位。

在爬行方面,反向連結的工作相同。所以,如果你添加了一個新的頁面,不要忘記外部促銷。您可以嘗試客人發帖、發起廣告活動或嘗試任何其他方式,讓 Googlebot 檢視新頁面的 URL。

注意:連結應該遵循,讓Googlebot 跟隨他們。雖然谷歌最近表示,沒有跟隨連結也可以用作爬行和索引的提示,我們仍然建議使用dofollow。只是為了確保爬行者確實看到頁面。

單擊深度

單擊深度顯示頁面離主頁有多遠。理想情況下,網站的任何頁面應在 3 次點選內到達。更大的點選深度會減慢爬行速度,並且幾乎不會使使用者體驗受益。

您可以使用Web 網站稽核員檢查您的網站是否與點選深度有關。啟動該工具,然後轉到站點結構>頁面,並注意點選深度列。

如果您看到某些重要頁面離主頁太遠,請重新考慮網站結構的安排。良好的結構應該是簡單和可擴充套件的,所以你可以新增儘可能多的新頁面,你需要沒有負面影響的簡單性。

Sitemap

網站地圖是包含您希望在 Google 中的頁面完整列表的文件。您可以通過谷歌搜尋控制檯(索引>網站地圖)向 Google 提交網站地圖,以便讓 Googlebot 知道要訪問和爬行哪些頁面。網站地圖還告訴谷歌,如果有任何更新在您的網頁上。

注意:網站地圖並不能保證Googlebot在爬行您的網站時會使用它。爬行者可以忽略您的網站圖,並繼續以其決定的方式爬行網站。儘管如此,沒有人因為有網站圖而被懲罰,在大多數情況下,它被證明是有用的。一些 CMS 甚至會自動生成站點圖、更新它並將其傳送到 Google,使您的 SEO 流程更快、更輕鬆。如果您的網站是新的或大的(有超過500個網址),請考慮提交網站圖。

索引說明

在爬行和索引頁面時,Google 會遵循某些說明,例如Robots.txt、Noindex標籤、robots元標籤和X-Robots標籤。

Robots.txt 是一個根目錄檔案,限制一些頁面或內容元素從谷歌。一旦Googlebot發現你的頁面,它就會檢視Robots.txt檔案。如果發現頁面被Robots.txt限制爬行,Googlebot 將停止從該頁面中爬行和載入任何內容和指令碼。此頁面不會顯示在搜尋中。

Noindex標籤、robots元標籤和X-Robots標籤是用於限制爬行者爬行和索引頁面的標籤。Noindex標籤限制所有型別的爬行器對頁面進行索引。使用robots元標籤來指定如何爬行和索引特定頁面。這意味著您可以阻止某些型別的爬行者訪問頁面,並保持頁面對其他頁面的開放。X-Robots標籤可用作HTTP 標頭響應的元素,該響應可能會限制頁面索引或瀏覽頁面上的爬行者行為。此標籤允許您針對單獨型別的爬行機器人(如果指定)。如果沒有指定機器人型別,說明將適用於所有型別的爬行者。

注意:Robots.txt檔案並不能保證頁面被排除在索引之外。Googlebot將此文件視為建議而不是訂單。這意味著谷歌可以忽略Robots.txt並索引一個頁面進行搜尋。如果您想確保頁面不會被索引,請使用Noindex標籤。

所有頁面都可用於爬行嗎?

不。某些頁面可能無法用於爬行和索引。讓我們仔細看看這些型別的頁面:

  • 受密碼保護的頁面。Googlebot 模擬了匿名使用者的行為,該使用者沒有任何憑據訪問受保護的頁面。因此,如果頁面受到密碼保護,它不會被爬行,因為 Googlebot 將無法訪問它。
  • 索引說明排除的頁面。這些頁面來自Robots.txt,帶有Noindex標籤、robots元標籤和X-Robots標籤。
  • 孤兒頁面。孤兒頁面是網站中任何其他頁面中未連結的頁面。Googlebot是一個蜘蛛機器人,這意味著它通過跟蹤它找到的所有連結來發現新的頁面。如果沒有指向頁面的連結,則頁面將不會被爬行,也不會在搜尋中出現。

有些頁面被限制故意爬行和索引。這些通常是不打算在搜尋中顯示的頁面:具有個人資料、策略、使用條款、頁面測試版本、存檔頁面、內部搜尋結果頁面等的頁面。

但是,如果您想讓您的頁面可供爬行並帶來流量,請確保您不會保護帶有密碼、思維連結(內部和外部)的公共頁面,並仔細檢查索引說明。

要檢查 Google 搜尋控制檯中網站頁面的可爬行性,請轉到Index >Coverage 報告。注意標記 Error(未索引)和 Valid with warning(索引,但有問題)。

注意:如果您不希望 Googlebot 查詢或更新任何頁面(一些舊頁面,您不再需要的頁面),請將其從站點地圖中刪除,如果您有頁面,請設定404 Not Found 狀態,或用Noindex標籤標記它們。

我的網站何時會出現在搜尋中?

很明顯,在您建成網站後,您的網頁不會立即出現在搜尋中。如果你的網站是絕對新的,Googlebot將需要一些時間來找到它在網路上。請記住,在某些情況下,這種"某些"可能需要長達 6 個月的時間。

如果 Google 已經瞭解了您的網站,並且您進行了一些更新或添加了新頁面,那麼網站在 Web 上的外觀變化速度取決於抓取預算。

抓取預算是Google 在爬行您的網站上花費的資源量。Googlebot 需要的資源越多,搜尋速度就越慢。

抓取預算分配取決於以下因素:

  • 網站人氣。網站越受歡迎,谷歌在爬行上願意花費的爬行點就越多。
  • 更新速率。更新頁面的頻率越高,您的網站獲得的爬行資源就越多。
  • 頁數。頁面越多,爬行預算就越大。
  • 處理爬行的伺服器容量。託管伺服器必須能夠按時響應爬行器的請求。

請注意,爬行預算並非均等地用於每個頁面,因為某些頁面會消耗更多資源(因為 JavaScript 和 CSS 過重,或者因為 HTML 雜亂無章)。因此,分配的爬行預算可能不足以像您預期的那樣快速爬行所有頁面。

除了嚴重的程式碼問題外,爬行不良和非理性爬行預算支出的一些最常見的原因是重複內容問題和結構不良的 URL。

重複內容問題

重複內容有好幾頁內容大多相似。這可能發生的原因有很多,例如:

  • 以不同的方式到達頁面:有或沒有www,通過http或https;
  • 動態網址-當許多不同的URL導致相同的頁面:
  • 頁面版本的 A/B 測試。

如果不修復,重複的內容問題會導致 Googlebot 多次爬行同一頁面,因為它會認為這些都是不同的頁面。因此,爬行資源被浪費在徒勞的,Googlebot 可能無法找到其他有意義的網頁,您的網站。此外,重複內容會降低頁面在搜尋中的位置,因為 Google 可能會認為您的網站的整體質量較低。

事實是,在大多數情況下,你不能擺脫大多數的東西,可能會導致重複的內容。但是,您可以通過設定規範的URL來防止任何重複的內容問題。規範標籤表示哪個頁面應被視為"主",因此指向同一頁面的 URL 的其餘部分將不會索引,您的內容也不會重複。您還可以在機器人的幫助下限制機器人訪問動態網址.txt檔案。

網址結構問題

人機演算法都對使用者友好型 URL表示讚賞。Googlebot也不例外。Googlebot可能會感到困惑,當試圖瞭解長和引數豐富的網址。因此,更多的爬行資源被花費。為了防止這種情況,使您的網址使用者友好。

確保您的 URL 清晰,遵循邏輯結構,具有適當的標點符號,並且不包括複雜的引數。換句話說,您的網址應該看起來像這樣:

http://example.com/vegetables/cucumbers/pickles

但事實是,如果您是大型(100萬以上網頁)或中型(10,000以上網頁)網站的所有者,且其內容(每天或每週)頻繁更改,才需擔心這一點。在其餘情況下,您只需要正確優化您的網站進行搜尋,並按時修復索引問題。

總結

Google的主要爬行者,Googlebot,在複雜的演算法下運作,但你仍然可以"導航"它的行為,使其有利於您的網站。此外,大多數爬行過程優化步驟重複了我們都熟悉的標準 SEO 步驟。