新站一般多久被收录,这个问题没有统一答案,但半个月还查不到记录时该看什么,是有明确方法的。很多站长搜不到自己的域名,第一反应是去改标题、换模板、加关键词,结果越改越乱。先别动站,把“爬虫有没有来”和“来了有没有被挡”这两件事分别查一遍,就能知道该继续等还是该动手改。
下面四节按顺序走:查痕迹、查拦截、看时间点、定动作。
一、先查爬虫有没有留下痕迹
打开服务器访问日志,搜爬虫标识。如果半个月里一次抓取记录都没有,问题出在“发现”环节,重点不是内容质量,而是入口。常见原因有三个:新域名没有任何外链,爬虫没有路径找到你;站点还没在任何平台提交过地址;服务器对陌生 IP 直接拒绝,爬虫连首页都拿不到。
二、再看有没有把它挡在门外
有抓取记录,但抓的全是首页、内页一次没抓,或者返回码里一堆 403、404、5xx,那就不是“没发现”,而是“抓不动”。逐项对:robots.txt 里有没有误写成 Disallow: /;服务器有没有开 IP 白名单、防火墙规则、地区限制;页面是不是靠 JavaScript 渲染,源码里只有空壳;有没有登录墙或验证码拦住首页。这四类里任意一类命中,收录都会一直卡住。
下面这段脚本把日志里爬虫的抓取按 URL 路径和返回码分组,能直接看出是“只抓首页”还是“大面积报错”。
# 按路径与返回码归类爬虫抓取,判断是"没发现"还是"抓不动"
import re
from collections import Counter
LOG = "/var/log/nginx/access.log" # 改成你的日志路径
bot = "Baiduspider" # 可换成 Googlebot 等一起观察
path_pat = re.compile(r'"(?:GET|HEAD) (?P
[^ ]+) '
)
code_pat = re.compile(r'"\s(?P\d{3})\s')
by_code, top_path = Counter(), Counter()
with open(LOG, encoding="utf-8", errors="ignore") as f:
for line in f:
if bot not in line:
continue
c = code_pat.search(line)
p = path_pat.search(line)
if c:
by_code[c.group("c")] += 1
if p:
top_path[p.group("p").split("?")[0]] += 1
print("返回码分布:", dict(by_code))
print("抓取最多的 15 个路径:")
for path, n in top_path.most_common(15):
print(n, path)
改 LOG 和 bot 两处。跑完看两个结果:如果抓取最多的路径全是 / 和 /favicon.ico,说明内页没有可爬的入口;如果 4xx、5xx 占了明显比例,说明抓取被挡,先去查防火墙和程序报错,别急着发新文章。
三、半个月这个时间点意味着什么
对已经有外链、提交过 sitemap 的站,半个月通常足以看到首页进入索引。对全新域名、零外链、内容又少的站,半个月还在观察期是常见情况。判断标准可以更具体一点:半个月里爬虫来过、返回码正常、也抓了内页,只是还没进索引库,那就继续等,同时保证接下来发的每篇内容有独立信息;半个月里爬虫一次没来,那不属于正常,得补入口。
四、这个阶段该做和不该做
该做的三件事:提交 sitemap、把新页面通过平台提供的链接提交入口推一次、在能被抓取的页面上放一条指向新站的链接。不该做的三件事:不要为了“让爬虫多来”去刷抓取频次或做站群互链;不要频繁改标题和模板;不要靠关键词堆砌硬凑内容。新站的收录节奏本来就偏慢,把入口打通、内容做扎实,比反复折腾表层更管用。
相关阅读:
A5创业网 版权所有