连续更新一个月,后台文章列表已经有四五十篇,可 site: 一查,收录的还是最开始那几篇。这种“发了不收”的状态,比“完全不收录”更让人困惑——明明有动作,就是没反馈。别急着怀疑搜索引擎针对你,先按分层的方法定位问题在哪一层。
一、把问题拆成三层
收录这件事可以拆成三层:发现层(爬虫知不知道有这篇文章)、抓取层(爬虫来了能不能顺利拿到内容)、质量层(拿到之后值不值得进索引)。文章“发了不收”,一定是卡在其中一层或多层。
排查的原则是从下往上:先确认发现层通不通,再看抓取层有没有异常,最后才归因到质量层。搞反顺序,容易在内容上白改半天。
二、发现层:爬虫怎么知道有新文章
爬虫发现新页面的路径只有两个:顺着链接爬,或者被主动告知。如果你的文章发出来,在站内没有任何链接指向它,爬虫只能靠站点地图或者推送来发现。
所以发现层要检查两件事:一是文章列表页、首页有没有及时更新(发了文章但列表页没刷新,等于文章不存在);二是 sitemap 和推送有没有跟上。sitemap 里要包含最新文章的 URL 和 lastmod 日期,推送最好在发布后当天做。
有个常见疏忽:程序生成的 sitemap 是静态的,更新后没有重新生成,导致新文章根本不在 sitemap 里。这种情况去访问一下你的 sitemap.xml,翻到最后看看有没有最近几天发布的链接。
下面这段脚本直接读你的 sitemap,把里面的地址和更新日期列出来,再筛出最近七天更新的条目,顺手告诉你是不是忘了重新生成。
# 检查 sitemap 里有没有最近发布的文章
import urllib.request, re
from datetime import date, timedelta
SITEMAP = "https://www.example.com/sitemap.xml"
raw = urllib.request.urlopen(SITEMAP, timeout=10).read().decode("utf-8", "ignore")
locs = re.findall(r"(.*?)", raw)
dates = re.findall(r"(\d{4}-\d{2}-\d{2})", raw)
cutoff = (date.today() - timedelta(days=7)).isoformat()
recent = [d for d in dates if d >= cutoff]
print("sitemap 共", len(locs), "条,最近 7 天更新", len(recent), "条")
if not recent:
print("警告:没有近期地址,检查是不是忘了重新生成 sitemap")
确认这一步之后,再回来看文章列表页有没有跟着刷新。sitemap 和列表页两个入口都断了,新文章对爬虫来说就等于不存在。
三、抓取层:来了却拿不到
抓取层的问题通常表现为状态码异常、超时、或者被拦。可以在搜索资源平台的“抓取异常”里看有没有新增的错误类型。常见的几种:页面返回 404(URL 写错了或者链接失效)、返回 500(程序报错)、响应超时(服务器太慢)。
还有一个隐蔽的抓取问题:文章页的正文由 JavaScript 动态渲染,爬虫拿到的初始 HTML 里没有正文内容。这种情况在搜索资源平台的抓取诊断里能看出来——抓取结果里含有的内容跟用户实际看到的相差很大。解决方式是把正文做成服务端渲染,或者做预渲染。
四、质量层:抓了却不收的四个信号
第一,同质化。你的站里已有好几篇讲同一件事的文章,或者你的内容跟网上大量内容高度相似。搜索引擎只会挑最好的收,重复的直接跳过。
第二,信息量不足。正文太短、图片太多、没有实质结论。判断标准可以很简单:把页面里的图片全去掉,剩下的文字能不能独立把这个问题说清楚。说不清,就是内容不够。
第三,关键词堆砌或者标题党。为了优化在标题和正文里硬塞关键词,或者标题承诺的内容页面没兑现,这类页面会被判低质。写作时以“用户看了能不能解决问题”为准,比刻意堆词有效得多。
第四,整站质量分偏低。如果站里存在大量低质页面(空栏目、采集内容、大量重复的标签页),会拖累整站的评价,新文章跟着受影响。这时候要清理低质页面,而不是猛发新内容。
五、定位动作表
实际排查时按这个顺序走:第一步,site: 查收录量,看是不是整体都不收(整体不收要先查技术);第二步,查 sitemap 和文章列表页有没有更新(发现层);第三步,抓取诊断跑一篇文章(抓取层);第四步,如果前三步都正常,再逐篇比对内容,找同质化和信息量的问题(质量层)。
六、一个心态问题
收录有滞后性。今天发的文章,过几天到两周才收是常事,尤其是权重还不高的新站。所以判断“是不是有问题”,要用两周以上的数据看趋势,别今天发完明天就急着下结论。真正有问题的是“连续几周发的新文章一篇都收不进”,那才是需要动手排查的信号。
相关阅读:《百度不收录文章是什么原因?内容质量与抓取双线诊断》、《新站上线一个月还没收录?先分清是没收还是没放出来》、《百度收录和索引量有什么区别?两个指标的口径与查看方法》
A5创业网 版权所有