爬虫解析页面必须从开始,这是结构合法性门槛而非加分项;google移动优先索引直接跳过等标签,仅提取内首屏内容,错误使用会导致降权或空抓取。

为什么爬虫从 <main></main> 开始抓取,而不是从 DOM 顶部?
Google 移动优先索引(2023 年起 100% 启用)默认跳过 <header></header>、<nav></nav>、<footer></footer>,直接进入 <main></main> 提取首屏文本、链接和标题层级。这不是“偏好”,是硬性解析规则。
- 多个
<main></main>或嵌套在<footer></footer>里 → 触发“结构冲突”警告,整块内容降权 -
<main></main>里放客服电话、友情链接、登录弹窗 → 被判为“元信息污染”,主内容可信度下降 - SPA 页面只留
<main><div id="root"></div></main>且无服务端渲染内容 → 爬虫拿到空容器,等同于无主内容
<article></article> 和 <section></section> 混用会怎样?
二者语义不可互换:<article></article> 表示可独立分发、复用、被单独索引的内容单元(如一篇博客、一条新闻);<section></section> 只是主题相关区块,必须配 <h2></h2> 或 aria-labelledby,否则爬虫视为空白语义块。
- 用
<section></section>包商品卡片列表 → 爬虫无法识别“这是独立内容”,图搜、新闻聚合器不收录 - 用
<article></article>包单个按钮或广告位 → 内容实体失真,触发“弱相关”信号 - 纯
<section><p>...</p></section>(无标题)→ 不仅无效,还稀释页面整体结构信号
<time datetime="..."></time> 为什么比纯文本日期更利于索引?
“2024年3月15日”只是字符串,需靠周边词 + NLP 推断;而 <time datetime="2024-03-15">2024年3月15日</time> 自带机器可读的 datetime 属性,Google 在新闻/博客类页面中会赋予更高时效性权重。
- 新闻类页面漏掉
datetime→ “最新结果”排序失效,流量延迟 2–7 天 -
datetime值格式错误(如"2024/03/15")→ 属性被忽略,等同未标记 - 装饰性日期(如页脚“©2024”)无需
<time></time>,加了反而干扰主发布时间识别
最容易被忽略的点:语义标签必须包裹真实可索引内容。用 <article></article> 包 JS 渲染的空白 <div>,等于贴假标签——爬虫拿到的是空容器,结构信号彻底失效。</div>
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











