搜索引擎依赖语义化标签的硬性规则而非猜测:具唯一性与嵌套限制,标识可独立分发内容,影响链接权重,是机器识别时间的唯一可靠方式。

搜索引擎不是靠“猜”内容,而是靠标签的语义契约来定位主干、排除噪音、建立关系——用错标签,等于给爬虫递假地图。
为什么 <main></main> 比 <div class="main"> 更容易被识别为正文
<p>浏览器和爬虫对 <code><main></main> 有硬性解析规则:每个页面只允许一个,且不能嵌套在 <article></article>、<aside></aside>、<footer></footer> 等容器内。一旦你写成 <div class="main">,它就退化成普通块级元素,和旁边十几个 <code><div class="wrapper"> 完全同质,爬虫必须依赖 CSS 类名、DOM 位置甚至文本密度去推测——这个过程不可靠,尤其在动态渲染或 JS 加载延迟时容易漏抓。
<p>常见错误现象:</p>
<ul>
<li>页面中出现多个 <code><main></main>,Chrome DevTools 控制台会警告,Google Search Console 可能降权该页的正文可信度
<main></main>,导致正文权重被稀释<section></section> 替代 <main></main>,虽然结构看起来“分块了”,但爬虫无法锚定唯一核心区域
<article></article> 和 <section></section> 的边界在哪?搜索引擎怎么区分它们
<article></article> 表示可独立分发、复用的内容单元(如一篇博客、一条新闻、一个商品卡片),自带隐含的元数据上下文(比如发布时间、作者、分类);<section></section> 只是主题一致的内容区块,没有独立性要求。Google 在提取富摘要(Rich Results)时,会优先从 <article></article> 中提取 <time datetime></time>、<author></author> 或 <h1></h1>,而 <section></section> 即使包着标题,也不会触发结构化数据识别。
使用场景差异:
- 产品图册页面:每个商品用
<article></article>,整个“热销榜单”区域用<section></section> - 马里奥游戏复刻页:关卡说明、角色设定、操作指南各自是
<article></article>;而“游戏背景故事”“开发日志”这类辅助性内容适合放在<section></section> - 误用典型:把整页内容拆成 5 个
<section></section>,却不包裹任何<article></article>,导致 Google 无法判断哪部分是“可索引主体”
<nav></nav> 不只是“放链接的地方”,它是爬虫建站地图的关键入口
搜索引擎会把 <nav></nav> 内的链接视作站点核心路径,优先抓取并赋予更高 PageRank 权重。如果导航用 <div class="nav"> 实现,即使链接都存在,爬虫也可能归类为“装饰性链接”或“JS 动态生成链接”,延后甚至跳过抓取。
<p>参数与兼容性影响:</p>
<ul>
<li>多个 <code><nav></nav> 是允许的(如顶部主导航 + 页脚次级导航),但需用 aria-label 区分用途,否则爬虫可能混淆主次
<a href></a>,空链接(href="#")、JS 跳转(href="javascript:void(0)")会被忽略<details><summary></summary></details> 包裹 <nav></nav>,需确保初始 HTML 已包含完整链接,而非仅靠 JS 注入
<time datetime></time> 这个属性不是可选的,它是机器读取时间的唯一可靠方式
搜索引擎不解析中文日期文本(如“2026年9月21日”或“昨天”),只有 <time datetime="2026-09-21">今天</time> 这种格式才能被准确映射为时间戳。缺失 datetime 属性的 <time></time> 标签,在 Structured Data Testing Tool 中直接报错,也无法参与“最新内容”排序。
容易踩的坑:
- 写了
<time>发布于2026-09-21</time>,但没加datetime属性 → 爬虫当普通文本处理 - 用相对时间(如
datetime="2026-W38")→ 部分旧版爬虫不支持 ISO 周格式 - 在
<article></article>外层单独放<time></time>→ Google 可能无法关联到该文章发布时间
真正起作用的,从来不是标签名本身,而是标签+属性+嵌套关系构成的最小语义闭环。一个没 datetime 的 <time></time>,和一个没 href 的 <a></a> 一样,只是个空壳。











