一幕侠、什么是搜索引擎
搜索引擎是一個(gè)幫助用戶搜索他們需要內(nèi)容的計(jì)算機(jī)程序缤底。換一種說法潦蝇,搜索引擎把計(jì)算機(jī)中存儲(chǔ)的信息與用戶的信息需求相匹配,并把匹配的結(jié)果展示出來产阱。
舉個(gè)例子:你想買iPhone12婉称,想了解 "iPhone12"的配置或者價(jià)格等信息,就在瀏覽器搜索框里輸入了 "iPhone12"构蹬,點(diǎn)擊搜索按鈕王暗。這里關(guān)鍵詞 "iPhone12" 就是你的信息需求。瀏覽器在展示出搜索結(jié)果的那零點(diǎn)幾秒之間庄敛,它的程序在巨大的數(shù)據(jù)庫(kù)里按照關(guān)鍵字進(jìn)行了查找俗壹,終于計(jì)算出所有關(guān)于"iPhone12"的網(wǎng)頁(yè)。
二藻烤、搜索引擎工作原理
在搜索引擎網(wǎng)站的后臺(tái)會(huì)有一個(gè)非常龐大的數(shù)據(jù)庫(kù)绷雏,里面存儲(chǔ)了海量的關(guān)鍵詞常柄,而每個(gè)關(guān)鍵詞又對(duì)應(yīng)著很多網(wǎng)址忌堂,這些網(wǎng)址是被稱之為"搜索引擎蜘蛛" 或 "網(wǎng)絡(luò)爬蟲"低飒。程序從茫茫的互聯(lián)網(wǎng)上一點(diǎn)一點(diǎn)下載收集而來的咧欣。隨著各種各樣網(wǎng)站的出現(xiàn)寝并,這些勤勞的"蜘蛛"每天在互聯(lián)網(wǎng)上爬行鞭衩,從一個(gè)鏈接到另一個(gè)鏈接苛白,下載其中的內(nèi)容, 進(jìn)行分析提煉焰檩,找到其中的關(guān)鍵詞峭跳,如果"蜘蛛" 認(rèn)為關(guān)鍵詞在數(shù)據(jù)庫(kù)中沒有而對(duì)用戶是有用的便存入后臺(tái)的數(shù)據(jù)庫(kù)中膘婶。反之,如果"蜘蛛"認(rèn)為是垃圾信息或重復(fù)信息缺前,就舍棄不要,繼續(xù)爬行悬襟,尋找最新的衅码、有用的信息保存起來提供用戶搜索。當(dāng)用戶搜索時(shí)脊岳,就能檢索出與關(guān)鍵字相關(guān)的網(wǎng)址顯示給訪客逝段。
一個(gè)關(guān)鍵詞對(duì)用多個(gè)網(wǎng)址,因此就出現(xiàn)了排序的問題割捅,相應(yīng)的當(dāng)與關(guān)鍵詞最吻合的網(wǎng)址就會(huì)排在前面了奶躯。在 "蜘蛛" 抓取網(wǎng)頁(yè)內(nèi)容,提煉關(guān)鍵詞的這個(gè)過程中亿驾,就存在一個(gè)問題:"蜘蛛" 能否看懂嘹黔。如果網(wǎng)站內(nèi)容是flash和js等,那么它是看不懂的莫瞬,會(huì)犯迷糊儡蔓,即使關(guān)鍵字再貼切也沒用。相應(yīng)的疼邀,如果網(wǎng)站內(nèi)容可以被搜索引擎能識(shí)別喂江,那么搜索引擎就會(huì)提高該網(wǎng)站的權(quán)重,增加對(duì)該網(wǎng)站的友好度旁振。這樣一 一個(gè)過程我們稱之為SEO获询。
三、搜索引擎工作過程(三個(gè)階段)
搜索引擎的工作過程大體可以分成三階段拐袜。
【第一階段】爬行和抓燃:搜索引擎蜘蛛通過跟蹤鏈接訪問網(wǎng)頁(yè),獲取網(wǎng)頁(yè)HTML代碼存入數(shù)據(jù)庫(kù)蹬铺。
1瓦戚、什么是蜘蛛(spider)?
它叫做抓取網(wǎng)頁(yè)數(shù)據(jù)時(shí)的執(zhí)行者丛塌,其實(shí)它就是一個(gè)計(jì)算機(jī)程序较解,因?yàn)檫@個(gè)工作過程與現(xiàn)實(shí)中的蜘蛛很相像,業(yè)內(nèi)就稱它為搜索引擎蜘蛛赴邻!蜘蛛程序向網(wǎng)站頁(yè)面發(fā)出訪問請(qǐng)求印衔,服務(wù)器就會(huì)返回HTML代碼,蜘蛛程序把收到的代碼存入原始頁(yè)面的數(shù)據(jù)庫(kù)當(dāng)中姥敛。蜘蛛訪問任何一個(gè)網(wǎng)站時(shí)奸焙,都會(huì)最先訪問網(wǎng)站根目錄下的robots.txt文件!如果robots.txt文件禁止搜索引擎抓取某些文件或者目錄,蜘蛛將會(huì)遵守這些禁止協(xié)議与帆,不抓取那些被禁止的網(wǎng)址了赌。
2、如何跟蹤鏈接玄糟?
為了抓取網(wǎng)上盡量多的頁(yè)面勿她,搜索引擎蜘蛛會(huì)去跟蹤網(wǎng)站頁(yè)面上的鏈接,從一個(gè)頁(yè)面爬到下一個(gè)頁(yè)面阵翎,這個(gè)過程就好像蜘蛛在蜘蛛網(wǎng)上爬行一樣逢并,這也就是搜索引擎蜘蛛這個(gè)名字的由來。整個(gè)互聯(lián)網(wǎng)是由相互鏈接的網(wǎng)站頁(yè)面組合成的郭卫。從理論上說砍聊,只要給蜘蛛足夠的時(shí)間,總是能把互聯(lián)網(wǎng)上所有的頁(yè)面鏈接都爬取完贰军。但實(shí)際情況并不是這樣玻蝌,由于網(wǎng)站及鏈接結(jié)構(gòu)異常復(fù)雜,蜘蛛需要采取一定的爬行策略才能遍歷網(wǎng)上所有頁(yè)面词疼。
3灶伊、爬行策略
根據(jù)網(wǎng)站鏈接結(jié)構(gòu)的不同我們可以把蜘蛛的爬行策略分為兩種:深度爬行和廣度爬行
- 深度爬行:蜘蛛沿著發(fā)現(xiàn)的頁(yè)面鏈接一直向前爬行,直到前面再也沒有其他鏈接寒跳,然后返回到第一個(gè)頁(yè)面,沿著另為一個(gè)鏈接再一直向前爬行竹椒!
- 廣度爬行:蜘蛛在一個(gè)頁(yè)面上發(fā)現(xiàn)多個(gè)鏈接時(shí)童太,不順著一個(gè)鏈接一直往前爬行,而是把頁(yè)面上所有的第一層鏈接都爬行一遍胸完,然后再繼續(xù)沿著第二層頁(yè)面上發(fā)現(xiàn)的鏈接爬向第三層頁(yè)面书释!一直這樣進(jìn)行下去
在實(shí)際工作中,蜘蛛的帶寬資源赊窥、時(shí)間都是有限的爆惧,也不可能爬完所有頁(yè)面。深度優(yōu)先和廣度優(yōu)先通常是混合使用的锨能,這樣既可以照顧到盡量多的網(wǎng)站(廣度優(yōu)先)扯再,也能照顧到一部分網(wǎng)站的內(nèi)頁(yè)(深度優(yōu)先)
4、吸引蜘蛛
通過上面的介紹可以知道址遇,蜘蛛不可能將所有的頁(yè)面都收錄熄阻,因此 SEO 就是要通過各種手段,吸引 蜘蛛爬行收錄自己網(wǎng)站更多的頁(yè)面倔约。既然不能所有頁(yè)面都收錄秃殉,那么 蜘蛛肯定是盡量抓取重要頁(yè)面。那么蜘蛛是如何判斷哪些頁(yè)面比較重要?有幾個(gè)影響因素:
- 網(wǎng)站和頁(yè)面權(quán)重:質(zhì)量高钾军,資格老的網(wǎng)站權(quán)重高
- 頁(yè)面更新度:更新頻率高的網(wǎng)站權(quán)重高
- 導(dǎo)入的鏈接:無論是外部鏈接還是內(nèi)部鏈接鳄袍,要被蜘蛛抓取,就必須要有導(dǎo)入鏈接進(jìn)入頁(yè)面吏恭。高質(zhì)量的導(dǎo)入鏈接也經(jīng)常使頁(yè)面上的導(dǎo)出鏈接被爬行深度增加
- 與首頁(yè)的點(diǎn)擊距離:一般來說拗小,網(wǎng)站最高的權(quán)重就是首頁(yè),大部分外鏈都是指向首頁(yè)砸泛,蜘蛛訪問最頻繁的也是首頁(yè)十籍。所以離首頁(yè)越近的頁(yè)面,權(quán)重也相對(duì)更高唇礁,被蜘蛛爬行的機(jī)會(huì)也越大
5勾栗、地址庫(kù)
搜索引擎會(huì)建立一個(gè)存放頁(yè)面的地址庫(kù),目的就是為了避免搜索引擎蜘蛛重復(fù)爬行和抓取網(wǎng)址盏筐,這個(gè)地址庫(kù)里面有已經(jīng)被抓取的頁(yè)面围俘,也有被發(fā)現(xiàn)后還沒有被抓取的頁(yè)面。這個(gè)地址庫(kù)中的URL一定是蜘蛛抓取來的嗎琢融?答案是No界牡,有人工錄入的種子網(wǎng)站地址,也有站長(zhǎng)通過搜索引擎網(wǎng)頁(yè)提交網(wǎng)址(一般個(gè)人博客或網(wǎng)站都采用這種方式)漾抬,蜘蛛爬取頁(yè)面后宿亡,解析出網(wǎng)址,與地址庫(kù)對(duì)比纳令。如果不存在挽荠,則存入
6、文件存儲(chǔ)
搜索引擎蜘蛛抓取來的數(shù)據(jù)就存放在這個(gè)原始頁(yè)面數(shù)據(jù)庫(kù)中平绩,其中的頁(yè)面數(shù)據(jù)與用戶瀏覽器得到的 HTML 是完全一樣圈匆。每個(gè)URL都有一個(gè)獨(dú)特的文件編號(hào)
7、對(duì)復(fù)制內(nèi)容的檢測(cè)
蜘蛛在爬行抓取文件的時(shí)候也會(huì)對(duì)其進(jìn)行一定程度的復(fù)制內(nèi)容檢測(cè)捏雌!遇到權(quán)重低跃赚,而大量抄襲復(fù)制內(nèi)容的網(wǎng)站,蜘蛛很可能就不再繼續(xù)爬行了性湿。這也就是為什么有的站長(zhǎng)在日志文件中發(fā)現(xiàn)了蜘蛛纬傲,但頁(yè)面從來沒有被真正收錄過的原因。
【第二階段】預(yù)處理:索引程序?qū)ψト淼木W(wǎng)頁(yè)數(shù)據(jù)進(jìn)行文字提取肤频,中文分詞嘹锁,索引等處理,以備排名程序調(diào)用着裹。
由于搜索引擎數(shù)據(jù)庫(kù)中的數(shù)據(jù)實(shí)在是太多了领猾,當(dāng)用戶在搜索框中輸入關(guān)鍵詞后不可能一下就返回排名結(jié)果米同,但是往往我們感覺很快,其實(shí)起到關(guān)鍵作用的就是預(yù)處理這個(gè)過程摔竿,和爬行抓取過程一樣他也是在后臺(tái)提前完成的面粮。有些人認(rèn)為預(yù)處理就是索引,其實(shí)不是這樣的继低,索引只是預(yù)處理的一個(gè)主要步驟熬苍,那么什么是索引呢?索引是對(duì)數(shù)據(jù)庫(kù)列表中的一列或者多列的值進(jìn)行排序的一種結(jié)構(gòu)袁翁。在索引之前要做五個(gè)工作:
1柴底、提取文字
搜索引擎首先要做的就是從HTML文件中去除HTML格式標(biāo)簽,javascript程序粱胜,提取出可以用于排名處理的網(wǎng)站頁(yè)面文字內(nèi)容柄驻。搜索引擎除了提取出可見的文字外,還可以提出以下不可見的文字內(nèi)容焙压,比如:meta標(biāo)簽中的文字內(nèi)容鸿脓,圖片替代文字,F(xiàn)lash文件的替代文字涯曲,鏈接錨文字等
2野哭、中文分詞
中文句子里,字和字沒有之間沒有分隔符幻件,一個(gè)句子中的詞都是連在一起的拨黔。所以,這時(shí)候搜索引擎就必須先分辨一下哪幾個(gè)字組成一個(gè)詞绰沥,哪幾個(gè)字本身就是一個(gè)詞篱蝇。比如:"波司登羽絨服" 就將其分為 "波司登" 和 "羽絨服" 兩個(gè)詞。中文分詞一般有兩種方法:
- 詞典匹配:將待分析的一段漢字與一個(gè)事先造好的詞典中的詞條進(jìn)行匹配揪利,在待分析漢字串中掃描到詞典中己有的詞條則匹配成功,或者說切分出一個(gè)單詞狠持。
- 根據(jù)搜索統(tǒng)計(jì):基于統(tǒng)計(jì)的分詞方法指的是分析大量文字樣本疟位,計(jì)算出字與字相鄰出現(xiàn)的統(tǒng)計(jì)概率,幾個(gè)字相鄰出現(xiàn)越多喘垂,就越可能形成一個(gè)單詞甜刻。基于統(tǒng)計(jì)的方法的優(yōu)勢(shì)是對(duì)新出現(xiàn)的詞反應(yīng)更快速正勒,也有利于消除歧義得院。
基于詞典匹配和基于統(tǒng)計(jì)的分詞方法各有優(yōu)劣,實(shí)際使用中的分詞系統(tǒng)都是混合使用
兩種方法的章贞,快速高效祥绞,又能識(shí)別生詞、新詞,消除歧義蜕径。)3两踏、去停止詞
什么是停止詞?頁(yè)面內(nèi)容中一些出現(xiàn)頻率很高兜喻,卻對(duì)內(nèi)容沒有任何影響的詞梦染。比如:"的","地"朴皆,"得" 之類的助詞帕识;"啊" ,"哈"遂铡, "呀" 之類的感嘆詞肮疗;"從而", "以" 忧便,"卻"之類的介詞族吻。英文常見的停止詞,如"the"珠增、"of" 超歌。這些詞被稱為停止詞,因?yàn)樗鼈儗?duì)頁(yè)面主要意思沒什么影響蒂教。搜索引擎去停止詞主要有兩個(gè)目的:
- 一是使索引數(shù)據(jù)主題更為突出巍举,減少無謂的計(jì)算量
- 二是檢測(cè)你的內(nèi)容是否和另外數(shù)據(jù)庫(kù)中的內(nèi)容有大量的重復(fù)性
4、去除噪聲
這里的噪聲不是我們所說的噪聲凝垛,它是特指一種垃圾懊悯,即多余的字詞!這些字詞一般包含在版權(quán)聲明文字梦皮,導(dǎo)航條炭分,廣告中。搜索引擎需要識(shí)別并消除這些噪聲剑肯,排名時(shí)不使用噪聲內(nèi)容捧毛。消噪的基本方法是根據(jù)HTML標(biāo)簽對(duì)頁(yè)面分塊,區(qū)分出頁(yè)頭让网、導(dǎo)航呀忧、正文、頁(yè)腳溃睹、廣告等區(qū)域而账,在網(wǎng)站上大量重復(fù)出現(xiàn)的區(qū)塊往往屬于噪聲,對(duì)頁(yè)面主題只能起到分散作用因篇。對(duì)頁(yè)面進(jìn)行消噪后泞辐,剩下的才是頁(yè)面主體內(nèi)容笔横。
5、去重(chong)
同一篇文章經(jīng)常會(huì)重復(fù)出現(xiàn)在不同網(wǎng)站及同一個(gè)網(wǎng)站的不同網(wǎng)址上铛碑,搜索引擎并不喜歡這種重復(fù)性的內(nèi)容狠裹。用戶搜索時(shí),如果在前兩頁(yè)看到的都是來自不同網(wǎng)站的同一篇文章汽烦,用戶體驗(yàn)就太差了涛菠,雖然都是內(nèi)容相關(guān)的。搜索引擎希望只返回相同文章中的一篇撇吞, 所以在進(jìn)行索引前還需要識(shí)別和刪除重復(fù)內(nèi)容俗冻,這個(gè)過程就稱為"去重"
經(jīng)過上面的五個(gè)步驟后,搜索引擎就能得到獨(dú)特的牍颈,能反映頁(yè)面主要內(nèi)容的迄薄,以詞為單位的內(nèi)容。然后搜索引擎程序?qū)⑸线吿崛〉降年P(guān)鍵詞通過分詞程序來劃分好煮岁,把每一個(gè)網(wǎng)站頁(yè)面都轉(zhuǎn)化為一個(gè)關(guān)鍵詞組成的集合讥蔽,同時(shí)記錄下每一個(gè)關(guān)鍵詞在該頁(yè)面上出現(xiàn)的頻率、次數(shù)画机、格式(比如:標(biāo)題標(biāo)簽冶伞、黑體、H標(biāo)簽步氏、錨文本等)位置(第幾段)响禽,這些都已權(quán)重的形式記錄在下來,然后放到一個(gè)地方荚醒,這個(gè)地方就是專門放置這些組合詞的詞表結(jié)構(gòu)——索引庫(kù)芋类,也叫做 "詞表索引形式"
6、正向索引
頁(yè)面轉(zhuǎn)換為一個(gè)關(guān)鍵詞組成的集合界阁,同時(shí)記錄每一個(gè)關(guān)鍵詞在頁(yè)面.上的出現(xiàn)頻率侯繁、出
現(xiàn)次數(shù)、格式(如出現(xiàn)在標(biāo)題標(biāo)簽泡躯、黑體贮竟、H標(biāo)簽、錨文字等)精续、位置(如頁(yè)面第一段
文字等)坝锰。這樣粹懒,每一個(gè)頁(yè)面都可以記錄為一串關(guān)鍵詞集合重付,其中每個(gè)關(guān)鍵詞的詞頻
、格式凫乖、位置等權(quán)重信息也都記錄在案确垫。每一個(gè)文件夾都對(duì)應(yīng)一個(gè)ID弓颈,文件內(nèi)容被表示為一串關(guān)鍵詞的集合。在搜索引擎的索引庫(kù)中删掀,這時(shí)候關(guān)鍵詞已經(jīng)別轉(zhuǎn)化成了關(guān)鍵詞ID翔冀,這樣的數(shù)據(jù)結(jié)構(gòu)叫正向索引?
7、倒排索引因?yàn)檎蛩饕荒苤苯佑糜谂琶幔热纾河脩羲阉髂骋魂P(guān)鍵詞2纤子,如果只從在正向索引,只能找到包含該關(guān)鍵詞的文件夾款票,不能實(shí)際的返回排名控硼。這時(shí)候就會(huì)用到倒排索引了。在倒排索引中關(guān)鍵詞變成了主鍵艾少,每個(gè)關(guān)鍵詞對(duì)應(yīng)一系列文件卡乾,每一個(gè)文件都出現(xiàn)了要搜索的關(guān)鍵詞,這樣用戶在搜索某一個(gè)關(guān)鍵詞的的時(shí)候缚够,排序程序就能在倒排列表中找到這個(gè)關(guān)鍵詞對(duì)應(yīng)的文件
8幔妨、特殊文件的處理
除了HTML文件外,搜索引擎通常還能抓取和索引以文字為基礎(chǔ)的多種文件類型谍椅,如
PDF误堡、Word、 WPS毯辅、XLS埂伦、PPT、TXT文件等思恐。我們?cè)谒阉鹘Y(jié)果中也經(jīng)常會(huì)看到這些
文件類型沾谜。但目前的搜索引擎還不能處理圖片、視頻胀莹、Flash這類非文字內(nèi)容基跑,也不能
執(zhí)行腳本和程序。雖然搜索引擎在識(shí)別圖片及從Flash中提取文字內(nèi)容方面有些進(jìn)步描焰,不過距離直接靠讀取圖片媳否、視頻、Flash內(nèi) 容返回結(jié)果的目標(biāo)還很遠(yuǎn)荆秦。對(duì)圖片篱竭、視頻內(nèi)容的排名還往往是依據(jù)與之相關(guān)的文字內(nèi)容。所以在SEO的時(shí)候步绸,你網(wǎng)站上面盡量少用這些9掺逼、鏈接關(guān)系的計(jì)算
當(dāng)搜索引擎抓取了頁(yè)面后,還必須事先計(jì)算出頁(yè)面上有哪些鏈接指向哪些頁(yè)面瓤介。每個(gè)頁(yè)面又有哪些導(dǎo)入鏈接吕喘,鏈接使用的什么錨文字赘那,正是這些復(fù)雜的鏈接指向關(guān)系形式形成了網(wǎng)站和頁(yè)面的鏈接權(quán)重。
【第三階段】排名:用戶輸入關(guān)鍵詞后氯质,排名程序調(diào)用索引庫(kù)數(shù)據(jù)募舟,計(jì)算相關(guān)性,然后按一定格式生成搜索結(jié)果頁(yè)面闻察。
1拱礁、搜索詞處理
中文分詞:與頁(yè)面索引時(shí)一樣,搜索詞也必須進(jìn)行中文分詞辕漂,將查詢字符串轉(zhuǎn)換為以詞為基礎(chǔ)的關(guān)鍵詞組合觅彰。分詞原理與頁(yè)面分詞相同。
去停止詞:和索引時(shí)一樣钮热,搜索引擎也需要把搜索詞中的停止詞去掉填抬,最大限度地提高排名相關(guān)性及效率。
指令處理:如加號(hào)隧期、減號(hào)等飒责,搜索引擎都需要做出識(shí)別和相應(yīng)處理
拼寫錯(cuò)誤矯正:如果用戶輸入了明顯錯(cuò)的字或者英文單詞的時(shí)候,搜索引擎會(huì)提示用戶正確的用字或者拼法
整合搜索觸發(fā):比如搜索明星仆潮,會(huì)出現(xiàn)圖片宏蛉,視頻等內(nèi)容,適合做熱門話題
2性置、文件匹配
倒排索引快速匹配文件拾并,假設(shè)用戶搜索 "關(guān)鍵詞2關(guān)鍵詞7" ,排名程序只要在倒排索引中找到 "關(guān)鍵詞2" 和 "關(guān)鍵詞7" 這兩個(gè)詞鹏浅,就能找到分別含有這兩個(gè)詞的所有頁(yè)面嗅义。經(jīng)過簡(jiǎn)單計(jì)算就能找出既包含 "關(guān)鍵詞2",也包含 "關(guān)鍵詞7" 的所有頁(yè)面:文件1和文件6
3隐砸、初始子集選擇
互聯(lián)網(wǎng)上的頁(yè)面有成千上萬(wàn)個(gè)之碗,搜索某一關(guān)鍵詞出來的頁(yè)面也會(huì)有上千萬(wàn)個(gè),如果搜索引擎一上來就是直接計(jì)算頁(yè)面相關(guān)性的話季希,那簡(jiǎn)直就是太費(fèi)時(shí)間了褪那。實(shí)際上用戶是不需要看到這成千上萬(wàn)的頁(yè)面的,用戶只需要的是一兩個(gè)有用的頁(yè)面式塌。這時(shí)候搜索引擎就會(huì)根據(jù)用戶的搜索詞預(yù)定的選擇100個(gè)文件博敬,然后進(jìn)行返回,那么到底是選擇哪一百個(gè)呢峰尝?這就看你網(wǎng)站頁(yè)面和用戶搜索的關(guān)鍵詞的相關(guān)匹配度了偏窝。頁(yè)面權(quán)重高的就會(huì)進(jìn)入到搜索引擎的預(yù)選子集中
4、相關(guān)性計(jì)算
選出初始子集后,對(duì)子集中的頁(yè)面計(jì)算關(guān)鍵詞相關(guān)性囚枪。影響相關(guān)性的主要因素包括以下幾方面:
<u>關(guān)鍵詞常用程度</u>:越常用的詞對(duì)搜索詞的意義貢獻(xiàn)越小,越不常用的詞對(duì)意義貢獻(xiàn)越大劳淆。假設(shè)用戶輸入的搜索詞是"我們DKI"链沼。"我們" 這個(gè)詞常用程度非常高,在很多頁(yè)面上會(huì)出現(xiàn)沛鸵,它對(duì)"我們DKI"這個(gè)搜索詞的辨識(shí)程度和意義相關(guān)度貢獻(xiàn)就很小括勺。那些包含"DKI"這個(gè)詞的頁(yè)面,對(duì)"我們DKI"這個(gè)搜索詞會(huì)更為相關(guān)
<u>詞頻及密度</u>:一般認(rèn)為在沒有關(guān)鍵詞堆積的情況下曲掰,搜索詞在頁(yè)面中出現(xiàn)的次數(shù)多疾捍,密度比較高,說明頁(yè)面與搜索詞越相關(guān)
<u>關(guān)鍵詞位置及形式</u>:像在索引部分中提到的栏妖,頁(yè)面關(guān)鍵詞出現(xiàn)的格式和位置都被記錄在索引庫(kù)中乱豆。關(guān)鍵詞出現(xiàn)在比較重要位置,如標(biāo)題標(biāo)簽吊趾、黑體宛裕、H1等,說明頁(yè)面與關(guān)鍵詞越相關(guān)论泛。這一部分就是頁(yè)面SEO所要解決的
<u>關(guān)鍵詞距離</u>:切分后的關(guān)鍵詞完整匹配出現(xiàn)揩尸,說明與搜索詞最相關(guān)。比如搜索"減肥方法"時(shí)屁奏,頁(yè)面上連續(xù)完整出現(xiàn)"減肥方法"四個(gè)字是最相關(guān)的岩榆。如果"減肥"和"方法"兩個(gè)詞沒有連續(xù)匹配出現(xiàn),出現(xiàn)的距離近一些坟瓢,也被搜索引擎認(rèn)為相關(guān)性稍微大一些勇边。
<u>鏈接分析及頁(yè)面權(quán)重</u>:除了頁(yè)面本身的因素,頁(yè)面之間的鏈接和權(quán)重關(guān)系也影響關(guān)鍵詞的相關(guān)性折联,其中最重要的是錨文字粥诫。頁(yè)面有越多以搜索詞為錨文字的導(dǎo)入鏈接,說明頁(yè)面的相關(guān)性越強(qiáng)崭庸。鏈接分析還包括了鏈接源頁(yè)面本身的主題怀浆,錨文字周圍的文字等。
5怕享、排名過濾及調(diào)整
計(jì)算相關(guān)性后执赡,大體排名就已經(jīng)確定了。之后搜索引擎可能還有一些過濾算法函筋,對(duì)排名進(jìn)行輕微調(diào)整沙合,其中最主要的過濾就是施加懲罰。一些有作弊嫌疑的頁(yè)面跌帐,雖然按照正常的權(quán)重和相關(guān)性計(jì)算排到前面首懈,但搜索引擎的懲罰算法卻可能在最后一 步把這些頁(yè)面調(diào)到后面去绊率。典型的例子是百度的11位,Google的負(fù)6究履、負(fù)30滤否、 負(fù)950等算法。
6最仑、排名顯示
所有排名確定后藐俺,排名程序調(diào)用原始頁(yè)面的標(biāo)題標(biāo)簽、描述標(biāo)簽泥彤、快照日期等數(shù)據(jù)顯示在頁(yè)面上欲芹。有時(shí)搜索引擎需要?jiǎng)討B(tài)生成頁(yè)面摘要,而不是調(diào)用頁(yè)面本身的描述標(biāo)簽吟吝。
7菱父、搜索緩存
如果每次搜索都重新處理排名可以說是很大的浪費(fèi)。搜索引擎會(huì)把最常見的搜索詞存入緩存剑逃,用戶搜索時(shí)直接從緩存中調(diào)用滞伟,而不必經(jīng)過文件匹配和相關(guān)性計(jì)算,大大提高了排名效率炕贵,縮短了搜索反應(yīng)時(shí)間
8梆奈、查詢及點(diǎn)擊日志
搜索用戶的IP地址、搜索的關(guān)鍵詞称开、搜索時(shí)間亩钟,以及點(diǎn)擊了哪些結(jié)果頁(yè)面,搜索引擎都記錄形成日志鳖轰。這些日志文件中的數(shù)據(jù)對(duì)搜索引擎判斷搜索結(jié)果質(zhì)量清酥、調(diào)整搜索算法、預(yù)期搜索趨勢(shì)等都有重要意義蕴侣。
四焰轻、前端SEO規(guī)范概況
1、合理的title昆雀、description辱志、 keywords,搜索對(duì)著三項(xiàng)的權(quán)重逐個(gè)減小狞膘,title值強(qiáng)調(diào)重點(diǎn)即可揩懒。description把頁(yè)面內(nèi)容高度概括,不可過分堆砌關(guān)鍵詞挽封,keywords列舉出重要關(guān)鍵詞已球。
2、語(yǔ)義化的HTML標(biāo)簽
3、非裝飾性的圖片必須加alt
4智亮、讓重要的內(nèi)容放在HTML最前面忆某,優(yōu)先加載,搜索引擎抓取HTML順序是從上到下阔蛉,保證重要內(nèi)容一定被抓取
5弃舒、每個(gè)頁(yè)面只出現(xiàn)一個(gè)h1標(biāo)簽
6、頁(yè)面盡量不要做成flash馍忽、圖片、視頻燕差,因?yàn)樗阉饕孀ト〔坏?/p>
7遭笋、少用iframe,iframe抓取不到
8徒探、頁(yè)面盡量扁平瓦呼,層級(jí)太深也不利于抓取
9、異步加載內(nèi)容(ajax) 搜索引擎也無法抓取测暗,重要信息選擇直接輸出央串,有利于用戶體驗(yàn)和seo優(yōu)化
10、采用友情鏈接碗啄,在別人的網(wǎng)站導(dǎo)入自己網(wǎng)站的鏈接
11质和、向各大搜索引擎登陸入口提交尚未收錄站點(diǎn)
12、提高網(wǎng)站速度稚字,網(wǎng)站速度是搜索引擎排序的一個(gè)重要指標(biāo)
13饲宿、做好404頁(yè)面,不僅是為了提高蜘蛛體驗(yàn)胆描,也是為了用戶體驗(yàn)的更好
五瘫想、前端SEO規(guī)范詳細(xì)介紹
【1】網(wǎng)站結(jié)構(gòu)布局優(yōu)化
一般而言,建立的網(wǎng)站結(jié)構(gòu)層次越少昌讲,越容易被"蜘蛛"抓取国夜,也就容易被收錄。一般中小型網(wǎng)站目錄結(jié)構(gòu)超過三級(jí)短绸,"蜘蛛" 便不愿意往下爬了车吹。并且根據(jù)相關(guān)數(shù)據(jù)調(diào)查:如果訪客經(jīng)過跳轉(zhuǎn)3次還沒找到需要的信息,很可能離開醋闭。因此礼搁,三層目錄結(jié)構(gòu)也是體驗(yàn)的需要。為此我們需要做到以下幾個(gè)方面
- 控制首頁(yè)鏈接數(shù)量:網(wǎng)站首頁(yè)是權(quán)重最高的地方目尖,如果首頁(yè)鏈接太少馒吴,沒有"橋”,”蜘蛛”不能繼續(xù)往下爬到內(nèi)頁(yè),直接影響網(wǎng)站收錄數(shù)量饮戳。但是首頁(yè)鏈接也不能太多豪治,一旦太多,沒有實(shí)質(zhì)性的鏈接扯罐,很容易影響用戶體驗(yàn)负拟,也會(huì)降低網(wǎng)站首頁(yè)的權(quán)重,收錄效果也不好歹河。
- 扁平化的目錄層次:盡量讓 "蜘蛛" 只要跳轉(zhuǎn)3次掩浙,就能到達(dá)網(wǎng)站內(nèi)的任何一個(gè)內(nèi)頁(yè)。
- 導(dǎo)航優(yōu)化:導(dǎo)航應(yīng)該盡采用文字方式秸歧,也可以搭配圖片導(dǎo)航厨姚,但是圖片代碼一定要進(jìn)行優(yōu)化,<img>標(biāo)簽必須添加alt 和 title屬性键菱,告訴搜索引擎導(dǎo)航的定位谬墙,做到即使圖片未能正常顯示時(shí),用戶也能看到提示文字经备。其次拭抬,在每一個(gè)網(wǎng)頁(yè)上應(yīng)該加上面包屑導(dǎo)航,從用戶體驗(yàn)方面來說侵蒙,可以讓用戶了解當(dāng)前所處的位置以及當(dāng)前頁(yè)面在整個(gè)網(wǎng)站中的位置造虎,幫助用戶很快了解網(wǎng)站組織形式,從而形成更好的位置感纷闺,同時(shí)提供了返回各個(gè)頁(yè)面的接口,方便用戶操作累奈。對(duì)"蜘蛛”而言,能夠清楚的了解網(wǎng)站結(jié)構(gòu)急但,同時(shí)還增加了大量的內(nèi)部鏈接澎媒,方便抓取,降低跳出率波桩。
- 網(wǎng)站的結(jié)構(gòu)布局:<u>頁(yè)面頭部</u>:logo及主導(dǎo)航戒努,以及用戶的信息。<u>頁(yè)面主體</u>:左邊正文镐躲,包括面包屑導(dǎo)航及正文储玫。右邊放熱門文章及相關(guān)文章,留住訪客萤皂,讓訪客多停留撒穷。對(duì)“蜘蛛”而言,這些文章屬于相關(guān)鏈接裆熙,增強(qiáng)了頁(yè)面相關(guān)性端礼,也能增強(qiáng)頁(yè)面的權(quán)重禽笑。頁(yè)面底部版權(quán)信息和友情鏈接。
- 把重要內(nèi)容HTML代碼放在最前:搜索引擎抓取HTML內(nèi)容是從上到下蛤奥,利用這一特點(diǎn)佳镜,可以讓主要代碼優(yōu)先讀取鬼癣,廣告等不重要代碼放在下邊玉锌。例如,在左欄和右欄的代碼不變的情況下翔横,只需改一下樣式缅刽,利用float:left;和float:right;就可以隨意讓兩欄在展現(xiàn)上位置互換啊掏,這樣就可以保證重要代碼在最前,讓爬蟲最先抓取衰猛。同樣也適用于多欄的情況迟蜜。
- 控制頁(yè)面的大小,減少http請(qǐng)求,提高網(wǎng)站的加載速度:一個(gè)頁(yè)面最好不要超過100k,太大腕侄,頁(yè)面加載速度慢小泉。當(dāng)速度很慢時(shí)芦疏,用戶體驗(yàn)不好冕杠,留不住訪客,并且一旦超時(shí)酸茴,"蜘蛛” 也會(huì)離開分预。
【2】網(wǎng)頁(yè)代碼優(yōu)化
- 突出重要內(nèi)容:合理的設(shè)計(jì)title 、description 和keywords薪捍。<title>標(biāo)題只強(qiáng)調(diào)重點(diǎn)即可笼痹,盡量把重要的關(guān)鍵詞放在前面,關(guān)鍵詞不要重復(fù)出現(xiàn)酪穿,盡量做到每個(gè)頁(yè)面的<title> 標(biāo)題中不要設(shè)置相同的內(nèi)容凳干。<meta keywords>關(guān)鍵詞,列舉出幾個(gè)頁(yè)面的重要關(guān)鍵字即可被济,切記過分堆砌救赐。<meta description>網(wǎng)頁(yè)描述,需要高度概括網(wǎng)頁(yè)內(nèi)容只磷,切記不能太長(zhǎng),過分堆砌關(guān)鍵詞经磅,每個(gè)頁(yè)面也要有所不同。
- 語(yǔ)義化書寫HTML代碼:盡量讓代碼語(yǔ)義化钮追,在適當(dāng)?shù)奈恢檬褂眠m當(dāng)?shù)臉?biāo)簽预厌,用正確的標(biāo)簽做正確的事。讓閱讀源碼者和"蜘蛛”都一目了然元媚。比如: h1-h6是用于標(biāo)題類的轧叽, <nav> 標(biāo)簽是用來設(shè)置頁(yè)面主導(dǎo)航苗沧,列表形式的代碼使用ul或ol, 重要的文字使用strong等犹芹。
- <a>標(biāo)簽:頁(yè)內(nèi)鏈接崎页,要加title 屬性加以說明,讓訪客和"蜘蛛"知道腰埂。而外部鏈接飒焦,鏈接到其他網(wǎng)站的,則需要加上el="nofollow屬性,告訴"蜘蛛” 不要爬屿笼,因?yàn)橐坏敝┲搿迸懒送獠挎溄又笪筒粫?huì)再回來了。
- 正文標(biāo)題:<h1>標(biāo)簽: h1標(biāo)簽自帶權(quán)重驴一,"蜘蛛” 認(rèn)為它最重要休雌,一個(gè)頁(yè)面有且最多只能有一個(gè)H1標(biāo)簽, 放在該頁(yè)面最重要的標(biāo)題上面肝断,如首頁(yè)的logo上可以加H1標(biāo)簽杈曲。副標(biāo)題用<h2>標(biāo)簽,而其它地方不應(yīng)該隨便亂用h標(biāo)題標(biāo)簽胸懈。
- <img>應(yīng)使用"alt"屬性加以說明:當(dāng)網(wǎng)絡(luò)速度很慢担扑,或者圖片地址失效的時(shí)候,就可以體現(xiàn)出alt屬性的作用趣钱,他可以讓用戶在圖片沒有顯示的時(shí)候知道這個(gè)圖片的作用涌献。同時(shí)為圖片設(shè)置高度和寬度,可提高頁(yè)面的加載速度首有。
- 表格應(yīng)該使用<caption> 表格標(biāo)題標(biāo)簽:caption元素定義表格標(biāo)題燕垃。caption 標(biāo)簽必須緊隨table標(biāo)簽之后
- <strong> 、<em> 標(biāo)簽:<strong>標(biāo)簽在搜索引擎中能夠得到高度的重視井联,它能突出關(guān)鍵詞卜壕,表現(xiàn)重要的內(nèi)容,<em> 標(biāo)簽強(qiáng)調(diào)效果僅次于<strong> 標(biāo)簽烙常,<b>轴捎、<i> 標(biāo)簽只是用于 顯示效果時(shí)使用,在SEO中不會(huì)起任何效果军掂。
- 重要內(nèi)容不要用JS輸出:因?yàn)?蜘蛛”不會(huì)讀取JS里的內(nèi)容,所以重要內(nèi)容必須放在HTML里轮蜕。前端框架針對(duì)SEO的缺陷,可通過服務(wù)端渲染彌補(bǔ)
- 盡量少使用iframe框架:因?yàn)?蜘蛛”一般不會(huì)讀取其中的內(nèi)容蝗锥。
- 搜索引擎會(huì)過濾掉display:none其中的內(nèi)容
- 蜘蛛只能抓取a標(biāo)簽中href:<a href= "Default.aspx?id=1">測(cè)試</a> 最好后面不要帶參數(shù)跃洛,<a href= "Default.aspx" >測(cè)試</a>如果帶上參數(shù)蜘蛛不會(huì)考慮的。這樣的話终议,就需要用到URL重寫了汇竭。
- 蜘蛛不會(huì)執(zhí)行JavaScript:換句話說如果在a標(biāo)簽中使用了onclick蜘蛛是不會(huì)抓到的葱蝗。
- 蜘蛛只能抓到get請(qǐng)求的頁(yè)面,不會(huì)抓到post請(qǐng)求的頁(yè)面
- 創(chuàng)建robots文件:我們希望網(wǎng)頁(yè)的前臺(tái)頁(yè)面全部被蜘蛛抓到细燎,但是不希望后臺(tái)頁(yè)面被蜘蛛抓到两曼,蜘蛛可沒有那么智能,知道你的網(wǎng)站哪個(gè)是前臺(tái)頁(yè)面玻驻,哪個(gè)后臺(tái)頁(yè)面悼凑。這里就需要?jiǎng)?chuàng)建一個(gè)名為"robots.txt" (注意robots.txt是一個(gè)協(xié)議,不是命令璧瞬,一般最好要遵守的robots.txt是搜索引擎搜索該網(wǎng)站時(shí)的第一個(gè)文件户辫。
六、參考
- 前端面試星球
文章每周持續(xù)更新嗤锉,可以微信搜索「 前端大集錦 」第一時(shí)間閱讀渔欢,回復(fù)【視頻】【書籍】領(lǐng)取200G視頻資料和30本PDF書籍資料