Search Console 里抓取到两百多条已提交未编入索引的地址,点开全是同一个空白页面,状态码 200。日志里能对上时间点,这种反而好排。

路由没匹配到任何规则时,根组件渲染了一个空 div,服务端照样回 200。爬虫拿到的是软 404,既不算错误也不算有效内容,收录一直卡着。这一点先确认清楚,后面就不用反复试。

{ path: '/:pathMatch(.*)*', name: 'NotFound',
  component: NotFound }
// 服务端对不存在的路径返回 404 状态码

「SPA 404 页面」排查到最后往往是很小的一处差异,前面那些复杂猜测可以先放一放。能分两步做的操作就别合成一步,中间看一眼返回值,出问题好判断。

报错里带路径的,先去看那个路径在不在、权限对不对。同一份配置存在多处的,先确认改的是被加载的那一份。

处理上按这个顺序:加一条通配路由指向 NotFound 组件,明确告诉用户页面不存在;服务端对已知不存在的路径返回 404,别一律回退到首页的 200;这类页面加 noindex,减少被反复抓取。

结果对不对很好判断,随便输一个不存在的地址,页面显示 404 文案,抓取工具看到的状态码也是 404。

作者 9823189