欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  新闻

SEO收录异常诊断:负载均衡架构导致的SEO问题及解决方案

程序员文章站 2022-03-27 11:33:39
最近,本人负责的其中一个站点收录出现了异常,趁着周末有空讲述一下整个诊断过程。核心问题有两点,服务器架构和网站程序架构导致的;本篇仅分享服务器架构导致的收录异常。首先,介绍一下自己。本人就职于深圳某企...

最近,本人负责的其中一个站点收录出现了异常,趁着周末有空讲述一下整个诊断过程。核心问题有两点,服务器架构和网站程序架构导致的;本篇仅分享服务器架构导致的收录异常。

首先,介绍一下自己。本人就职于深圳某企业,长期混迹于乙方外包公司,众所周知seo外包公司接的是绝大部分是小企业网站,这些网站做的关键词往往也仅是改个tdk就完成排名的工作。

再加上,目前绝大部分中小站点的架构很简单,开源cms+单一云服务器(虚拟主机)+cdn(这还是有点运维能力公司)。鉴于以上经验,导致本人完全没有意识到服务器架构方面也能出现问题。

一、收录异常的发现

从(图1)可以和明显的看出,在3月中下旬收录是偏向正常的,问题出现在3.31日-4.25日之间出现了浮动,也就是说,这个区间一定是站点出现了问题导致收录异常。

SEO收录异常诊断:负载均衡架构导致的SEO问题及解决方案

本人开始按常规方法排查,特别是服务器日志有些参数没有排除注意,以至于导致了问题发现,具体如下:

1.1、站长平台模拟爬虫抓取,正常。

1.2、搜索引擎爬虫抓取数量在提升,偏向正常。这里有异常,排查伪蜘蛛爬虫在抓数据,真实百度爬虫确实也在增长。

1.3、核心关键词排名浮动,但偏向且上升趋势靠前,目前核心大词处于前5名,正常。

1.4、服务器日志分析,爬虫对应的request_uri值(相对地址),暂属正常,请看下文。

1.5、服务器日志是阿里云的日志,http请求,7.18日、7.19日、7.20日以及7.26日出现小面积服务器500访问错误;但最多只出现有限的时间收录异常,不至于大范围不收录。

在服务器访问日志分析中,一般需要注意的项是:爬虫抓取时间值,爬虫页面url值,爬虫在页面抓取顺序,时间内爬虫抓取数量,另一说蜘蛛ip值有权重高低之分(本人不确定,故不参考)

页面url值:一般服务器日志是相对地址,本人诊断出现的问题在于忽略host值,真实抓取url应该是,host+request_uri值组合。

页面抓取顺序:可检验网站架构的爬行情况,大概可以知道爬虫在网站页面中的爬行顺序,可以辅助使用爬虫软件或者开发经典爬虫(py,php等)的爬行情况作为参考

时间内爬虫抓取数量:检验网站页面总量和时间段内抓取量的占比,判断网站的受欢迎程度。

说到这里,交代一下站点的服务器架构:

用的是负载均衡,文件服务器+数据服务器+前端服务器,数据服务器全部数据是由api接口、get方式前端和app使用,网站url是相对地址。服务器之间自然用的也是内网通讯。

综上,可能大家也看出有忽略的参数,是1.4中提到的日志host值,因为是相对地址,host+request_uri才是抓取的完整地址。一直忽略的host值,原来是api的二级域名(图2)

SEO收录异常诊断:负载均衡架构导致的SEO问题及解决方案

说到这里,大家可能已经基本上可以确定知道原因了。

就是百度根本没有抓取到真实的页面url,实际上抓取的是api域名+request_uri,

即假设数据库服务器api给前端渲染的数据路径是api.name.com,走内网ip,

抓取到的页面url为:https://api.name.com/post/1.html

真实应该是外网ip的url:https://www.name.com/post/1.html

既然核心问题已把握30%,下一步自然是数据证明,主要从几个点。

1、翻开发日志记录

2、4月前后的服务器日志整理对比

从1中发觉,4.13号负载均衡的数据服务器api取消代理,这样造成的后果是前端直接抓取了host主机值为api域名下的数据在前端渲染,因为是直接使用内网ip没经过代理,同时api二级域名为host主机值。

从2中发觉,4月前后日志的host主机值出现了改变,由www.name.com变成了api.name.com。

最终,问题就出现在host主机为api的站点,没有使用代理,也就是说只要api站点通过代理变成www的二级站点渲染即可。如果没有使用代理,百度get返回的页面是内网ip,抓取到的也就是https://api.name.com/post/1.html 这个url。

解决方案:

1、负载均衡的数据服务器api接口使用代理

2、head区增加标签

3、前端渲染的html使用绝对路径

4、开发个api接口推送数据

本文完。鉴于本人仅是seo,运维能力有限,单机服务器配置下站可以,负载均衡只是略微听过,如有运维方面错误之处请见谅。

作者:深圳传说