了解搜索引擎的工作原理是SEO專業(yè)人員的基礎(chǔ)。這是關(guān)于爬取、渲染、索引和排名的復(fù)習(xí)。盡管看起來很基礎(chǔ),但一些從業(yè)者混淆搜索的基本階段并將過程完全混為一談的情況并不少見。在本文中,我們將重溫搜索引擎的工作原理,并回顧該過程的每個步驟的底層邏輯。
搜索的四個階段
將網(wǎng)絡(luò)內(nèi)容納入搜索結(jié)果涉及許多不同的過程。在某些方面,說只有少數(shù)離散階段可以實(shí)現(xiàn)這一點(diǎn)可能過于簡單化了。我在這里介紹的四個階段中的每一個都有幾個可以在其中發(fā)生的子過程。除此之外,還有一些重要的流程可以與這些流程異步,例如:
·垃圾郵件監(jiān)管的類型。
·將元素合并到知識圖譜中并使用信息更新知識面板。
·圖像中光學(xué)字符識別的處理。
·音頻和視頻文件中的音頻到文本處理。
·PageSpeed數(shù)據(jù)的評估和應(yīng)用。
等等。
以下是讓網(wǎng)頁出現(xiàn)在搜索結(jié)果中所需的主要搜索階段。
1.爬取
當(dāng)搜索引擎從網(wǎng)站服務(wù)器請求網(wǎng)頁時,就會發(fā)生爬網(wǎng)。想象一下,Google和Microsoft Bing正坐在電腦前,在瀏覽器窗口中輸入或點(diǎn)擊網(wǎng)頁鏈接。因此,搜索引擎的機(jī)器訪問網(wǎng)頁的方式與您的方式類似。每次搜索引擎訪問一個網(wǎng)頁時,它都會收集該頁面的副本并記錄在該頁面上找到的所有鏈接。搜索引擎收集該網(wǎng)頁后,將訪問其尚未訪問的鏈接列表中的下一個鏈接。這被稱為“爬取”或“爬網(wǎng)”,這很恰當(dāng),因為網(wǎng)絡(luò)隱喻著一個巨大的、由相互連接的鏈接組成的虛擬網(wǎng)絡(luò)。
搜索引擎使用的數(shù)據(jù)收集程序被稱為“蜘蛛”、“機(jī)器人”或“爬蟲”。谷歌的主要爬蟲程序是“Googlebot”,而微軟必應(yīng)有“Bingbot”。每個都有其他專門的機(jī)器人來訪問廣告(即GoogleAdsBot和AdIdxBot)、移動頁面等。搜索引擎處理網(wǎng)頁的這個階段看起來很簡單,但發(fā)生的事情有很多復(fù)雜性,僅在這個階段。想想可以有多少個Web服務(wù)器系統(tǒng),運(yùn)行不同版本的不同操作系統(tǒng),以及不同的內(nèi)容管理系統(tǒng)(即WordPress、Wix、Squarespace),然后是每個網(wǎng)站的獨(dú)特定制。
很多問題可以讓搜索引擎的爬蟲無法爬取頁面,這是研究這個階段涉及的細(xì)節(jié)的一個很好的理由。首先,搜索引擎必須在某個時間點(diǎn)找到指向該頁面的鏈接,然后才能請求該頁面并訪問它。(在某些配置下,已知搜索引擎會懷疑可能存在其他未公開的鏈接,例如在子目錄級別的鏈接層次結(jié)構(gòu)中的一級或通過一些有限的網(wǎng)站內(nèi)部搜索表單。)搜索引擎可以通過以下方法發(fā)現(xiàn)網(wǎng)頁的鏈接:
·當(dāng)網(wǎng)站運(yùn)營商直接提交鏈接或向搜索引擎披露站點(diǎn)地圖時。
·當(dāng)其他網(wǎng)站鏈接到該頁面時。
·通過從其自己的網(wǎng)站內(nèi)鏈接到該頁面,假設(shè)該網(wǎng)站已經(jīng)有一些頁面被索引。
·社交媒體帖子。
·在文檔中找到的鏈接。
·在書面文本中找到且未超鏈接的URL。
·通過各種文件的元數(shù)據(jù)。
·等等。
在某些情況下,網(wǎng)站會通過位于域和Web服務(wù)器的基礎(chǔ)級別的robots.txt文件指示搜索引擎不要抓取一個或多個網(wǎng)頁。Robots.txt文件中可以包含多個指令,指示搜索引擎該網(wǎng)站不允許抓取特定頁面、子目錄或整個網(wǎng)站。指示搜索引擎不要抓取網(wǎng)站的頁面或部分并不意味著這些頁面不能出現(xiàn)在搜索結(jié)果中。阻止他們以這種方式被抓取會嚴(yán)重影響他們?yōu)槠潢P(guān)鍵字排名的能力。在其他情況下,如果網(wǎng)站自動阻止機(jī)器人,搜索引擎可能難以抓取網(wǎng)站。當(dāng)網(wǎng)站的系統(tǒng)檢測到以下情況時,可能會發(fā)生這種情況:
機(jī)器人在一段時間內(nèi)請求的頁面數(shù)量超過了人類的要求。
機(jī)器人同時請求多個頁面。
機(jī)器人的服務(wù)器IP地址位于網(wǎng)站已配置為排除的區(qū)域內(nèi)。
機(jī)器人的請求和其他用戶對頁面的請求使服務(wù)器的資源不堪重負(fù),導(dǎo)致頁面服務(wù)速度變慢或出錯。
但是,搜索引擎機(jī)器人被編程為在檢測到服務(wù)器正在努力跟上需求時自動更改請求之間的延遲率。對于較大的網(wǎng)站和頁面內(nèi)容經(jīng)常更改的網(wǎng)站,“抓取預(yù)算”可能成為搜索機(jī)器人是否會抓取所有頁面的一個因素。從本質(zhì)上講,網(wǎng)絡(luò)是具有不同更新頻率的無限網(wǎng)頁空間。搜索引擎可能無法訪問那里的每個頁面,因此他們優(yōu)先考慮要抓取的頁面。擁有大量頁面或響應(yīng)速度較慢的網(wǎng)站如果與其他網(wǎng)站相比排名權(quán)重相對較低,則可能會在所有頁面都被抓取之前用完其可用的抓取預(yù)算。值得一提的是,搜索引擎還請求構(gòu)成網(wǎng)頁的所有文件,例如圖像、CSS和JavaScript。就像網(wǎng)頁本身一樣,如果搜索引擎無法訪問有助于構(gòu)成網(wǎng)頁的其他資源,它可能會影響搜索引擎解釋網(wǎng)頁的方式。
2.渲染
當(dāng)搜索引擎抓取網(wǎng)頁時,它將“渲染”該頁面。這涉及使用HTML、JavaScript和級聯(lián)樣式表(CSS)信息來生成頁面在桌面和移動用戶面前的顯示方式。這對于搜索引擎能夠理解網(wǎng)頁內(nèi)容在上下文中的顯示方式非常重要。處理JavaScript有助于確保它們可能擁有人類用戶在訪問頁面時會看到的所有內(nèi)容。搜索引擎將呈現(xiàn)步驟分類為爬取階段中的子過程。我在這里將其列為該過程中的一個單獨(dú)步驟,因為獲取網(wǎng)頁然后解析內(nèi)容以了解它在瀏覽器中的顯示方式是兩個不同的過程。
Google使用與Google Chrome瀏覽器相同的渲染引擎,稱為“Rendertron”,它是基于開源Chromium瀏覽器系統(tǒng)構(gòu)建的。Bingbot使用Microsoft Edge作為其引擎來運(yùn)行JavaScript和呈現(xiàn)網(wǎng)頁。它現(xiàn)在也建立在基于Chromium的瀏覽器之上,因此它本質(zhì)上呈現(xiàn)網(wǎng)頁的方式與Googlebot的方式非常相似。
Google將頁面的副本以壓縮格式存儲在其存儲庫中。微軟必應(yīng)似乎也這樣做了(但我還沒有找到證實(shí)這一點(diǎn)的文檔)。一些搜索引擎可能僅根據(jù)可見文本存儲網(wǎng)頁的速記版本,去除所有格式。對于內(nèi)容的關(guān)鍵部分依賴于JavaScript/AJAX的頁面,渲染主要成為SEO中的一個問題。Google和Microsoft Bing都將執(zhí)行JavaScript以查看頁面上的所有內(nèi)容,而更復(fù)雜的JavaScript結(jié)構(gòu)可能對搜索引擎的操作具有挑戰(zhàn)性。
我曾見過由JavaScript構(gòu)建的網(wǎng)頁,這些網(wǎng)頁基本上對搜索引擎來說是不可見的,導(dǎo)致網(wǎng)頁嚴(yán)重不理想,無法對其搜索詞進(jìn)行排名。我還看到電子商務(wù)網(wǎng)站上的無限滾動類別頁面在搜索引擎上表現(xiàn)不佳的情況,因為搜索引擎無法看到盡可能多的產(chǎn)品鏈接。其他條件也會干擾渲染。例如,當(dāng)一個或多個JaveScript或CSS文件由于位于robots.txt不允許的子目錄中而無法被搜索引擎機(jī)器人訪問時,將無法完全處理該頁面。Googlebot和Bingbot基本上不會索引需要cookie的頁面。基于cookie有條件地提供某些關(guān)鍵元素的頁面也可能無法完全或正確呈現(xiàn)。
3.索引
一旦頁面被抓取并呈現(xiàn),搜索引擎會進(jìn)一步處理該頁面以確定它是否將存儲在索引中,并了解該頁面的內(nèi)容。搜索引擎索引在功能上類似于在書末找到的單詞索引。一本書的索引將列出書中找到的所有重要單詞和主題,按字母順序列出每個單詞,以及將找到單詞/主題的頁碼列表。搜索引擎索引包含許多關(guān)鍵字和關(guān)鍵字序列,與找到關(guān)鍵字的所有網(wǎng)頁的列表相關(guān)聯(lián)。該索引在概念上與數(shù)據(jù)庫查找表有一些相似之處,后者可能最初是用于搜索引擎的結(jié)構(gòu)。但是現(xiàn)在主要的搜索引擎可能會使用更復(fù)雜幾代的東西來完成查找關(guān)鍵字并返回與該詞相關(guān)的所有URL的目的。
使用功能來查找與關(guān)鍵字關(guān)聯(lián)的所有頁面是一種節(jié)省時間的架構(gòu),因為每次有人搜索關(guān)鍵字時,都需要非常不可行的時間來實(shí)時搜索所有網(wǎng)頁以查找關(guān)鍵字。由于各種原因,并非所有抓取的頁面都會保留在搜索索引中。例如,如果一個頁面包含一個帶有“noindex”指令的機(jī)器人元標(biāo)記,它會指示搜索引擎不將該頁面包含在索引中。類似地,網(wǎng)頁可能在其HTTP標(biāo)頭中包含X-Robots-Tag,指示搜索引擎不要索引該頁面。在其他情況下,網(wǎng)頁的規(guī)范標(biāo)簽可以指示搜索引擎將與當(dāng)前頁面不同的頁面視為該頁面的主要版本,從而導(dǎo)致該頁面的其他非規(guī)范版本從索引中刪除.
谷歌還表示,如果網(wǎng)頁質(zhì)量低下(重復(fù)的內(nèi)容頁面、精簡的內(nèi)容頁面以及包含全部或過多不相關(guān)內(nèi)容的頁面),則可能不會將其保留在索引中。也有很長的歷史表明,集體PageRank不足的網(wǎng)站可能不會將其所有網(wǎng)頁都編入索引——這表明外部鏈接不足的大型網(wǎng)站可能無法徹底編入索引。抓取預(yù)算不足也可能導(dǎo)致網(wǎng)站沒有將其所有頁面編入索引。搜索引擎優(yōu)化的一個主要組成部分是在頁面沒有被索引時進(jìn)行診斷和糾正。因此,徹底研究可能影響網(wǎng)頁索引的所有各種問題是一個好主意。
4.排名
網(wǎng)頁排名是搜索引擎處理中最受關(guān)注的階段。一旦搜索引擎擁有與特定關(guān)鍵字或關(guān)鍵字短語相關(guān)聯(lián)的所有網(wǎng)頁的列表,它就必須確定在對關(guān)鍵字進(jìn)行搜索時如何對這些頁面進(jìn)行排序。如果您在SEO行業(yè)工作,您可能已經(jīng)非常熟悉排名過程所涉及的一些內(nèi)容。搜索引擎的排名過程也稱為“算法”。搜索排名階段所涉及的復(fù)雜性是如此之大,以至于它本身就值得多篇文章和書籍來描述。
有很多標(biāo)準(zhǔn)可以影響網(wǎng)頁在搜索結(jié)果中的排名。谷歌表示其算法使用了200多個排名因素。在許多這些因素中,也可以有多達(dá)50個“向量”——這些因素可以影響單個排名信號對排名的影響。
PageRank是谷歌在1996年發(fā)明的最早版本的排名算法。它建立在一個概念之上,即鏈接到一個網(wǎng)頁——以及指向該網(wǎng)頁的鏈接來源的相對重要性——可以計算以確定頁面的相對排名強(qiáng)度到所有其他頁面。一個比喻是鏈接在某種程度上被視為投票,投票最多的頁面將比鏈接/投票較少的其他頁面排名更高。
快進(jìn)到2022年,許多舊的PageRank算法的DNA仍然嵌入在Google的排名算法中。該鏈接分析算法也影響了許多其他開發(fā)類似方法的搜索引擎。舊的Google算法方法必須迭代地處理網(wǎng)絡(luò)的鏈接,在排名過程完成之前在頁面之間傳遞PageRank值數(shù)十次。這種跨越數(shù)百萬頁的迭代計算序列可能需要將近一個月的時間才能完成。
如今,每天都會引入新的頁面鏈接,谷歌以一種滴水法計算排名——允許更快地考慮頁面和變化,而不需要長達(dá)一個月的鏈接計算過程。此外,鏈接以復(fù)雜的方式進(jìn)行評估——撤銷或降低付費(fèi)鏈接、交易鏈接、垃圾鏈接、非編輯認(rèn)可鏈接等的排名。鏈接之外的廣泛因素也會影響排名,包括:
·專業(yè)知識、權(quán)威性和可信賴性或簡稱E-A-T。
·質(zhì)量
·位置/距離
·個人搜索歷史。
·加密與未加密(使用安全套接字層或SSL)交付網(wǎng)頁,由“HTTPS”URL前綴表示。
·移動友好性。
·頁面速度。
·等等。
寫在最后
了解搜索的關(guān)鍵階段是成為SEO行業(yè)專業(yè)人士的關(guān)鍵項目。社交媒體中的一些人認(rèn)為,僅僅因為他們不知道抓取、渲染、索引和排名之間的區(qū)別而沒有雇用候選人是“走得太遠(yuǎn)”或“守門”。了解這些過程之間的區(qū)別是個好主意。但是,我不會認(rèn)為對這些條款有模糊的理解會破壞交易。SEO專業(yè)人員來自不同的背景和經(jīng)驗水平。重要的是他們有足夠的訓(xùn)練能力來學(xué)習(xí)并達(dá)到基本的理解水平。