必须唯一且包裹真实可索引内容,否则爬虫直接跳过正文或降权;为空、嵌套在、多个或含登录弹窗均触发降权;须配或aria-labelledby才参与建模;必须为iso 8601格式(如2026-06-07),错一字符即失效。

<main></main>必须唯一且包裹真实可索引内容,否则爬虫直接跳过正文或降权——这不是“建议”,是Google移动优先索引的硬性解析规则。
为什么缺失或嵌套在
爬虫不逐行扫描DOM,而是按预设路径定位:<header></header>、<nav></nav>、<footer></footer>全被跳过,只认第一个合法<main></main>。如果它为空、被JS动态插入后未渲染、或藏在<footer></footer>里,爬虫就拿不到主内容,等效于页面无正文。
- SPA项目中仅保留
<main><div id="root"></div></main>但服务端没吐出实际文本 → 爬虫拿到空容器,整页主内容权重归零 -
<main></main>里塞了登录弹窗、客服电话、友情链接 → 被判为“元信息污染”,正文可信度下降 - 路由切换后旧
<main></main>节点未销毁,DOM中存在多个<main></main>→ 触发“结构冲突”警告,该区域文本权重打折
必须配或aria-labelledby,否则等于没写
或aria-labelledby,否则等于没写
<section></section>不是视觉分块,而是爬虫建模用的独立语义单元。没有标题锚点,它就只是个空壳,不参与主题识别、不被单独索引、不进富摘要候选池。
- 新闻列表页用一个
<section></section>包全部文章 → 爬虫当“一篇长文”处理,而非10条独立报道 - 商品详情页中“用户评价”区块用了
<section></section>但没<h2></h2>→ 该区块被忽略,评价文本不计入页面主题相关性 - 连续多个无标题的
<section></section>→ 多数非标爬虫(如政务采集器、比价机器人)直接跳过整块区域
纯文本“2024年3月15日”对爬虫只是普通字符串;<time datetime="2024-03-15"></time>才是机器可读时间。datetime值格式错误(如<code>2024/03/15或2024-3-15),爬虫无法提取,新闻/博客类页面时效性排序直接掉档。
- datetime必须是ISO 8601格式:年-月-日(
YYYY-MM-DD),不可省略前导零 - 非标爬虫(如学术论文聚合器)依赖此字段验证时效性,缺失或格式错 → 整条记录被丢弃
- Google新闻搜索中,带合规
<time></time>的页面“最新结果”排序延迟减少2–7天
最容易被忽略的不是标签有没有,而是最终输出的HTML是否真实承载内容——用<main></main>包JS占位符、用<section></section>套空<div>、用<code><time></time>但datetime属性为空或乱填,等于给爬虫贴假路标。











