网站收录慢,表现是文章发了三五天、甚至一周,搜索里还搜不到。对靠时效内容吃饭的站来说,这等于白写。收录慢的根子通常就两个:爬虫来得不够勤(抓取频次低),以及你没主动告诉搜索引擎“我有新东西”(提交不足)。这篇从这两头给加速办法。
先理解一个关系:收录速度约等于爬虫来的频率乘以你提交的效率。两个旋钮一起拧,新文章才能当天进库。
一、先看抓取频次到底低不低
打开平台提供的抓取频次曲线,和你同体量、同更新频率的站比,如果明显偏低,说明爬虫对你的抓取预算不够。频次低的直接后果就是:你发了新文,爬虫好几天后才来,自然收录慢。提升频次没有捷径,靠的是“站点稳定 + 内容规律 + 主动吸引”。先确保服务器常年稳定返回 200、更新有固定节奏,爬虫才会把你的抓取频率调高。
二、用主动提交把新链接送上门
光等爬虫来太被动。平台提供链接提交接口,你每发一篇新文就主动推一次,等于把链接直接递到爬虫手里,能大幅缩短收录时间。下面这段脚本演示怎么把新文章地址批量推给百度搜索资源平台提供的接口,把 TOKEN 和 SITE 换成你自己的,urls 里换成真实新链接即可。
# 把新文章地址主动推送给百度搜索资源平台提供的链接提交接口
import urllib.request
TOKEN = "你的站点token" # 在平台站点管理里获取
SITE = "https://www.example.com" # 改成你的站点
API = "http://data.zz.baidu.com/urls?site=%s&token=%s" % (SITE, TOKEN)
urls = "https://www.example.com/post/new-1.html\nhttps://www.example.com/post/new-2.html"
req = urllib.request.Request(
API, data=urls.encode("utf-8"),
headers={"User-Agent": "curl/7.0", "Content-Type": "text/plain"})
try:
print(urllib.request.urlopen(req, timeout=10).read().decode("utf-8"))
except Exception as e:
print("推送失败:", e)
跑完会返回成功条数。建议做成发稿流程的一环:文章发布后自动触发一次推送,不要攒一周再推。推送成功不代表立刻收录,但能给爬虫一个强信号,多数新文能在当天到次日进索引。
三、顺手把抓取效率提上来
爬虫来了如果抓得慢,也会拖慢收录。几个能做的:开 gzip 压缩减小传输体积、避免 www 和非 www 互跳浪费抓取、减少无意义的参数页(比如 ?ref= 这种追踪参数生成的大量重复页)。这些改完,爬虫单位时间能抓更多页,间接提速。
四、用 sitemap 做兜底
除了实时推送,sitemap 是兜底。每次发完新文重新生成 sitemap 并提交,保证新链接一定在地图里。推送负责“快”,sitemap 负责“全”,两者配合,基本能覆盖绝大多数新内容的收录需求。以周为单位看新文进索引的比例,目标是一周内九成以上被收。
相关阅读:
A5创业网 版权所有