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