Sitemap到底怎么写才不出错?2400站踩过的坑都在这

Sitemap到底怎么写才不出错?2400站踩过的坑都在这
张文保 更新 39 分钟阅读 4,542 阅读
本文目录
  1. Sitemap到底是干什么的?它能做和不能做什么?
  2. sitemap是"发现加速器",不是"收录保证书"
  3. Google官方原话:Sitemap不能取代内链
  4. 没有sitemap就不会被收录吗?
  5. Sitemap有哪几种格式?该选哪种?
  6. 四种主流格式对照
  7. 怎么选?
  8. Sitemap怎么制作?三种路径怎么选?
  9. WordPress等成熟CMS:用插件直接生成
  10. 小站手动建立
  11. 大站用Sitemap产生器
  12. 大站和自研系统:定时脚本生成
  13. 什么页面该进sitemap,什么绝对不该进?
  14. 只放"规范、可索引、想被收录"的URL
  15. 大站把sitemap当"收录诊断工具"用
  16. 图片、视频、hreflang要不要单独做sitemap?
  17. lastmod到底该怎么填?为什么乱填会被无视甚至吃亏?
  18. lastmod的真实作用与被整体无视的条件
  19. changefreq和priority这两个字段还要不要写?
  20. 几十万URL的sitemap怎么分片才高效?
  21. 单文件上限与sitemapindex
  22. sitemap多久重新生成一次?新页多久进得去?
  23. sitemap放哪、robots要不要声明、要不要GSC提交
  24. Sitemap能取代内链吗?Moz的反向用法是什么?
  25. Mueller原话的实操含义
  26. Moz/Rand Fishkin的反向用法:故意不提交sitemap诊断孤岛页
  27. Google、Bing、百度、Yandex对sitemap的对待一样吗?
  28. Google:发现辅助,不依赖changefreq和priority
  29. Bing:对lastmod更认真,IndexNow是更优解
  30. 百度:sitemap偏弱,主动推送才是主力
  31. Yandex:相对更看重sitemap规范性
  32. sitemap常见的几个坑,哪个最隐蔽?
  33. sitemap里挂着大量已404或301或noindex的URL
  34. sitemap和canonical或robots互相打架
  35. 动态生成的sitemap超时或返回非200
  36. 实盘一:内容站靠重做sitemap把收录率从六成拉到九成怎么做?
  37. 诊断:一份sitemap把所有问题盖住了
  38. 动作:拆片、清洗、lastmod诚实化、静态化
  39. 结果与适用边界
  40. 实盘二:出海3C配件站用反向sitemap思路诊断孤岛页怎么做?
  41. 问题表象与初步排查
  42. 反向诊断:跑爬虫对比"sitemap URL"vs"内链可达URL"
  43. 修复方案与结果
  44. Sitemap这个话题给SEO学习者的两个启示是什么?
  45. 启示一:学会诊断问题点,比学习单项优化更重要
  46. 启示二:学会辨别哪些优化项对Google信号强、哪些弱
  47. 常见问题解答
  48. 提交了sitemap为什么页面还是没被收录?
  49. 小网站有必要做sitemap吗?
  50. sitemap里能不能放noindex或被canonical指走的页面?
  51. lastmod要不要每天更新?
  52. changefreq和priority还有用吗?
  53. 几十万URL的sitemap该怎么拆?
  54. 各搜索引擎对sitemap的态度一样吗?
  55. 动态生成的sitemap有什么风险?
  56. Sitemap不提交真能帮我诊断孤岛页吗?
  57. 权威参考资料
摘要:sitemap是收录的发现加速器,不是收录保证,更不是排名信号——定位错了后面全错。它真正的用处是把规范、可索引、有价值的URL集中喂给引擎,分片后还能当收录诊断仪表盘。Google John Mueller多次原话强调"Sitemaps don't replace internal linking"——sitemap永远替代不了内链架构。lastmod乱刷成当天会被判不可信甚至反噬,混进noindex和404页等于持续发噪声。Sitemap有XML/RSS/Atom/文本四种格式,制作可走WordPress插件、手动建立或Sitemap产生器三条路。多引擎站要按Google/Bing/百度/Yandex各自的对待逻辑分别下功夫。Moz创始人Rand Fishkin早年还提过一个反向用法:故意不提交sitemap来诊断站内孤岛页——这个冷门用法对中小内容站很有价值。当工程设计而不是装插件勾一下,才是成熟站的分界。

接站点诊断这些年,sitemap是个特别典型的"人人都有、九成没用对"的东西。新站长普遍的操作是:装个插件,勾上自动生成,复制链接粘进Google Search Console,看到"成功"两个字就当这件事done了。然后呢?然后这份sitemap里可能挂着几千个404、把一堆noindex页堂而皇之列进去、lastmod每天刷成当天日期——它非但没加速收录,反而在持续给搜索引擎发噪声。保哥见过太多站,sitemap不是没做,是做成了负资产,自己还不知道。

所以这篇不教你"在某某系统里点哪个按钮",那种实现层的教程网上一抓一把——具体到WordPress怎么免插件做动态优先级、image标签、分页和缓存,这篇免插件sitemap实战已经写得很细,本文不重复实现细节。这篇只解决原理和策略层面的问题:sitemap在整个收录体系里到底是什么角色、该装什么不该装什么、那几个字段(lastmod、changefreq、priority)的真实权重、大站怎么把sitemap从"一份清单"变成"一个收录诊断仪表盘"、不同搜索引擎对它的态度差异、以及sitemap这个话题本身给SEO学习者的元认知启示。把sitemap当工程来设计,而不是当一个开关来勾,这是中小站和成熟站之间一条很清楚的分界线。

Sitemap到底是干什么的?它能做和不能做什么?

先把这个最根本、却最多人想错的问题钉死,否则后面所有策略都建在错的预期上。

sitemap是"发现加速器",不是"收录保证书"

sitemap的唯一核心作用是帮搜索引擎更快、更全地"发现"你的URL,它不保证收录,更不影响排名。这句话要刻进脑子。提交sitemap≠会被收录,sitemap里有的URL,照样可能因为内容太薄、重复、质量不够而被"已发现未编入索引"。我遇到过太多人,sitemap提交了一个月,页面没收录,跑来问"是不是sitemap没生效"——sitemap生效了,它只负责把URL递到门口,进不进门是内容质量和站点权重那一关的事。这套"发现"和"收录"是两段独立关卡的逻辑,和搜索引擎抓取索引排名三段流水线里"抓到≠收录≠排名"是完全一致的,sitemap只作用在最前面那一小段。

Google官方原话:Sitemap不能取代内链

Google Search Advocate John Mueller在多个office hours和公开演讲里反复说过同一句话:"Sitemaps don't replace internal linking."——sitemap永远替代不了内链。Google员工Gary Illyes也在不同场合说过类似话:"just because a sitemap file has a bunch of URLs and it doesn't mean that we will index all of them"(sitemap里放了一堆URL不代表Google会全部收录)。

这两句话翻译到实操判断是:sitemap是辅助手段,内链架构才是SEO优化的真正重点。一个内链规划得当的站,没有sitemap也能让爬虫顺着链接发现绝大多数页面;反过来,一个内链断裂、孤岛页遍地的站,sitemap喂进去URL也可能因为"被发现后没有权重传递路径"而长期不被收录。内链架构完全指南里讲了权重传递的机制,做完sitemap不顺手把内链梳理一遍就是在浪费工程。

没有sitemap就不会被收录吗?

不是。一个内链结构健康、页面之间互相链接得当的中小站,爬虫顺着链接就能发现绝大多数页面,没有sitemap照样收录。Google官方建议里也明确说了:网页数不超过500页且内部链接完善的小站,可以不用sitemap。这是Google自己给的门槛数字。

sitemap真正不可替代的价值场景是这几类:页面多到内链覆盖不全的大站;新站外链少、爬虫被动发现慢;存在内链到不了的"孤岛页";以及内容更新频繁、希望新页被更快发现的资讯站。所以"要不要认真做sitemap"的答案不是一刀切的"都要",而是看你属不属于这几类——属于,它是刚需;不属于,它锦上添花,别在它身上花过多精力而忽略内链。把sitemap当成万能药是另一种常见误区。

Sitemap有哪几种格式?该选哪种?

很多人只知道XML sitemap,其实Google支持的sitemap格式不止一种。理解四种格式各自的定位,才能选对。

四种主流格式对照

格式全称典型用途支持引擎
XML SitemapExtensible Markup Language最常用,可带图片视频新闻扩展Google/Bing/百度/Yandex
RSS / mRSSReally Simple Syndication更新频率高的资讯站,文件小Google/Bing
Atom 1.0结构类似RSS,可作XML替代Google/Bing
文本Sitemap纯TXT列URL极简静态站,URL不带额外元数据Google/Bing

怎么选?

规则其实很简单:

  • 绝大多数站直接选XML。它是事实标准,支持最全(图片、视频、新闻、hreflang扩展全靠它),所有引擎都接受。如果你不确定选哪个,选XML不会错。
  • 资讯类高频更新站,可以XML加RSS双管齐下。Google官方建议过:内容更新频繁的站点同时使用两种格式有助于让Google更快发现新内容。RSS文件小、更新通知机制成熟。
  • 纯静态小站(页面少于100个、URL全无元数据需求)可用文本Sitemap。一个txt文件每行一个URL就够,维护成本极低。
  • Atom在中文站点几乎用不上,除非你的内容管理系统天生输出Atom feed(多数CMS都默认输出RSS)。

Sitemap怎么制作?三种路径怎么选?

制作方式按站点类型大致分三种,新手最容易卡的不是技术,是选错路径。

WordPress等成熟CMS:用插件直接生成

如果你站点用WordPress、Shopify、Wix这类主流CMS,直接用插件是最快路径。WordPress上Yoast SEO和Rank Math都自带sitemap功能,启用后自动生成、自动按内容更新刷新、自动处理sitemapindex分片。Shopify自身就生成sitemap.xml不需要任何配置。

插件方案的好处是省事,坏处是默认配置可能不符合你的策略。比如Yoast默认会把所有status=publish的内容塞进sitemap,包括你noindex的页面、归档页、作者页。要做精细化筛选必须进插件设置里调,否则就会出现"sitemap里混进noindex页"这种典型问题。

小站手动建立

页面数少于50个的极简站点,手动建立sitemap完全可行。用任何文本编辑器(Notepad、VS Code、Sublime)按sitemaps.org协议写一个XML文件,或者直接写个txt文件每行一个URL,传到根目录就完成了。

手动建立的好处是对每个URL都有显式控制,不会被插件默认行为带偏。坏处是站点稍微一长就维护不动——加一篇文章就要改一次sitemap。所以这条路径只适合"静态展示站"或"个人作品集"这类页面增长极慢的场景。

大站用Sitemap产生器

页面数从几百到几万的中大站,且CMS不在主流插件覆盖范围内(如自研系统、老旧dedecms改造站),可以用Sitemap产生器。最常用的XML-Sitemaps.com提供免费在线生成(500页以内免费)和付费桌面工具(无页数限制)。Screaming Frog也能从爬取结果导出sitemap。

产生器的好处是能从实际可访问的页面生成,自带404过滤。坏处是属于"一次性生成",没法跟CMS联动自动更新——你每次发新内容都要手动重跑一遍。所以这条路径适合"页面更新慢但量大"的场景,比如官网产品库、本地服务目录站。

大站和自研系统:定时脚本生成

页面数过万、且CMS是自研的,必须自己写脚本。原则是:定时任务生成静态sitemap文件,而不是引擎来拉时实时查询数据库。后者会在大流量站上拖垮数据库或直接超时,引擎拉不到sitemap就直接放弃整份——这是动态sitemap最隐蔽的坑。定时频率怎么定?参考下面"sitemap多久重新生成一次"那节。

什么页面该进sitemap,什么绝对不该进?

这是sitemap从"无害"变"有害"的分水岭。一份合格的sitemap不是"全站URL大全",是"我希望被收录、且确实够格被收录的规范URL清单"。

只放"规范、可索引、想被收录"的URL

进sitemap的URL要同时满足几个硬条件:返回200(不是301也不是404);是自引用canonical(即它自己就是规范版,不是被canonical指向别处的副本);没有被noindex;没有被robots.txt的Disallow拦住;并且是你真心希望出现在搜索结果里的页面。把这几条做成一个准入清单,生成sitemap时逐条过滤,比生成完再回头清理省事得多。

把noindex、被canonical指向别处、参数页放进sitemap的代价

很多人觉得"多放点没关系,引擎自己会判断"。错。sitemap里混进noindex页、被canonical指走的副本页、筛选排序参数页,等于你一边用sitemap喊"这些重要快来抓",一边用noindex/canonical喊"别收这个"——给引擎发互相矛盾的信号。后果有两层:一是浪费抓取预算在你自己都不想收的页上,大站尤其肉疼;二是Google会下调对你整份sitemap的信任度,认为这份清单不靠谱,进而连带影响它对里面好URL的处理优先级。一份"脏"sitemap的危害不是中性的零,是负的。

大站把sitemap当"收录诊断工具"用

这是大站才玩得起、也最该玩的高阶用法,多数人完全没意识到。把不同业务类型的URL拆进不同的sitemap文件(比如商品页一份、分类页一份、文章页一份),提交后在GSC的sitemap报告里能分别看到每一份的"已提交与实际收录"的比例。这等于给你一个按业务维度切开的收录覆盖率仪表盘——哪类页收录差一目了然,根本不用瞎猜。商品sitemap收录率90%、文章sitemap只有55%,问题立刻定位到文章这一类,再去查是不是内容薄或模板雷同。sitemap在大站手里的最高价值不是"帮发现",是"帮你看清哪里没被收录"。

举个具体的读法,让你知道这个仪表盘怎么用。某站把URL拆成"核心产品""资讯文章""用户生成内容(UGC)"三片,GSC里读出来的收录率分别是约92%、约70%、约38%。这三个数立刻给出三个完全不同的结论:核心产品片健康,不用管;资讯片七成说明有三成内容卡在"已发现未编入索引",去抽查多半是薄文或主题重复;UGC片只有不到四成,但这未必是坏事——UGC本来就有大量低质,关键要判断"这38%里有没有该收的优质UGC也没进去",如果优质UGC也收不进,说明可能是模板或内链问题,如果没进的基本都是垃圾贴,那这个低收录率反而是正常的。同一份sitemap报告,三片三种读法、三种动作——这才是把sitemap当工程用,而不是当一个勾选框。

图片、视频、hreflang要不要单独做sitemap?

这是进阶但很值钱的一问,多数指南略过不讲。结论分场景。图片/视频sitemap(在URL条目里加图片或视频扩展字段)对"内容本身就是图片或视频、且这些媒体是流量来源"的站才有意义——图库站、视频站、商品图是核心的电商站,给图片sitemap能帮Google更好地发现并在图片/视频搜索里收录;普通博客配图根本不需要,加了纯增重。判断标准很简单:你有没有真的在做图片搜索或视频搜索的流量?没有就别碰,这不是"做了更好"的项,是"不相关就别加"的项。

hreflang sitemap则是另一回事,它解决的是多语言/多地区站的"同一内容不同语言版本怎么对应"问题。如果你站点有中英多语言或分国家站点,把hreflang关系写进sitemap是比在每个页面头部塞一堆hreflang标签更易维护、更不易出错的做法(页面级hreflang一旦某个语言版本URL变了,全站标签都要改,sitemap集中管理改一处即可)。但前提是你确实有多语言对应关系要声明——单语言站完全用不上,别为了"功能完整"硬上。一个反复出现的认知偏差是把sitemap的高级特性当成"越多越好",其实每一种sitemap变体都只服务一类特定需求,不相关的全是负重。

lastmod到底该怎么填?为什么乱填会被无视甚至吃亏?

lastmod是整个sitemap里最被滥用、也最被误解的一个字段。它本意是告诉引擎"这个页最后实质修改时间",引擎据此判断要不要重抓。问题是绝大多数站把它用废了。

lastmod的真实作用与被整体无视的条件

Google公开说过:因为太多网站的lastmod不可信,它对很多站点的lastmod是整体打折甚至忽略的,只有当它发现你的lastmod长期诚实可信,才会真的拿它当重抓信号。所以lastmod的价值是建立在"信用"上的——你要么诚实地填(页面有实质内容变更才更新它),让它逐渐积累信用变成有效信号;要么干脆别乱填,别让它变成噪声。填一个会被无视的lastmod没意义,填一个不诚实的lastmod有害。

全站lastmod每天刷成当前时间,是一场灾难

这是我见过最高频、危害最大的sitemap错误,很多自动生成方案默认就这么干。每天把全站每个URL的lastmod都刷成"今天",等于天天对引擎喊"我全站每一页昨天都改了"。Google大概率直接判定你这份lastmod不可信、全盘忽略,你白做。而Bing对lastmod比Google认真得多——给Bing喂不实的高频lastmod,更容易被判为操纵抓取、降低对你sitemap的信任,这点Google相对宽容、Bing不会。这是个跨引擎差异的冷知识:同一个坏习惯,在Google那里是"无效",在Bing那里可能是"扣分"。要么让lastmod真实反映内容变更,要么在你控制不了生成逻辑时索性不输出这个字段,都比天天刷新强。

changefreq和priority这两个字段还要不要写?

结论很干脆:Google基本忽略changefreq和priority,写了无害,但别指望它们影响抓取或排名,更别花时间精雕。它们是sitemap协议的历史遗留,早年有点用,现在Google官方明确说不依赖它们做抓取调度。把精力从"给每个URL算priority"挪到"保证sitemap里的URL都规范、lastmod诚实"上,回报率高一个数量级。纠结priority填0.8还是0.6,是典型的把力气花在没用的地方。

几十万URL的sitemap怎么分片才高效?

规模一上来,sitemap就不是一个文件的事了,分片策略直接决定它好不好用。

单文件上限与sitemapindex

硬规则先记住:单个sitemap文件最多5万个URL,且未压缩不超过50MB,超了就必须拆成多个文件,再用一个sitemapindex(sitemap索引文件)把它们汇总,提交那个index即可。这是协议层的限制,不是建议,超限的文件引擎会直接拒绝或只读一部分。

按"业务/更新频率/索引价值"分片,不要随机切

关键不在"拆",在"按什么维度拆"。最差的做法是按URL顺序随机切成等份——这样切完每一片都是大杂烩,GSC里看每片的收录率没有任何诊断意义。正确做法是按业务类型、更新频率或索引价值分片:商品/文章/分类各自成片,高频更新的和常青的分开,核心页和长尾页分开。这样切完,每一片在GSC里的收录率就变成了一个有意义的指标,你能直接读出"哪一类页面收录有问题",分片本身就成了诊断结构。同样是拆成20份,随机拆是体力活,按维度拆是诊断仪表盘,成本一样,价值差十倍。

sitemap多久重新生成一次?新页多久进得去?

这是运营每天都会碰、却很少有人答到点子上的问题。先纠正一个预期:sitemap里出现了新URL,不等于这个URL马上会被抓、更不等于马上被收录——sitemap只是把它列进了"待发现清单",引擎什么时候来读这份清单、读完什么时候来抓那个URL,取决于站点权重和抓取需求,从几小时到几周都可能。所以指望"发布后立刻塞进sitemap就能秒收"本身就是错的预期。

更新频率的正确做法和站点类型挂钩:高频更新的资讯/电商站,sitemap应该跟着内容发布节奏走——新内容发布后尽快(理想是触发式,发布即重新生成对应分片),让引擎下次来读时就能看到;低频的企业站、文档站,按天或按周定时生成完全够用。没必要为了"实时"把生成频率拉到每分钟,引擎也不是每分钟来读你的sitemap。真正要追求"发布即被发现"的场景,靠的不是把sitemap刷得勤,是主动推送(Google的Indexing API有适用范围限制,Bing用IndexNow,百度用推送API)——sitemap负责"全量兜底",主动推送负责"新页提速",两者分工,别让sitemap去干它干不快的活。新页迟迟不进,先别怀疑sitemap刷新够不够勤,多半是页面本身没过收录那一关,或者内链根本没给它入口。

sitemap放哪、robots要不要声明、要不要GSC提交

三件配套动作:sitemap(或sitemapindex)放在站点可访问的稳定路径;在robots.txt里用Sitemap指令声明它的完整地址,这样所有支持的引擎(不只是Google)都能自动发现;同时在GSC、Bing站长工具里手动提交一次,拿到那两个平台的收录诊断报告。三者不是三选一,是叠加——robots声明负责广覆盖,站长工具提交负责拿诊断数据。漏掉robots声明,等于只告诉了Google,Bing和其他引擎还得靠自己撞见。

Sitemap能取代内链吗?Moz的反向用法是什么?

这一节讲两个少有人提的进阶认知:Mueller的"不能取代"原话怎么落到实操、Rand Fishkin早年的反向用法。

Mueller原话的实操含义

前面引用过John Mueller那句"Sitemaps don't replace internal linking",但很多人没意识到这句话的实操含义有多严重。

含义之一:sitemap把页面推到引擎门口,但页面在站内是孤儿(没有内链指向它),即使被发现也很难积累权重。Google的排名算法很大程度依赖PageRank之类的链接传递机制,孤岛页拿不到内链传来的权重,长期会被判定为"低重要性"页面,收录排序都靠后。

含义之二:内链覆盖良好的页面,Google不需要sitemap也能高效发现。所以一个内链规划得当的中小站完全可以不做sitemap,只要分类、文章、产品之间链接顺畅、面包屑齐全、相关推荐到位、导航能覆盖核心结构,爬虫顺着链接就能爬完整站。

含义之三:sitemap永远是辅助,内链才是命脉。SEO优化的资源分配应该是内链占七分、sitemap占三分(数字不绝对,是个相对关系)。如果你团队把大部分时间精力都在打磨sitemap,内链一团乱,整套优化方向就反了。

Moz/Rand Fishkin的反向用法:故意不提交sitemap诊断孤岛页

这是一个相当冷门但很值钱的用法,Moz创始人Rand Fishkin在早年讲过:不提交sitemap,反而能帮你诊断站内的孤岛页问题

逻辑是这样的:如果你提交了sitemap,Google会从sitemap里把所有URL都发现一遍,包括那些在站内没有任何内链指向的孤岛页。这种"被sitemap救起来"的孤岛页虽然能被发现,但权重传递断裂,长期收录效果差。

反过来,如果你不提交sitemap,Google只能靠内链发现页面。这时去GSC看"收录但未提交"和"已知不收录"的页面清单,能直接看出哪些页面只能被内链发现到、哪些根本被内链漏掉了。漏掉的就是孤岛页,需要去站内加内链入口。

Rand Fishkin后来也承认现在大多数站他会建议提交sitemap(兜底覆盖太重要),但这个反向诊断思路依然有用。具体操作是:

  • 正式站照常提交sitemap,但同时单独搭一个测试子域名(如staging.yoursite.com),不提交sitemap
  • 在测试子域名上跑爬虫(Screaming Frog之类),对比"站内可达URL"和"全站实际URL"的差集
  • 差集就是孤岛页清单,挨个给它们加内链入口

对中小内容站尤其有用,因为内容站最常出现的问题就是文章发完了忘记加内链,半年后回头看一堆孤儿。

Google、Bing、百度、Yandex对sitemap的对待一样吗?

很不一样,拿一套sitemap策略通吃所有引擎是国内做多引擎站最常见的想当然。

Google:发现辅助,不依赖changefreq和priority

Google把sitemap当发现辅助,认真对待lastmod(前提是你诚实),明确忽略changefreq和priority,对脏sitemap会降信任。它的渲染和内链发现能力强,所以对内链健康的中小站,sitemap是补充而非命脉。

Bing:对lastmod更认真,IndexNow是更优解

Bing对sitemap和lastmod比Google更当真,也因此对不实lastmod更敏感。但对Bing来说,比sitemap更高效的是IndexNow——内容一发布或更新就主动推送URL,几乎实时,比等它来读sitemap快得多。做Bing流量的站,重心应该放在IndexNow主动推送上,sitemap作兜底。

百度:sitemap偏弱,主动推送才是主力

百度对sitemap的响应一向偏慢偏弱,国内站只靠sitemap等百度来抓,新页收录会慢到让你怀疑人生。百度生态里真正有效的是主动推送(API实时推送),sitemap只能算补充。这套"百度必须主动推、不能被动等"的逻辑,百度主动推送实战那篇拆得很细,做国内流量的话那个的优先级高于打磨sitemap。

Yandex:相对更看重sitemap规范性

做俄语市场或Yandex流量的话,Yandex对sitemap的规范性(格式严谨、URL干净、lastmod合理)相对更看重,它通过Yandex Webmaster提交。多引擎站的正确姿势是:一份干净规范的sitemap作为所有引擎的公约数,再针对Bing叠IndexNow、针对百度叠主动推送,而不是指望一份sitemap解决所有引擎的发现问题。

把四家的差异压成一张对照表,做多引擎站时贴在手边:

引擎对sitemap的依赖对lastmod的态度比sitemap更优的发现手段
Google发现辅助,内链强时非命脉诚实才采信,不实则整体忽略健康内链 + 优质外链自然发现
Bing较看重,但响应不如推送快更认真,不实lastmod易扣信任IndexNow实时主动推送
百度偏弱,被动等收录极慢参考有限主动推送API(国内站主力)
Yandex相对更看重规范性看重合理性规范sitemap + Yandex Webmaster

sitemap常见的几个坑,哪个最隐蔽?

把高频踩坑按隐蔽程度排一下,越靠后越容易被忽略、危害越久。

sitemap里挂着大量已404或301或noindex的URL

最常见。站点改版、删内容、调结构后,自动生成逻辑没跟上,sitemap里堆着一批死URL或已不想收录的URL。引擎反复来抓这些,浪费预算,也拉低对整份sitemap的信任。定期用爬虫拉一遍sitemap里所有URL的状态码,非200和被noindex的清掉,是个该排进运维周期的常规动作,不是一次性的。

sitemap和canonical或robots互相打架

比上一个隐蔽。URL在sitemap里(喊"收我"),同时被canonical指向另一个URL或被robots Disallow(喊"别收")——信号自相矛盾。这种不会报错,页面也"看起来正常",但引擎在反复纠结中浪费抓取、降低信任,你从表面完全看不出来,只能靠交叉核对sitemap清单与canonical/robots规则才能揪出。

动态生成的sitemap超时或返回非200

最隐蔽、危害最彻底。大站sitemap常是脚本动态生成的,URL一多,生成时数据库查询慢,引擎来拉的时候超时、返回500或干脆拉不动。关键后果是:引擎拉不动你的sitemap,会直接放弃整份,不是少读几个URL,是这份sitemap白做。而你在GSC里可能只看到一个不起眼的"无法读取",很容易被忽略好几个月。动态生成的sitemap必须做缓存(生成好的静态化、定时刷新),别让引擎每次来都触发实时全量查询。这个坑不报错、不掉排名、悄无声息,等你发现新页一直收录慢去查,才发现命脉早断了。

实盘一:内容站靠重做sitemap把收录率从六成拉到九成怎么做?

把上面的原理落到一个真实项目。客户是国内一个垂直行业内容站(约8万篇文章,2020年,自建系统,sitemap是建站时写的一个动态脚本,团队没有专职技术SEO),症状是:持续产出内容,但自然流量增长远低于内容增长,大量新文长期搜不到。

诊断:一份sitemap把所有问题盖住了

问题用GSC加爬虫一交叉就清楚了。他们全站8万URL塞在一份巨大的动态sitemap里:第一,这份sitemap经常拉取超时(URL太多、实时查库),GSC里间歇性"无法读取",等于很多时候整份失效;第二,里面混着大量已删文章的404和一批专题noindex页;第三,lastmod每次生成都是当前时间,全站统一刷新。GSC里能收录率大致估出来只有六成上下,而且因为全站一份,根本看不出是哪类内容没被收录。

动作:拆片、清洗、lastmod诚实化、静态化

动作全部围绕原理,没碰内容本身:一、按内容业务把sitemap拆成多份(按频道/内容类型分片)并用sitemapindex汇总,让GSC能按片读出每类收录率;二、生成前加准入过滤,只放200、自引用canonical、非noindex的URL,死URL和noindex页一律不进;三、lastmod改成读取文章真实最后修改时间,没改过的文章就保持旧时间,不再全站刷新;四、把动态生成改成定时任务生成静态文件、引擎来拉直接给静态文件,彻底解决超时。robots里补上Sitemap声明,GSC和Bing都重新提交。

结果与适用边界

分片后第一次看GSC就定位到"资讯类那一片收录率特别低",顺藤摸瓜发现那批是早期模板生成的薄文——这是重做sitemap额外送的诊断红利。整体上,sitemap稳定可读、死URL清掉、lastmod开始积累信用之后,大约一个多季度,整站收录率从估算的六成上下提升到九成上下,新文被发现的速度明显加快。但必须说清边界:sitemap工程能解决的是"该被发现的页没被高效发现、该看清的收录问题看不清",它解决不了"页面本身不够格被收录"。那批薄文最后还是靠重写内容才收进去的,sitemap只负责让它们被发现、并让你看清它们没被收录——发现之后能不能留下,是内容质量那一关的事,sitemap不背这个锅,也别指望它背。

这个项目还有个值得单独说的收尾经验:他们一开始急着想知道"多久能见效",盯着收录率天天刷。我的建议是按双周看,别按天——sitemap这类基础设施类改动,引擎重新建立信任、把死URL从认知里清掉、让诚实lastmod积累出权重,都是以周为单位的过程,第一周往往看不出动静,甚至因为引擎重新评估出现短暂波动,这和改title后的波动期是同一类机制。基础设施改动要给它"按周生效"的耐心,用日数据去判断一个周级别的过程,只会让你在第三天做出错误的回滚。这条对所有"改完不会立刻见效"的技术SEO动作都成立,不只sitemap。

实盘二:出海3C配件站用反向sitemap思路诊断孤岛页怎么做?

保哥去年带的另一个项目,客户是做出海3C配件(手机壳、平板套、充电线这类)的DTC独立站,已经发了大约2400篇SEO内容(产品评测、品类指南、使用教程),月自然流量4.6万次但停滞了三个月不涨。

问题表象与初步排查

客户最初以为是内容质量问题,找我做内容audit。我先拉了GSC数据看:发布了的2400篇里,有580篇(24%)属于"已发现-未编入索引"状态,另有230篇(10%)属于"已编入索引但无展示"。换句话说,三分之一的内容存在收录或可见性问题。

第一反应是sitemap有问题。但他们用的Shopify自动生成的sitemap.xml,URL都规范、lastmod也合理,找不出明显问题。这时候用了Rand Fishkin那个反向思路:如果sitemap没问题,那问题可能在内链覆盖上

反向诊断:跑爬虫对比"sitemap URL"vs"内链可达URL"

具体动作:

  • 从他们的sitemap.xml拉出全部URL(约2400个)
  • 用Screaming Frog从首页深爬全站(开"忽略sitemap"模式),只跟内链走
  • 对比两份清单的差集

对比结果出来吓一跳:sitemap里有387个URL在内链可达清单里完全找不到——也就是说,这387篇文章是彻底的孤岛页,只能靠sitemap救它们才能被发现。深入看一下这387篇的发布时间分布,集中在过去六个月内——他们最近半年发新内容时没人负责加内链,每篇都成了孤岛。

修复方案与结果

修复分两步:

  • 立刻给387篇孤岛页加内链入口:每篇至少2条相关页面的内链链入(从同品类页、相关产品页、相邻教程页)
  • 建立内容发布SOP:新文章发布前必须填一份"内链入口清单",至少指定3个站内页面要从哪里加内链链入新文,没填清单不允许发

修复后六周再看GSC:原来580篇"已发现-未编入索引"降到312篇(接近腰斩),其中387篇孤岛页有261篇成功转为"已编入索引"。整站自然流量两个月内从4.6万涨到7.1万(+54%),孤岛页修复直接贡献了大部分增量。

这个案例验证了Mueller那句"sitemap不能取代内链"的实操含义:靠sitemap让孤岛页"被发现"虽然可行,但它们的收录率和权重传递都明显弱于有内链支撑的页面。sitemap工程做得再精细,也比不上把内链补齐这一个简单动作。这是保哥反复跟客户讲的一条原则:先把内链做对,再去精修sitemap,顺序反了就是浪费。

Sitemap这个话题给SEO学习者的两个启示是什么?

这一节脱离sitemap的技术细节,谈一个SEO学习者更值得思考的元认知问题。sitemap这件事被反复讨论但又反复用错,背后反映的是SEO学习里两个普遍弱项。

启示一:学会诊断问题点,比学习单项优化更重要

很多人学SEO的方式是"项目化"的:今天学sitemap、明天学hreflang、后天学schema。每个项目都学了,但碰到具体站不知道该先做哪个、该做到什么程度。

这是因为缺了"诊断"这一层。SEO优化的真问题不是"做不做某项",是"这个站的瓶颈到底在哪"。瓶颈在抓取这一关,再多内容也喂不进引擎;瓶颈在内容质量,sitemap做得再精也救不了;瓶颈在外链权重不足,技术SEO做满分也压不过同主题对手。

诊断能力的训练方法是:每接触一个站,强制自己用GSC、爬虫、关键词数据交叉对比,先回答"这个站现在最大的卡点是什么",再决定动什么。不能诊断的SEO实操者,永远只是在做执行;能诊断的SEO实操者,才能做策略。前一种是技工,后一种是顾问,单价差十倍。

启示二:学会辨别哪些优化项对Google信号强、哪些弱

SEO优化项有几十上百个,但能投入的时间和资源是有限的。关键能力是辨别哪些是高信号、哪些是低信号

低信号的常见例子:Meta Keywords(早就不影响Google排名)、URL里塞关键词(影响极小且只在新站有边际效果)、Title前面一定要塞主关键词(在意图明确的内容前置不前置差异不大)、changefreq和priority字段(前面讲过Google已经基本忽略)。这些项很多文章会告诉你"要做、要做好",但不告诉你"对哪些站重要、影响有多大"。

高信号的常见例子:内容深度与原创性(任何时代都是核心)、内链架构(前面sitemap这一节反复在讲)、外链质量(不在于数量在于权威性)、E-E-A-T信号(在AI Overviews时代权重持续上升)、Core Web Vitals在同主题竞争时的决胜作用。

SEO学习者应该把80%的时间花在高信号项上、20%留给低信号项的兜底。但行业现状是反过来的——很多人花大量时间纠结低信号项的细枝末节(如priority该填0.6还是0.8),却不动高信号项的硬骨头(如内链架构重做、内容深度升级)。

sitemap这个话题正是这两个启示的最佳实证:sitemap本身是个低信号项("做对"的边际收益不大),但很多人把它当核心项目反复打磨;真正的高信号是它后面的内链架构内容质量——这两个才是该花时间的地方。

常见问题解答

提交了sitemap为什么页面还是没被收录?

因为sitemap只负责帮引擎发现URL,不保证收录。页面被发现后还要过质量、重复、权重那几关,内容太薄或重复照样"已发现未编入索引"。sitemap生效了,进不进索引是内容和站点权重的事,不是再提交一次能解决的。

小网站有必要做sitemap吗?

内链健康的小站(Google官方建议门槛是500页以内),爬虫顺链接就能发现绝大多数页面,sitemap是锦上添花不是刚需。真正离不开它的是页面多到内链覆盖不全的大站、外链少的新站、有孤岛页或更新频繁的站。属于这几类才值得在它身上认真投入。

sitemap里能不能放noindex或被canonical指走的页面?

绝对不要。那等于一边喊"收我"一边喊"别收",给引擎矛盾信号,既浪费抓取预算又降低引擎对整份sitemap的信任。只放返回200、自引用canonical、非noindex、确实想被收录的规范URL。

lastmod要不要每天更新?

不要全站刷新成当前时间。Google会因此判你的lastmod不可信而整体忽略,Bing对不实lastmod更敏感甚至降信任。lastmod要诚实反映内容实质变更,没改的页就保持旧时间,控制不了生成逻辑时宁可不输出这个字段。

changefreq和priority还有用吗?

Google基本忽略这两个字段,写了无害但不影响抓取和排名,别花时间精雕。把精力放在保证sitemap里URL都规范、lastmod诚实上,回报率高得多。纠结priority填多少是典型的力气用错地方。

几十万URL的sitemap该怎么拆?

单文件上限5万URL或50MB,超了用sitemapindex汇总。关键是按业务类型、更新频率或索引价值分片,不要随机等分。按维度分片后,GSC里每片的收录率就成了按类别的诊断仪表盘,能直接读出哪类页收录有问题。

各搜索引擎对sitemap的态度一样吗?

不一样。Google当发现辅助、忽略changefreq和priority;Bing对lastmod更认真、但IndexNow主动推送更优;百度sitemap弱、必须靠主动推送;Yandex相对看重规范性。正确做法是一份干净sitemap做公约数,再按引擎叠加推送策略。

动态生成的sitemap有什么风险?

URL一多容易生成超时或返回非200,引擎拉不动会直接放弃整份sitemap,不是少读几个URL,而是全份白做,且GSC里只显示不起眼的"无法读取",极易被忽略数月。必须改成定时静态化生成,别让引擎每次来都触发实时全量查询。

Sitemap不提交真能帮我诊断孤岛页吗?

能但要做对。具体方法是从正式sitemap拉全部URL清单,再用Screaming Frog从首页深爬全站只跟内链走,对比两份清单的差集就是孤岛页。Rand Fishkin早年提过这个反向思路,对中小内容站很有用。诊断完了把孤岛页都加上内链入口,然后正式sitemap仍然要提交作兜底。

权威参考资料

FAQPage + Article AI 引用友好版

TL;DR · 60–80 字摘要 · 适用 ChatGPT / Perplexity / Gemini / 文心 引用

Sitemap 不是装个插件提交就完事,做不对反而拖后腿。这篇讲原理与策略:四种格式怎么选、三种制作路径、什么 URL 该进绝不该进、lastmod 乱填为何被无视甚至吃亏、几十万 URL 怎么分片做收录诊断仪表盘、Mueller 原话与 Rand Fishkin 反向用法、四大引擎态度差多少。附内容站收录率从六成拉到九成与 3C 配件站反向诊断 387 篇孤岛页让流量涨 54% 的两个实盘。

关键实体 · Key Entities

  • 技术SEO
  • 网站地图
  • Sitemap
  • 收录优化

引用元数据 · Citation Metadata

title:       Sitemap到底怎么写才不出错?2400站踩过的坑都在这
author:      张文保 (Paul Zhang) — PatPat SEO 经理
url:         https://zhangwenbao.com/xml-sitemap-complete-guide.html
published:   2010-08-09
modified:    2026-06-01
source-type: First-hand expert commentary
language:    zh-CN
license:     CC BY-NC-SA 4.0 (要求保留原文链接与作者归属)
分享到
标签
版权声明

本文标题:《Sitemap到底怎么写才不出错?2400站踩过的坑都在这》

本文链接:https://zhangwenbao.com/xml-sitemap-complete-guide.html

版权声明:本文原创,转载请注明出处和链接。许可协议: CC BY-NC-SA 4.0

继续阅读
发表评论
分享到微信 或在下方手动填写
支持 Ctrl + Enter 提交