搜索引擎靠语义标签嵌套逻辑识别主次,而非div存在与否;h1塞入footer会因语义冲突被判定为混淆主次而降权,h1须唯一且位于main或顶层section内。
搜索引擎不是靠“有没有 <div>”判断页面结构,而是靠语义标签的嵌套逻辑识别主次关系。用错标签或乱嵌套,会直接导致内容降权或不被索引。
<h1> 塞进 <footer> 会被降权Googlebot 会把 <h1> 视为页面核心主题信号,但前提是它出现在合理语义上下文中。如果 <h1> 出现在 <footer> 或 <aside> 里,爬虫会判定你在刻意堆砌关键词、混淆内容主次。
<h1> 应唯一,且必须位于 <main> 或顶层 <section> 内部(如 <main><header><h1>.../header>...)<footer> 里允许 <h2>~<h6>,仅限说明性标题(如“友情链接”“法律声明”),不能出现主标题语义<section><article><section><div><div><h2>)也会稀释标题权重,建议控制在 3 层以内<main> 和 <article> 的边界在哪<main> 是页面级主内容容器,而 <article> 是可独立分发的内容单元——两者不是父子替代关系,而是用途互补。
<main> 包裹整个主体,内部用 <article> 表达该文章本身(含 <header>、<time>、正文)<article>,所有 <article> 可放在 <main> 下,也可用 <section> 分组(如“今日热点”“深度报道”)<main> ——它们属于辅助内容,应归入 <nav>、<aside> 或 <header>
<aside> 不等于“侧边栏 CSS 样式”<aside> 的语义是“与主内容相关但可独立存在”,不是视觉位置描述。把它硬塞进右侧 float 容器,反而可能误导爬虫判断内容关联性。
立即学习“前端免费学习笔记(深入)”;
<nav>)、广告横幅(无语义关联时建议用 <div role="banner"> 或留白处理)<article> 内部(如某段代码示例旁的说明),此时它只服务该文章,不影响整页主干结构<canonical> 和 <hreflang> 配置错误会覆盖语义努力再规范的语义结构,也救不了错误的 <link rel="canonical"> 或缺失的 <link rel="hreflang">。搜索引擎会优先信任这些声明,而非 DOM 结构。
<link rel="canonical" href="https://example.com/page"> 必须指向当前页面的规范 URL,不能是 404、跳转链或带 session 参数的地址<hreflang>,且 <hreflang="x-default"> 要明确指向默认入口页Content-Type: text/plain 而非 text/html,会导致 <canonical> 等元信息被忽略——这点常被前端忽略语义化不是贴标签比赛,而是让每个元素承担它该有的结构责任。最常被忽略的是:DOM 深度、<h1> 位置、以及 <canonical> 这类元信息与 HTML 结构的一致性——三者任一出错,语义努力就归零。