文章目錄
- 編寫規范
- 小型網站站點地圖
- 小型網站規范示例
- 站點地圖說明
- 大型網站站點地圖
- 大型網站規范示例
- 以豆瓣站點地圖為例
近期文章:
- 個人建站做SEO網站外鏈這一點需要注意,做錯了可能受到Google懲罰
- 一文搞懂SEO優化之站點robots.txt
- 網頁常見水印實現方式
- Node.js中那些常用的進程通信方式
- 淺談微前端沙箱機制
- 實現篇:手把手打造一個番茄時鐘
- 實現篇:二叉樹遍歷收藏版
- 實現篇:LRU算法的幾種實現
- 從底層視角看requestAnimationFrame的性能增強
- Nginx Upstream了解一下
- 實現篇:一文搞懂Promise是如何實現的
- 一文搞懂 Markdown 文檔規則
很早以前一直覺得站點地圖可有可無,反正搜索引擎爬蟲都會自己去爬站內各種連接。但是對于一個新站或經常更新的站點來說,站點地圖很重要性,是快速告訴搜索引擎站內有哪些內容或更新了哪些內容。并且還能針對不同以頁面配置優先級等。
原文地址:建站SEO優化之站點地圖sitemap
站點地圖通常在 robots.txt
文件中聲明,具體可看之前的文章(一文搞懂SEO優化之站點robots.txt)
編寫規范
比較常見是 xml類型站點地圖,還有RSS、mRSS 、Atom 1.0(與xml類型類似)以及文本類型站點地圖。本篇主要說一說xml格式中如何實現。
因為站點地圖是描述網站中都有哪些頁面,不同體量的網站網頁數差別很多,大型網站可能上萬或幾十萬個網頁,小型網站可能就幾十個網頁。如果都放到站點地圖文件里會使文件太大讀取困難,并且搜索引擎爬蟲通常也會對站點地圖大小有要求,比如谷歌就要求站點地圖不能大于50M,且不超過5萬個站點,那其余網站怎么辦?
小型網站站點地圖
小型網站規范示例
例如:https://ai-bar.com/sitemap.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://ai-bar.cn/tools</loc></url><url><loc>https://ai-bar.cn/tools/wechat-editor</loc><lastmod>2025-06-04</lastmod><changefreq>weekly</changefreq><priority>0.8</priority></url><url><loc>https://ai-bar.cn/news</loc><lastmod>2025-06-04</lastmod></url>
</urlset>
站點地圖說明
整個站點地圖信息都是通過 urlset
標簽包裹,內部每一個網站鏈接都是通過 url
標簽定義,其中 loc
是必須要有的,lastmod
、changefreq
和 priority
為非必須的。
urlset
站點地圖外層容器標簽,照抄即可。url
定義站點鏈接信息的父標簽loc
必須有,定義具體鏈接,必須包含域名的絕對地址,如https://ai-bar.cn/tools
,不能是相對地址如/tools
lastmod
可選,最新修改時間,可是2025-06-06
,也可以是2025-06-06T18:00:12+00:00
changefreq
可選,定義頁面更新頻率,可選值有always
、hourly
、daily
、weekly
、monthly
、yearly
、never
,其中always
為每次訪問網頁都會變化,never
存檔不更新。盡管這么規定了,實際上搜索引擎爬蟲并不完全根據這里的規定來抓取。priority
可選,定義頁面優先級,從0.0
到1.0
,這個標簽的定義不會影響頁面在搜索中的排名,只會影響在本站中的重要性。
注意
這里設置的值是相對的,如果所有頁面都設置的很高,實際上搜索引擎會認為沒有重要性或重要性一樣,所以應根據實際情況定義。我自己在生成站點地圖的時候會根據網頁的目錄層級來動態生成優先級,每多一個層級就減少0.2,一般來說頁面的目錄層級不超過3層最好。
詳細規范可以看這里:https://www.sitemaps.org/protocol.html
大型網站站點地圖
前面介紹的是頁面較少的小型網站的站點地圖,對于頁面較多的大型網站有所不同。
大型網站規范示例
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://test.com/sitemap1.xml</loc><lastmod>2025-06-05</lastmod></sitemap><sitemap><loc>https://test.com/sitemap2.xml</loc></sitemap>
</sitemapindex>
這個站點地圖其實是管理子站點的索引文件,普通站點的 urlset
標簽被替換為了 sitemapindex
,url
標簽被替換為了 sitemap
,其余的沒有什么變化。不過仔細觀察可以發現,loc
中定義的不是單個網址,而是xml
的普通站點地圖。
以豆瓣站點地圖為例
站點地圖為:https://www.douban.com/sitemap_index.xml
,可以發現大約定義了 1萬 個 <sitemap>
,每一個 <sitemap>
定義了 gzip
壓縮的xml普通站點地圖。
<?xml version="1.0" encoding="utf-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><sitemap><loc>https://www.douban.com/sitemap.xml.gz</loc><lastmod>2025-05-31T20:22:12Z</lastmod></sitemap><!-- 其他... --><sitemap><loc>https://www.douban.com/sitemap9985.xml.gz</loc><lastmod>2025-05-31T20:22:12Z</lastmod></sitemap>
</sitemapindex>
隨機下載一個發現就是前面介紹的普通網站的站點地圖。
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url><loc>https://movie.douban.com/celebrity/1524905/movies</loc><priority>0.7</priority><changefreq>weekly</changefreq></url><!-- 其他行... -->
</urlset>
不看不知道,一看真是驚呆了,每一個站點地圖也包含了巨量的網頁,隨機下載了幾個測試,每個幾乎都有 7萬個 左右的鏈接定義,當然也有少一些的。這么粗算下來:1萬個站點地圖 * 7萬個鏈接
,豆瓣豈不是有7億個頁面!!
好了今天就研究這么多。由此可見,大型網站(尤其C端)并不是這么容易維護,就站點地圖的生成、不同子站或模塊如何維護更新頻率,還有更新時間等就需要統一平臺來管理。