關(guān)于網(wǎng)頁靜態(tài)化及SEO問題的一些補(bǔ)充
我們還是先來討論一下,什么叫做“靜態(tài)頁”。有朋友說,放在硬盤上的htm或html文件便是一種靜態(tài)頁,Web服務(wù)器不需要做額外的處理,直接讀取文件內(nèi)容并輸出就可以了,而這樣的靜態(tài)文件對于SEO是有幫助的。至于理由,是搜索引擎會對html結(jié)尾的文件給更好的權(quán)值(這好像還是結(jié)論,不是理由),而這是“常識”,“了解一點(diǎn)SEO的人都知道這個(gè)”,“人們普遍在使用的做法”,因此“它一定是正確的”。不過其實(shí)Google并不這么認(rèn)為,百度倒沒有給出專業(yè)說法。
當(dāng)然,我們已經(jīng)重復(fù)強(qiáng)調(diào),但還是需要不斷明確的一點(diǎn)是,即使搜索引擎對于“靜態(tài)頁”有更好的傾向性,那也是因?yàn)槠?ldquo;URL樣式”,而不是“在硬盤上放置了一個(gè)html文件”。請求方(也就是爬蟲)只是向服務(wù)器端發(fā)送一個(gè)URL,并獲取服務(wù)器端給出的內(nèi)容。它不會關(guān)心,也無法了解服務(wù)器端究竟是如何得到頁面內(nèi)容的,對于客戶端來說,世界上沒有“靜態(tài)”或“動態(tài)”頁面之分。有些朋友可能還是會說“不會啊,html就是靜態(tài)頁面,像aspx之類的就是動態(tài)頁面,前者不需要在Web服務(wù)器上運(yùn)算,后者需要”。
真是這樣的嗎?并非如此,因?yàn)閔tml文件也是需要Web服務(wù)器來運(yùn)算的。例如,您請求一個(gè)html文件,Web服務(wù)器至少做了幾件事情:
如果請求包含緩存信息,那么處理緩存狀態(tài)。
根據(jù)URL定位到磁盤上的文件。
進(jìn)行用戶認(rèn)證和授權(quán)(如,是否匿名?)。
判斷是否有權(quán)限讀取。
讀取文件。
根據(jù)文件類型設(shè)置MIME的值。
根據(jù)文件最后修改日期設(shè)置Last-Modified值。
根據(jù)文件內(nèi)容及其他狀態(tài)設(shè)置其E-Tag值。
如果文件內(nèi)部有include標(biāo)記,那么讀取另一個(gè)文件填充進(jìn)來。
看看,處理一個(gè)文件需要多少“動態(tài)運(yùn)算”啊,這些可都是在Web服務(wù)器(如IIS)加載一個(gè)html所做的事情。如果您想要觀察這些過程,可以閱讀一些Web服務(wù)器的源代碼,或者去觀察一下ASP.NET中System.Web.StaticFileHandler類所做的事情,它也體現(xiàn)了Web服務(wù)器處理html時(shí)的關(guān)鍵之處。事實(shí)上,如果您在IIS中將html配置給ASP.NET ISAPI的話,或者使用VS自帶的Web服務(wù)器,最后便是由StaticFileHandler來輸出硬盤上的文件的。
所以,雖然我們看起來Web服務(wù)器只是簡單地讀取了硬盤上的文件,但其實(shí)它還是不如我們想象的那么簡單。不過對于客戶端來說,這一切都是不可知的。例如Squid,Nginx這樣部署在前端的緩存或反向代理服務(wù)器,它們都不會關(guān)心后端Web服務(wù)器是Windows,Linux還是Unix,也不會關(guān)心是IIS,Apache,Lightted甚至是我們自己寫的高效或低劣的Web服務(wù)器。對于瀏覽器,爬蟲,或前端負(fù)載均衡器來說,它們只知道TCP/IP協(xié)議,它們只知道HTTP協(xié)議等東西,其他一概不知。
不過,也有朋友堅(jiān)持認(rèn)為“生成靜態(tài)頁”來“進(jìn)行頁面緩存”對SEO有幫助。理由是,“進(jìn)行頁面緩存”能夠提高網(wǎng)站性能,爬蟲更傾向于訪問速度更快的頁面。從這個(gè)角度看來,這種說法的確有一定道理。只是我還是不喜歡這樣的看法,因?yàn)檫@種說法沒有把握事物關(guān)鍵。在這里,SEO的關(guān)鍵在于優(yōu)化網(wǎng)站性能,而生成靜態(tài)頁只是一種手段之一。這并不是適用性最廣的,也并非是最容易實(shí)現(xiàn)的。如果您直接把“生成靜態(tài)頁”與“SEO”聯(lián)系起來,很有可能會對他人造成誤解。
當(dāng)然,如果您的思路沒有問題,“靜態(tài)頁”三個(gè)字的指代也足夠明確,“靜態(tài)頁有利于SEO”這個(gè)命題毫無疑問是正確的。不過我們現(xiàn)在并沒有討論一個(gè)命題的邏輯是否正確,我們也不必糾纏于一個(gè)表達(dá)形式是否嚴(yán)謹(jǐn),我們的目的是要說明道理。也正因?yàn)槿绱?,老趙才會一遍一遍地寫這么多內(nèi)容。也就是說,這幾篇文章的關(guān)鍵在于“說清道理”,我們把握它既可。
最后,老趙再談一下對SEO這個(gè)工作的看法。
seo
從老趙與各SEO人員的接觸感覺來看,他們總是有各種理由來說明“問題所在”,只是如果在改進(jìn)問題之后還是沒有效果的話,他們又可以找出各種理由來告訴你為什么沒有效果——但是要知道SEO是一個(gè)實(shí)踐性工作,它的唯一判斷依據(jù)便是“效果”,而不是“理論”。SEO的理論很容易掌握,但是如果無法真切提高一個(gè)網(wǎng)站在搜索引擎上的表現(xiàn),這一切還是白搭。老趙認(rèn)為,一個(gè)好的SEO是需要了解網(wǎng)頁制作,或者說網(wǎng)站開發(fā)的基本技術(shù)的,至少要有常識,否則基本上就是在扯蛋。老趙曾經(jīng)接觸過一個(gè)“專業(yè)”的SEO公司,那里的“SEO咨詢師”給我留下了深刻的印象——負(fù)面印象。其“非專業(yè)性”從以下幾個(gè)事件中便可見一斑:
還是“靜態(tài)頁”的問題。由于把URL變?yōu)?html結(jié)尾之后并沒有得到明顯的效果,他詢問我們的實(shí)現(xiàn)方式。在得知我們使用了URL重寫,而不是在硬盤上放置html文件時(shí)他“驚呼”這種欺騙搜索引擎的行為是會起到反效果的。他強(qiáng)烈要求我們在硬盤上放置html文件。這個(gè)要求自然遭到了我們的拒絕,原因之一是我們是非常動態(tài)的網(wǎng)站,很難實(shí)現(xiàn)這個(gè)需求,但是更重要的是,懂得一點(diǎn)技術(shù)的人就知道,Web服務(wù)器的處理方式對于搜索引擎爬蟲時(shí)完全不可見的,我們是否真正放置html文件與搜索引擎沒有任何關(guān)系。
內(nèi)容的位置問題。在SEO界有種說法是,搜索引擎會更傾向于把頁面靠前的內(nèi)容看的更重,而把頁面靠后的內(nèi)容權(quán)值放低。因此那位專業(yè)SEO咨詢師指著我們的某張頁面說,這部分內(nèi)容太靠“下方”,很容易被搜索引擎忽略。請注意,他說的是“內(nèi)容在頁面顯示的時(shí)候出現(xiàn)在下方”。您覺得這種說法有道理嗎?如今頁面布局往往使用XHTML+CSS的方式,而搜索引擎只會關(guān)注HTML的內(nèi)容,而“位置”很大程度上是由CSS,甚至是由JS來控制的。出現(xiàn)在HTML內(nèi)容前段的內(nèi)容,在頁面呈現(xiàn)時(shí)也可以出現(xiàn)在下方,這也和搜索引擎沒有任何關(guān)系。可惜這一點(diǎn)也解釋了半天。
最后一條可以說是最可笑的。因?yàn)镾EO效果不好,那位SEO咨詢師覺得只能“來真的”了,于是向我們索要網(wǎng)站的IIS日志。分析日志對于SEO有些幫助,因?yàn)榭梢钥闯雠老x的抓取順序,頻率,甚至結(jié)果等等,因此查看日志的做法本沒有問題??上栴}在于,對方從MSN上給出一個(gè)郵箱,讓我們把過去幾個(gè)星期的日志發(fā)給他。當(dāng)看到這個(gè)要求的時(shí)候,老趙幾乎要破口大罵。從這點(diǎn)可以看出,這位SEO咨詢師缺少必要的常識,他根本不知道一個(gè)中小型的網(wǎng)站,每天便要生成幾百兆到幾個(gè)G的日志。如此沒有常識,為什么會有那么多“成功案例”?