如何设置Java程序定时自动更新长尾关键词的Sitemap.xml?
- 内容介绍
- 文章标签
- 相关推荐
本文共计901个文字,预计阅读时间需要4分钟。
直接说结论:
常见错误是把sitemap.xml当成普通文本写:没转义&、,导致浏览器解析失败;或者忽略<code>lastmod格式必须是YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS+00:00,Google会静默丢弃整条<url></url>。
- 用
XMLEventWriter写时,务必调用add()而非write(),否则close()后内容可能丢失 -
loc值必须是完整可访问URL(含https://),相对路径会被Google忽略 - 每个
<url></url>块里,loc必须存在,lastmod、changefreq、priority全可选,但别留空标签
定时任务更新Sitemap.xml:Spring @Scheduled够用吗?
够用,但要注意两点:文件写入不是原子操作,直接FileOutputStream覆盖会导致爬虫读到截断/乱码的中间态;另外@Scheduled在多实例部署时会重复生成,污染内容。
典型现象:凌晨2点跑完任务,次日发现sitemap.xml里有重复URL,或大小只有几百字节——就是写入没加锁、也没用临时文件替换。
本文共计901个文字,预计阅读时间需要4分钟。
直接说结论:
常见错误是把sitemap.xml当成普通文本写:没转义&、,导致浏览器解析失败;或者忽略<code>lastmod格式必须是YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS+00:00,Google会静默丢弃整条<url></url>。
- 用
XMLEventWriter写时,务必调用add()而非write(),否则close()后内容可能丢失 -
loc值必须是完整可访问URL(含https://),相对路径会被Google忽略 - 每个
<url></url>块里,loc必须存在,lastmod、changefreq、priority全可选,但别留空标签
定时任务更新Sitemap.xml:Spring @Scheduled够用吗?
够用,但要注意两点:文件写入不是原子操作,直接FileOutputStream覆盖会导致爬虫读到截断/乱码的中间态;另外@Scheduled在多实例部署时会重复生成,污染内容。
典型现象:凌晨2点跑完任务,次日发现sitemap.xml里有重复URL,或大小只有几百字节——就是写入没加锁、也没用临时文件替换。

