SEO 百科

导航

本页目录

导航

导航是站点里指向栏目页、上级页、下级页和主要板块的那一组链接,主导航通常固定在每页顶部,站内导航还包括栏目内的层级链接和页内目录[3]。抓取工具按链接决定下一个请求发向哪里,导航就是它取得页面的主要路径;页面在站点里的位置,主要由这组链接的指向关系推出来。做 SEO 的人要管导航,因为导航链接一旦只在脚本运行后才出现,后面的页面既没有抓取路径,也没有位置信号[4]。

导航的两层构成

导航分两层,作用不同。

  • 全局导航:每个页面都出现的同一组链接,指向首页、主要栏目、搜索、登录这类全站级页面,通常落在页头与页脚。
  • 局部导航:只在这一类页面出现的链接,例如栏目页里的子分类列表、商品页里的同类推荐、文章页里的上一篇与下一篇。

面包屑属于局部导航的一种,它用一串链接显示当前页在层级里的位置,形如 首页 > 数码 > 手机,这类链接另有专门词条讲它的结构化数据写法。

两层的差别在覆盖范围。全局导航给每个页面都送出一批固定链接,局部导航负责把这一类页面的内部结构串起来。Google 给电商站点写的建议正好覆盖这两层:“添加从菜单到类别网页、从类别网页到子类别网页,以及从子类别网页到所有商品网页的链接”[3]。

抓取路径由导航决定

引擎能解析的链接有硬性形式要求。Google 的说明是:“仅当链接是包含 href 属性的 <a> HTML 元素时,Google 才能抓取该链接”,其他格式里的链接多数解析不到[4]。这几种写法都在解析范围之外:<a> 没有 href、<span> 由脚本事件充当链接、href 的值写成 javascript:...[4]。

导航覆盖不到的页面要由别的渠道补。Yandex 列了几种需要站点地图补充的情形,没有导航链接的页面排在其中,与页面数量巨大、层级嵌套很深并列[2]。站点地图交出去的是地址清单,页面之间的父子关系仍然要从链接里读。

页面离起点有多远,也有第三方口径可以参考。Oncrawl 把页面深度定义成一个计数:从抓取起点走到某个页面,要经过几条链接[6]。起点页算第 1 层,被它直接链接的页面算第 2 层。该工具还有一条经验判断:一个页面要 3 次以上点击才能到达,表现往往不好;层级越深的页面,抓取工具找到它、再次访问它的概率越低[6]。这是工具自己的模型,不是搜索引擎公布的指标,只能作为排查线索。

<nav aria-label="主导航">
  <a href="/">首页</a>
  <a href="/digital/">数码</a>
  <a href="/digital/phone/">手机</a>
  <a href="/digital/phone/list?brand=nokia">诺基亚机型</a>
</nav>

导航帮引擎判断页面位置

Google 处理网站结构的依据是链接关系,不是网址里的目录。它不会从网址路径推断层级,而是分析各网页之间的关联,从中得出不同网页的相对重要性[3]。能用于推断的信息有两类:访问某个网页要跟踪多少条链接,指向某个网页的链接又有多少条[3]。

导航在这里承担两件事。

  1. 交代父子关系:菜单指向栏目页,栏目页指向子分类,子分类指向详情页,链条上每一级都在告诉引擎下一级的上一级是谁。
  2. 交代重要程度:处在导航主干上层的页面、被更多页面链接的页面,位置更突出。Google 的说法是,网站里指向某个网页的链接越多,该网页相对于网站上其他网页就越重要[3]。

引擎侧的呈现也吃这套信号。Yandex 说明站点快链只根据站内链接生成,展示的板块要出现在菜单里,或者是该页上被点击最多的位置[1]。导航里没有的栏目,快链拿不到素材。

脚本才可见的导航会出什么问题

第一种情况是导航链接由脚本在运行时插入。Google 的建议明确了方向:创建指向其他内容的链接时使用 <a href> 标记,不要在其他 HTML DOM 元素上挂 JavaScript 事件做导航[3]。菜单数据存在脚本变量里、点击后由路由切换视图时,文档里没有可解析的地址,这条路径上的页面在抓取阶段就是缺失的。

第二种情况是折叠菜单把链接藏得太深。移动端常见的主导航点击汉堡图标才展开,展开与否是界面状态,抓取时读的是渲染结果。链接写在文档里、只是默认收起,与文档里根本没有链接,两种写法的结果不同;用网址检查工具看渲染后的 HTML,能确认菜单项有没有出现在里面[4]。

第三种情况是链接文字空洞。导航文字承担解释目标页面的作用,Google 要求定位文字即链接的可见文字写得清楚简洁,并与被链接的网页相关[4]。整站菜单都写成“更多”“点击这里”时,链接指向的地址能被抓取,文字给不出任何判断依据。

<!-- 脚本路由才可见:文档里没有可解析地址 -->
<span data-route="/digital/phone/" onclick="go('/digital/phone/')">手机</span>

<!-- 改写后的可抓取形式 -->
<a href="/digital/phone/">手机</a>

落地写法

改导航时按这个顺序做:

  1. 把主导航写成静态 <a href>,由服务端输出,不放在脚本回调里;
  2. 保证每个栏目的页面都能从至少一个静态页面链接到达;
  3. 局部导航按层级补齐,父页链接子页,子页回链父页;
  4. 折叠菜单保留文档内的链接,只改可见状态,不删节点;
  5. 链接文字用栏目名,避免“更多”“点击查看”;
  6. 导航改动后用渲染视图复查一次,确认菜单项在渲染结果里。

层级深的站点还要控制点击距离。同一个页面从首页走到它需要经过的链接越多,被再次抓到的机会越低[6]。局部导航的作用,是给这类页面多一条短路径。

百度把这件事写进了移动友好度标准,首页或索引页的要求是“页面提供的导航链接应清晰可点,页面推荐的内容应清晰有效”[5]。同一份标准还认可能带来访问路径增益的做法,例子是页面给出有效的导航或面包屑,能去往上一级或下一级页面[5]。两处要求都落在链接能不能点、点了去哪儿这两件事上。

常见误用

  • 整站导航只由前端路由生成,文档里只剩一两个链接,栏目页借站点地图勉强维持收录;
  • 用下拉菜单的 hover 事件跳转,地址写在脚本里,抓取工具跟不到;
  • 把全部栏目塞进全局导航,每页重复上百条链接,正文里的链接信号被大量重复链接盖过;
  • 只在首页放新栏目链接,改版后旧栏目没有任何页面指向;
  • 导航文字与目标页主题不一致,链接指向 /digital/phone/ 却写“产品中心”;
  • 删掉栏目页的返回链接,父页与子页之间只剩单向关系。

附录

参见

参考资料

官方(境外)

  1. 《Sitelinks》,Yandex Webmaster。
  2. 《Sitemap》,Yandex Webmaster。
  3. 《帮助 Google 了解您的电子商务网站结构》,Google 搜索中心。
  4. 《Google 的链接最佳实践》,Google 搜索中心。

官方(国内)

  1. 《百度搜索 Mobile Friendly(移动友好度)标准 V1.0》,百度搜索资源平台,2015-12-24 更新。

第三方

  1. 《Page depth》,Oncrawl。

外部链接

无。