青島網站優化之ETag妙用(yòng)助力排名(míng)優化
sitemap是解決網站收錄至關重要的途徑之一,而通常sitemap的更新(xīn)都不是很(hěn)及時,并且體(tǐ)量都相對較大,此時也消耗了相應的網站流量及帶寬。而ETag可(kě)以用(yòng)來标示網頁(yè)是否發生了變化,如果沒有(yǒu)變化返回304狀态碼,就不用(yòng)再重新(xīn)傳輸整個網頁(yè)了。
如果各位站長(cháng)在優化網站的過程中(zhōng),對ETag多(duō)一些了解并合理(lǐ)使用(yòng),可(kě)能(néng)會得到意想不到的優化效果。
ETag全稱EntityTags,HTTP協議規格說明中(zhōng)定義“ETag”為(wèi)“被請求變量的實體(tǐ)值”。我們也可(kě)以把ETag理(lǐ)解為(wèi)是一個客戶端與服務(wù)器關聯的記号。這個記号告訴客戶端,當前網頁(yè)在上次請求之後是否有(yǒu)發生變化,當發生變化時,ETag的值重新(xīn)計算,并返回200狀态碼。如果沒有(yǒu)變化,返回304狀态碼。從而不會重新(xīn)加載整個頁(yè)面信息。
在我們的sitemap配置了ETag之後,對日志(zhì)一段時間的監測發現,其sitemap響應時間以及耗時的平均時間均大幅度下降,爬蟲訪問sitemap文(wén)件的次數有(yǒu)所增加,對于收錄而言,通過圖表也能(néng)看出相對的增長(cháng)曲線(xiàn),我們的整體(tǐ)收錄率大緻提升範圍在2%–5%左右。所以在此,強烈建議大家設置sitemap的ETag,簡簡單單的一個配置就能(néng)看到相對明顯的效果還是很(hěn)不錯的。
如下,是我司站點的sitemap文(wén)件的頭信息:
我們看到,ETag中(zhōng)包含了一連串的數據,這就是計算出來的一個值,如果它發生變化,說明其頁(yè)面内容一定發生了變化。如果頁(yè)面沒有(yǒu)發生變化時,頭信息應該如下:
需要通過此種方式進行驗證。第一次訪問200狀态碼,有(yǒu)ETag的一行文(wén)本,再次訪問該頁(yè)面時,狀态碼為(wèi)304,ETag的值不變。至此,我們就可(kě)以确定ETag配置成功。
另外,sitemap啓用(yòng)Etag後:
1、百度可(kě)以更及時地響應sitemap的更新(xīn);
2、頁(yè)面沒有(yǒu)更新(xīn)的情況下,對流量的消耗極小(xiǎo);
3、百度更加及時的抓取sitemap,便于更好的收錄;
但多(duō)數情況下,ETag會與Last-Modified一起使用(yòng),這樣可(kě)利用(yòng)客戶端(例如浏覽器)的緩存。因為(wèi)服務(wù)器首先産(chǎn)生Last-Modified/Etag标記,服務(wù)器可(kě)在稍後使用(yòng)它來判斷頁(yè)面是否已經被修改。本質(zhì)上,客戶端通過将該記号傳回服務(wù)器要求服務(wù)器驗證其(客戶端)緩存。
上面說了Etag的妙用(yòng),如果正确配置好Etag,那麽搜索引擎爬蟲在爬取網站的時候就會變得更智慧。不僅對服務(wù)器負載有(yǒu)好處,同時對網站排名(míng)也起到了積極作(zuò)用(yòng)。那麽如何正确的在服務(wù)器上配置Etag呢(ne)?下面小(xiǎo)編繼續給你介紹。
一、Apache
Apache根據配置文(wén)件中(zhōng)的配置來設置Etag值,默認的Apache的FileEtag設置為(wèi):
FileEtagINodeMtimeSize
也就是根據這三個屬性來生成Etag值,他(tā)們之間通過一些算法來實現,并輸出成hex的格式,相鄰屬性之間用(yòng)-分(fēn)隔,比如:"2e681a-6-5d044840",這裏面的三個段,分(fēn)别代表了INode,MTime,Size根據算法算出的值的Hex格式,可(kě)以改變Apache的FileEtag設置,比如設置成FileEtagSize,那麽得到的Etag可(kě)能(néng)為(wèi):"6",設置了幾個段,Etag值就有(yǒu)幾個段。
詳細配置:
步驟1
在要啓用(yòng)ETag的目錄下增加.htaccess文(wén)件并在其中(zhōng)增加一行,如圖:FileETagMTimeSize
以覆蓋默認的InnodeMTimeSize的ETag,因為(wèi)默認的ETag使用(yòng)到的Innode會導緻相同的文(wén)件在分(fēn)布式服務(wù)器上産(chǎn)生的ETag不同。
步驟2
如果.htacces文(wén)件已經存在,請确保要啓用(yòng)ETag的目錄/.htacces文(wén)件中(zhōng)沒有(yǒu)FileETagNone。如果存在FileETagNone,請删去該行。
檢查沒有(yǒu)用(yòng)mod_headers将ETag除去,即httpd.conf文(wén)件中(zhōng)沒有(yǒu)出現下面的語句,
LoadModuleheaders_module modules/mod_headers.so
Headerunset ETag
如果出現如圖情況,請删除Headerunset ETag這一行。
步驟3重新(xīn)啓動httpd,就啓用(yòng)ETag了。
二、Nginx
步驟1
确認Nginx版本,命令:Nginx安(ān)裝(zhuāng)目錄/sbin/nginx –v,
版本為(wèi)1.7.3及更高,繼續步驟2;版本為(wèi)1.7.3以下,1.3.3及以上,進行步驟3;版本為(wèi)1.3.3以下,不支持ETag,請升級您的Nginx。
步驟2
确認沒有(yǒu)關閉ETag:打開Nginx的配置文(wén)件nginx.conf(默認位置Nginx安(ān)裝(zhuāng)目錄/conf/),确保其中(zhōng)沒有(yǒu)出現etagoff;,下圖為(wèi)出現的情況,請将此行删除。
确認沒有(yǒu)使用(yòng)ngx_headers_more清除ETag頭:同樣在配置文(wén)件中(zhōng)不能(néng)出現如下語句的任意一句,如果出現請将其删除。
重新(xīn)啓動Nginx,就啓用(yòng)ETag功能(néng)了。
步驟3
查看是否開啓了gzip,且是否和etag出現沖突,出現沖突去步驟4,沒有(yǒu)去步驟2。
打開Nginx的配置文(wén)件nginx.conf(默認位置Nginx安(ān)裝(zhuāng)目錄/conf/),其中(zhōng)出現gzip on;語句證明開啓了gzip,如圖
開啓gzip時,可(kě)能(néng)與etag出現沖突,用(yòng)浏覽器多(duō)次請求此網站的靜态元素,如果隻返回200,不返回304,證明存在沖突,請去步驟4;沒有(yǒu)沖突去步驟2。
步驟4
請關閉gzip,即将上一步中(zhōng)的gzipon;改為(wèi)gzip off;然後去步驟2。
若不想關閉gzip,并要開啓ETag,同時仍要堅持使用(yòng)當前的Nginx版本,隻能(néng)修改源碼并重新(xīn)編譯。
下載此版本安(ān)裝(zhuāng)包并解壓,将其目錄下/src/http/modules/ngx_http_gzip_filter_module.c
文(wén)件中(zhōng)約309行左右的ngx_http_clear_etag(r);一行注釋掉或删掉。如下圖
如果沒有(yǒu)找到ngx_http_clear_etag(r);而是發現ngx_http_weak_etag(r);如下圖,證明此Nginx
沒有(yǒu)gzip和etag沖突的問題,不必進行任何修改。
重新(xīn)編譯源碼安(ān)裝(zhuāng)Nginx,解決這個沖突,然後去步驟2。
三、IIS
IIS7是默認開啓ETag的,如果沒有(yǒu)ETag,請按以下步驟設置。
打開Internet Information Services(IIS) Manager,如圖雙擊HTTP響應頭部(HTTPResponseHeaders),
選擇NoGrouping标簽,在空白處右鍵選擇Add。
設置Name為(wèi)ETag,Value為(wèi)雙引号
配置web.config:
自此,所有(yǒu)Etag的配置工(gōng)作(zuò)就已經完成,大家可(kě)以觀察一段時間,看看收錄是否比以前更加及時了。
迅優網絡擁有(yǒu)多(duō)年營銷型網站建設和推廣經驗,具(jù)有(yǒu)8年多(duō)的網站建設和SEO優化經驗,針對每一個不同的客戶或行業,我們提供專門的網站策劃方案,建站之前都會向客戶進行詳細的了解,針對客戶的産(chǎn)品、自身優勢等進行分(fēn)析,然後根據這些資料進行方案策劃、設計、裁切、程序、測試等程序。我們的Web工(gōng)程師、GUI設計師、UI交互設計師、産(chǎn)品經理(lǐ)等都具(jù)備豐富的建站經驗和傳統行業的互聯網平台設計經驗。我們的SEO和SEM工(gōng)程師幫助和協助了很(hěn)多(duō)客戶完成了互聯網平台的推廣,為(wèi)客戶節省了大筆(bǐ)費用(yòng),同時提升了轉化率。
相關内容推薦
最新(xīn)文(wén)章
更多(duō)>>0532-88983785 / 0532-68613670
我要優化網站