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