上线前核对抓取与索引配置,核心不是确认页面能否在浏览器打开,而是确认搜索引擎能否发现、抓取并允许索引这些页面。常见误解是:本地预览正常、服务器返回200,就说明SEO配置没问题。实际上,抓取和索引是两道独立的关卡,任何一道被挡住,页面都不会出现在搜索结果里。
抓取指搜索引擎爬虫请求并下载页面内容;索引指搜索引擎把抓到的内容分析、存储,并允许它参与搜索展现。一个页面可能被抓取但被禁止索引,也可能因为内链、robots、状态码问题根本不被抓取。核对时要分别检查,不能只看其中一项。
robots.txt控制爬虫能否抓取某个路径,meta robots控制已抓取的页面能否进入索引。两者作用不同,容易混淆。假设一个页面在robots.txt里被禁止抓取,同时meta robots写成noindex,结果是爬虫不会抓取该页,也就看不到noindex标签,页面仍可能因外部链接被索引。这种组合是常见错误。
正确做法是:如果希望页面不被索引,不要用robots.txt阻止抓取,而应允许抓取并设置<meta name="robots" content="noindex">。如果只是不想让爬虫浪费抓取配额访问某些目录,可以用robots.txt禁止抓取,但要接受这些URL可能仍出现在结果中。
canonical标签用于告诉搜索引擎哪个URL是首选版本。上线前要检查每个页面的canonical是否指向自身或正确的规范URL,避免出现以下情况:
判断方法:打开页面源代码,搜索rel="canonical",确认其中的URL与当前页面实际地址一致,或指向明确希望被索引的版本。如果站点有HTTP与HTTPS、带www与不带www两种版本,canonical应统一指向其中一种,并在服务器端做301跳转。
上线前至少抽查以下项目:
<a>链接到达,不依赖JavaScript点击事件或表单提交。如果页面依赖JavaScript渲染内容,要确认关键文本和链接在初始HTML或渲染后可见。不同搜索引擎对JavaScript的处理能力不同,不能假设所有爬虫都会执行脚本。适用条件是:内容型页面尽量服务端输出;交互型功能可以依赖脚本,但核心导航和正文应有可抓取的HTML回退。
按以下顺序操作,每步都有明确判断结果:
/robots.txt,确认没有Disallow: /误屏蔽全站。如果存在,检查是否针对特定爬虫,判断是否会影响目标搜索引擎。<meta name="robots">,确认没有意外的noindex。如果是有意设置,确认该页面确实不需要参与搜索。完成这些检查后,如果发现robots.txt误屏蔽,修改后需要等待爬虫重新抓取;如果发现noindex,移除后同样需要时间生效。不要在上线后立即断言“已经收录”或“没有收录”,抓取和索引都有延迟,且不同搜索引擎处理节奏不同。
下一步:把上述检查项整理成一份上线前核对清单,每次发布新页面或改版时逐项打勾,而不是只在上线当天临时检查。