打开谷歌站长工具,图表上的绿线在9月15日那天呈90度垂直下跌。原本8500条索引页面,24小时内变成不到3200条。老板站在工位旁边问话,3000美金的服务器续费账单就放在桌上。网页收录数据掉得让人心慌,去查日志文件才是该做的事。谷歌爬虫在9月14日凌晨2点进行过最后一次大规模访问,留下的状态码全是503错误。

去翻看Apache服务器的错误日志,数字把问题指明了。服务器平均响应时间超过了1500毫秒,常规健康标准应控制在200毫秒以内。旧文章里的配图体积高达4MB一张,把10M带宽的出口跑满了。爬虫抓取频次限制被自动触发,单日抓取配额从每日5000个URL骤降到不足150个。修复这个技术点,把Nginx配置文件里的并发连接数上限从1024调到8192十分迫切。

排查服务器设置几个具体步骤:

  • 查阅过去72小时的Nginx错误日志文件
  • 筛选状态码为500、502、503的出现频次
  • 检查宝塔面板防火墙规则是否误拦了美国加州的IP段
  • 把全站超过2MB的静态图片全部进行格式化无损压缩
  • 增加Redis缓存软件分担MySQL数据库读写压力

代码层面的误操作极其普遍。新来的技术员在测试新版子目录时,给整站头文件加上了meta noindex标签。短短48小时,4000多个产品分类页面被强行移出索引库。爬虫看到这段代码就会乖乖离开。排查时右键打开网页源代码,按Ctrl+F搜索noindex字样。它赫然出现在head区域第15行。赶紧联系技术团队把这行代码删掉,强制刷新一遍CDN节点缓存。

更新XML格式的站点地图动作务必要做。单个Sitemap文件包含的网址数量严格控制在50000个以内,文件大小上限为50MB。把那些只有两三句话、重复度高达80%的旧新闻页面剔除出去。保留过去半年内有访客停留超过2分钟的图文详情页。把精简后的XML文件提交给站长后台,在网址检查工具里请求手动编入索引。单日手动提交50个重要链接是个安全数值。

常见HTTP状态码

真实表现

应对实操步骤

404

页面找不到,链接失效

寻找对应的相似页面做301永久重定向

503

服务器过载,资源耗尽

扩容带宽出口,检查CPU占用率是否超80%

403

权限被拒绝,禁止访问

审查根目录.htaccess文件是否屏蔽特定UA

200

正常访问,响应顺利

检查页面内的规范标签URL是否指向自身绝对路径

更换域名或者全站改版常引发网址结构大变动。原来的/category/shoes变成了/shop/shoes。成千上万的老页面没做301重定向映射。旧链接在搜索结果里点开全是404错误提示。写一条简单的正则表达式在服务器后台做匹配转发。把带/category/的请求全部无缝转给/shop/。两天后去观察收录报表,新地址的索引量每天以300到500条的速率爬升。老地址慢慢从报表中淡出。

内容页整改的几条量化标准:

  • 正文纯汉字或单词数量确保在800字以上
  • 图文比例保持在每300字穿插一张相关高清配图
  • 去除全站共用的侧边栏无用推荐死链
  • H1标签全篇只允许出现一次,需包含主搜词汇
  • 页面加载速度用灯塔工具跑分需达到85分以上

买来的便宜外链起不到好作用。去官方的垃圾外链拒绝工具里上传一个TXT纯文本文件。里面列出那200个权重极低、带着博彩字眼的海外垃圾域名。内部链接的重新梳理十分管用。在日均访客超过1000人的首页显眼位置,放上那批被误删索引的产品页链接。把站内高权重页面的汁液分给它们。爬虫顺着这些每天被点击上百次的大流量入口重新爬取深层页面。

使用了Vue或者React框架搭建的新站点,页面内容全靠访客浏览器运算生成。右键查看源代码时,body标签里空空如也,只有一行几十KB的app.js文件调用代码。爬虫抓取这种页面的时间成本比纯HTML网页高出20倍以上。渲染引擎在等待JS文件加载时,超时阈值设定为5秒。海外服务器传回国内打包好的JS文件花了6.2秒。爬虫拿到一张白纸,带着0字符的内容记录离开。安装一个预渲染服务组件,把动态内容提前生成静态化的HTML快照。测试数据显示,开启SSR服务端渲染后的第3天,抓取成功率从12%回升到了98%。

商品列表页带有一大堆筛选参数。按价格排序生成了带?sort=price的网址,按颜色筛选生成了带?color=red的网址。原本只有1个独立商品,硬生生变出15个不同参数的重复链接。爬虫的抓取配额被这15个毫无新意的页面彻底耗尽。在网页的head区域加上一行rel=canonical规范化标签,把这15个变体链接的权重统一指回那个干净的绝对路径网址。站长后台的覆盖率报告里,那条标红的“重复网页-未提交规范网页”错误提示,在执行修改后的第5天彻底消失。抓取蜘蛛把省下来的配额全部分配给新上架的秋冬季200款服装详情页。

查阅搜索控制台里的安全问题标签栏。服务器在9月10日遭受了SQL注入攻击,数据库里被悄悄塞进了4500个带有日文外链的隐藏页面。这些页面披着正常博客文章的外衣,在CSS代码里把字号设置为0像素。访客肉眼看着一切正常,爬虫读到的全是满屏的违禁药品质售卖信息。网站被自动打上了“此网站可能遭到黑客入侵”的红色警告标签。把网站程序版本从v5.2升级到v6.1,打上最新的11个安全补丁。用杀毒脚本全盘扫描清理掉那4500个日文页面,向谷歌安全团队提交长达800字的审核申诉信。经过72小时的人工复核,搜索结果里的红色警告字样被人工摘除。

内链结构修复的量化操作:

  • 提取全站访问量排名前20的博客文章
  • 在每篇文章的第二段末尾植入1个精准锚文本链接
  • 指向那些在8月份抓取正常、9月份意外掉落的产品页
  • 确保全站没有任何一个页面距离首页超过3次鼠标点击
  • 页脚区域的网站导航链接数量精简到40个以内
谷歌搜索中心开发文档公开了运作细节,爬虫抓取严厉遵循服务器配额与算法评判分数,供给清晰无障碍的纯净代码页面排在优先位置。

后台里存在3000篇用工具批量生成的流水线文章。这些低质页面访客停留时间不足10秒,跳出率高达95%。搜索引擎的质量评估算法跑完一遍,判定整个站的文本质量不及格。去CMS后台把这3000篇文章批量勾选设置为草稿状态。只留下150篇由真人业务员手写、包含5张实拍图的真实客户案例。14天后索引量停止下跌,这150个优质页面的排名回升了4到5个位置。

网页标题和描述的重写需要极度耐心。原有页面标题千篇一律,70个字符里塞满了完全一样的商品型号代码。把它们修改成带有具体颜色、尺寸数值的完整短句。搜索结果里的点击率从可怜的0.8%上升到了3.5%。真实的点击增多,搜索引擎自动分配更多的服务器抓取频次。统计后台数据显示,每天爬虫光顾此域名的次数从45次飙升到了180次。

日常监控的四个数据关注点:

  • 抓取统计信息里的平均响应时间(低于300毫秒为佳)
  • 主要网页生命力报告里的最大内容绘制时间(控制在2.5秒内)
  • 索引涵盖范围里的“已发现-尚未编入索引”具体网址数量
  • 移动设备易用性报告中的字体大小过小提示警告

看着站长后台里重新向上攀爬的绿色折线,3天前的失眠感荡然无存。每天有大约150个新页面被重新纳入庞大的索引库。技术部门把Nginx的50条配置命令固化到了SVN版本控制软件里,防止下次代码发布时再被旧文件覆盖。内容编辑团队拿到了包含12项标准的新发文规范表。每一篇上传到后台的文章发布前都要经过字数统计和排版兼容性测试。流量曲线在第7天早上8点突破了上个月的最高峰值。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐