我們通常所說(shuō)的網(wǎng)站地圖有兩種:一種是HTML格式供網(wǎng)站訪客使用的可視化網(wǎng)站地圖,另一種是XML格式給搜索引擎抓取的sitemap.xml網(wǎng)站地圖。由于現(xiàn)在的網(wǎng)站設(shè)計(jì)越來(lái)越精良和人性化,加上站內(nèi)搜索功能的輔助,HTML格式的網(wǎng)站地圖的重要性不再突出。反觀XML格式的網(wǎng)站地圖,由于其精準(zhǔn)的匯總了網(wǎng)站所有URL,可以一次性全面的把這些URL展示給搜索引擎,可以非常高效的讓搜素引擎發(fā)現(xiàn)網(wǎng)站的全部頁(yè)面。一直以來(lái),每天利用工具去生成sitemap.xml并上傳到服務(wù)器,都是網(wǎng)站運(yùn)營(yíng)者的必要工作,雖然沒(méi)有多大的技術(shù)難度,但每天都要操作,的確會(huì)令人生厭。于是,深圳網(wǎng)絡(luò)公司創(chuàng)絡(luò)在2014年就開(kāi)始著手開(kāi)發(fā)可以每天自動(dòng)生成sitemap.xml網(wǎng)站地圖的相關(guān)功能,并于2015年開(kāi)始默認(rèn)為所有客戶(hù)的網(wǎng)站提供該功能。那么,每天自動(dòng)生成sitemap.xml網(wǎng)站地圖的實(shí)現(xiàn)原理是什么呢?和常規(guī)的第三方工具生成的sitemap.xml又有什么區(qū)別呢?
實(shí)現(xiàn)原理和邏輯非常清晰,但實(shí)現(xiàn)過(guò)程需要個(gè)性化定制代碼。簡(jiǎn)單來(lái)說(shuō),就是通過(guò)代碼,直接從數(shù)據(jù)庫(kù)中讀取記錄,直接生成。舉一個(gè)簡(jiǎn)單的例子,假設(shè)我們現(xiàn)在要為網(wǎng)站的所有新聞生成sitemap,新聞表名為news,則直接通過(guò)select語(yǔ)句查詢(xún)出news表中的所有ID,然后再通過(guò)PHP循環(huán)拼接并輸出完整的網(wǎng)址,例如:http://www.xatjqxtz.com/news_600.html,其中的600這個(gè)數(shù)字就是新聞的ID,再將這些完整的網(wǎng)址拼接以XML格式拼接為一個(gè)完整的文件并保存到根目錄。除了新聞詳情頁(yè),我們還需要考慮到列表頁(yè)的生成。例如我們和客戶(hù)約定每一頁(yè)顯示10條新聞,假設(shè)前面的select語(yǔ)句查詢(xún)出來(lái)一共有700條數(shù)據(jù),那么列表頁(yè)就會(huì)有700除以10共70頁(yè),用同樣的方法將這里的70頁(yè)當(dāng)作總數(shù),循環(huán)頁(yè)碼來(lái)生成新聞列表頁(yè)的網(wǎng)址并生成到網(wǎng)站地圖文件中,其他欄目也用同樣的方法進(jìn)行生成,直到所有的數(shù)據(jù)條目都全部生成到地圖文件中為止。
大家平常使用的第三方工具,大多都是通過(guò)模擬爬蟲(chóng)來(lái)抓取同域名下的實(shí)際鏈接,再循環(huán)保存到網(wǎng)站地圖中,和數(shù)據(jù)庫(kù)生成相比主要存在以下差異:
1、第三方工具可能會(huì)存在遺漏部分URL的可能性。
2、通過(guò)數(shù)據(jù)庫(kù)生成的方式速度更快,以1000頁(yè)的量來(lái)評(píng)估,大約5秒內(nèi)完成,而第三方工具可能需要數(shù)分鐘才能完成抓取和分析;
3、第三方生成工具需要讀取頁(yè)面內(nèi)容來(lái)分析里面的鏈接,可能會(huì)對(duì)服務(wù)器造成一定的流量壓力;
4、數(shù)據(jù)庫(kù)生成基本上沒(méi)有流量消耗或著說(shuō)流量消耗非常低,因?yàn)楦静恍枰プx去頁(yè)面的任何內(nèi)容;
5、數(shù)據(jù)庫(kù)生成免去繁瑣的人工操作,每天早上9點(diǎn)程序自動(dòng)更新生成最新的sitemap一次。
歡迎大家點(diǎn)擊創(chuàng)絡(luò)官網(wǎng)底部的網(wǎng)站地圖鏈接體驗(yàn)網(wǎng)站地圖自動(dòng)生成,或者點(diǎn)擊我們的客戶(hù)案例網(wǎng)站底部的網(wǎng)站地圖體驗(yàn),也歡迎大家繼續(xù)交流網(wǎng)站建設(shè)的前沿技術(shù)。