恩威信息网建站踩坑记:从收录挂零到日增50条索引的实操复盘
上个月帮一个朋友折腾他的恩威信息网,一个本地生活信息平台。上线两个月,百度收录只有首页,内页全没索引。老板急,说投了推广费但没效果。我接手后从服务器配置、URL结构到sitemap.xml生成全部过了一遍,最后用三天把收录拉到日增50条。这篇把排查过程和踩过的坑全写出来。
问题背景:网站规模与表象症状
恩威信息网属于中小型站点,约8000条信息,主要是本地商家和黄页类内容。服务器用的是阿里云轻量应用服务器,2核4G,带宽5M,跑Linux + Nginx + PHP + MySQL。域名是enweiinfo.cn,做了ICP备案。
症状很明显:
- 上线60天,site:enweiinfo.cn只有首页1条结果
- 百度站长平台显示抓取异常比例高达35%
- 服务器访问日志里百度蜘蛛的请求集中在首页,内页几乎为零
我第一反应是robots.txt写死了,或者sitemap.xml没配置对。
原因排查:三个关键发现
登录服务器后,我先检查了robots.txt:curl http://enweiinfo.cn/robots.txt,发现Allow和Disallow规则正常,没有封蜘蛛。接着看Nginx访问日志:tail -f /var/log/nginx/access.log | grep Baiduspider,发现蜘蛛确实只访问首页,而且每次返回200,但页面内容非常轻(首页不到50KB)。
第二个发现是URL结构。恩威信息网的详情页是/detail.php?id=12345这样的动态参数形式,而且没有做伪静态。百度对带问号的URL抓取意愿本来就不高,加上PHP页面响应时间平均在1.8秒,更不利于蜘蛛爬行。
第三个问题出在sitemap.xml。我检查了根目录下的sitemap.xml文件,发现里面只列了首页和几个分类页,总共不到20条URL,而且最后更新日期还是建站当天的。等于百度一直不知道这个站有8000条内容。
解决方案:三步操作让收录正常
第一步:生成完整sitemap.xml并提交
我用PHP写了个简单的脚本,遍历数据库里的信息表,把每条记录的URL、最后修改时间、更新频率写进sitemap.xml。关键代码片段:
header('Content-Type: application/xml; charset=utf-8');
echo '';
echo '';
while($row = mysqli_fetch_assoc($result)) {
echo '';
echo 'http://enweiinfo.cn/detail.php?id='.$row['id'].' ';
echo ''.date('Y-m-d', strtotime($row['update_time'])).' ';
echo 'weekly ';
echo '0.5 ';
echo ' ';
}
echo ' ';
生成后,文件大小约450KB,包含8120条URL。接着把sitemap.xml上传到网站根目录,在百度站长平台提交索引,并ping了谷歌:http://www.google.com/ping?sitemap=http://enweiinfo.cn/sitemap.xml。
第二步:优化服务器响应时间
分析发现PHP页面执行慢是因为每次请求都重新查询数据库。我给详情页加了Redis缓存,缓存时间设为1小时。优化后,页面响应时间从1.8秒降到0.3秒。检查方法:用ab -n 100 -c 5 http://enweiinfo.cn/detail.php?id=12345测试,平均请求时间稳定在300ms以内。
第三步:调整Nginx配置,限制蜘蛛爬行频率
怕蜘蛛一下子涌进来把服务器打挂,我在Nginx里加了蜘蛛限速:
location / {
limit_req zone=spider burst=5 nodelay;
if ($http_user_agent ~* "Baiduspider|Googlebot") {
set $spider_limit 1;
}
limit_req_zone $spider_limit zone=spider:10m rate=1r/s;
}
这样每秒钟只允许蜘蛛发1个请求,突发最多5个,保证服务器稳定。
踩过的坑和检查清单
坑1:sitemap.xml里URL包含中文参数没做URL Encode,导致百度解析失败。后来统一用rawurlencode处理了id参数。
坑2:Redis缓存key设计没加前缀,导致其他页面数据被覆盖。改为"detail_" . $id后正常。
以下是排查时可用的检查清单:
- ☐ 确认robots.txt没有误封蜘蛛
- ☐ 查看Nginx日志中蜘蛛爬取行为
- ☐ 检查sitemap.xml是否包含全部URL
- ☐ 用站长平台测试sitemap.xml可读性
- ☐ 优化动态URL为伪静态或保持简洁参数
- ☐ 测试关键页面的响应时间
- ☐ 确认服务器没有因为高并发而限流
FAQ:关于收录和sitemap的常见问题
Q:sitemap.xml提交后多久能生效?
通常24-48小时,百度站长平台可以看状态。恩威信息网在提交后第3天开始有内页收录。
Q:动态URL一定不能收录吗?
不是,但伪静态对收录友好很多。如果不想改URL,至少保证sitemap.xml里URL不带过长参数。
Q:蜘蛛爬取频率太低怎么办?
先确认sitemap.xml提交成功,然后在站长平台手动请求抓取。另外检查服务器响应时间,超过3秒蜘蛛容易放弃。
总结建议
恩威信息网的问题本质是搜索引擎根本不知道网站有内容。sitemap.xml是最基础也最容易被忽略的一环。对于中小型网站,不要等搜索引擎自己发现,主动提交sitemap.xml,配合优化服务器性能和URL结构,收录问题基本都能解决。目前该站日增索引稳定在30-50条,百度权重从0升到1。如果你的网站也遇到类似情况,建议先从sitemap.xml入手排查。
声明:该信息由用户发布,真实性以及合法性由发布人负责,本站不会介入任何形式的担保!