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