抓取、索引和排名是三个先后不同、可以分别观察的环节:抓取是搜索引擎发现并读取页面,索引是把读到的内容判断为值得收录并存入可检索的库,排名是用户搜索某个词时从已索引内容里挑出结果并决定顺序。判断问题出在哪一环,最直接的方法是看页面在搜索结果里的“存在状态”,而不是只看流量涨跌。
抓取环节要回答的是:搜索引擎有没有来读过这个页面。可以执行的检查有:
site: 加具体网址查询,看该页面是否出现在结果中。没有出现,可能是未抓取或未索引,不能直接断定是排名问题。robots.txt 是否误屏蔽了该目录,页面 <meta name="robots"> 是否写了 noindex。如果日志里根本没有爬虫访问,优先处理抓取入口:内链、站点地图、外链和服务器可访问性。如果爬虫来了但返回错误或读到空内容,先修技术故障,排名暂时不用考虑。
索引环节要回答的是:页面被读到了,搜索引擎是否愿意把它收进可检索的结果库。常见判断方法:
site: 查询该页面,出现说明大致已进入索引;完全不出现则可能未索引。这里要区分“已抓取”和“已索引”:爬虫读过不等于一定收录。日志有抓取记录,但 site: 查不到,说明卡在索引判断,而不是抓取。
排名环节要回答的是:页面已经在索引库里,为什么搜某个词时不在前面。可以这样验证:
排名受查询词、地域、设备、个性化等因素影响,单次搜索不能当作稳定结论。应固定查询词和环境,多次观察趋势,而不是凭一次结果下判断。
按“从前往后”的顺序处理,因为后一环依赖前一环:
site: 查不到,检查内容独特性、渲染方式和站内重复,先让页面进入索引库。判断结果可以这样用:日志无抓取记录,处理抓取;有抓取但搜标题也找不到,处理索引;搜标题能找到、搜目标词找不到,处理排名。假设某页面日志显示爬虫三天前访问并返回 200,但 site: 查询不到,此时把时间花在改标题和堆关键词上是无效的,应优先排查内容是否被判为低质或重复。
下一步:挑一个你关心的页面,先记录它在日志中的抓取状态,再用 site: 和标题搜索各查一次,把结论归入抓取、索引或排名中的一类,然后只处理这一类问题。