SEO收录异常诊断:负载均衡架构导致的SEO问题及解决方案
<p>最近,本人负责的其中一个站点收录出现了异常,趁着周末有空讲述一下整个诊断过程。核心问题有两点,服务器架构和网站程序架构导致的;本篇仅分享服务器架构导致的收录异常。</p><p>首先,介绍一下自己。本人就职于深圳某企业,长期混迹于乙方外包公司,众所周知SEO外包公司接的是绝大部分是小企业网站,这些网站做的关键词往往也仅是改个TDK就完成排名的工作。</p><p>再加上,目前绝大部分中小站点的架构很简单,开源CMS+单一云服务器(虚拟主机)+CDN(这还是有点运维能力公司)。鉴于以上经验,导致本人完全没有意识到服务器架构方面也能出现问题。</p><h3>一、收录异常的发现</h3><p>从(图1)可以和明显的看出,在3月中下旬收录是偏向正常的,问题出现在3.31日-4.25日之间出现了浮动,也就是说,这个区间一定是站点出现了问题导致收录异常。</p><p></p><blockquote>本人开始按常规方法排查,特别是服务器日志有些参数没有排除注意,以至于导致了问题发现,具体如下:1.1、站长平台模拟爬虫抓取,正常。1.2、搜索引擎爬虫抓取数量在提升,偏向正常。这里有异常,排查伪蜘蛛爬虫在抓数据,真实百度爬虫确实也在增长。1.3、核心关键词排名浮动,但偏向且上升趋势靠前,目前核心大词处于前5名,正常。1.4、服务器日志分析,爬虫对应的request_uri值(相对地址),暂属正常,请看下文。1.5、服务器日志是阿里云的日志,http请求,7.18日、7.19日、7.20日以及7.26日出现小面积服务器500访问错误;但最多只出现有限的时间收录异常,不至于大范围不收录。</blockquote><p>在服务器访问日志分析中,一般需要注意的项是:爬虫抓取时间值,爬虫页面URL值,爬虫在页面抓取顺序,时间内爬虫抓取数量,另一说蜘蛛IP值有权重高低之分(本人不确定,故不参考)</p><p>页面URL值:一般服务器日志是相对地址,本人诊断出现的问题在于忽略host值,真实抓取URL应该是,host+request_uri值组合。</p><p>页面抓取顺序:可检验<a href="https://lusongsong.com/reed/272.html" target="_blank" data-url="lusongsong.com" class="show-5118-data" rel="nofollow">网站架构</a>的爬行情况,大概可以知道爬虫在网站页面中的爬行顺序,可以辅助使用爬虫软件或者开发经典爬虫(PY,PHP等)的爬行情况作为参考</p><p>时间内爬虫抓取数量:检验网站页面总量和时间段内抓取量的占比,判断<a href="https://down.lusongsong.com/info/10100.html" target="_blank" data-url="down.lusongsong.com" class="show-5118-data" rel="nofollow">网站的受欢迎程度</a>。</p><p>说到这里,交代一下站点的服务器架构:</p><p>用的是负载均衡,文件服务器+数据服务器+前端服务器,数据服务器全部数据是由API接口、GET方式前端和app使用,网站URL是相对地址。服务器之间自然用的也是内网通讯。</p><p>综上,可能大家也看出有忽略的参数,是1.4中提到的日志host值,因为是相对地址,host+request_uri才是抓取的完整地址。一直忽略的Host值,原来是API的二级域名(图2)</p><p></p><p>说到这里,大家可能已经基本上可以确定知道原因了。</p><p>就是百度根本没有抓取到真实的页面URL,实际上抓取的是API域名+request_uri,</p><p>即假设数据库服务器API给前端渲染的数据路径是api.name.com,走内网IP,</p><p>抓取到的页面URL为:https://api.name.com/post/1.html</p><p>真实应该是外网IP的URL:https://www.name.com/post/1.html</p><h3>既然核心问题已把握30%,下一步自然是数据证明,主要从几个点。</h3><p>1、翻开发日志记录</p><p>2、4月前后的服务器日志整理对比</p><p>从1中发觉,4.13号负载均衡的数据服务器api取消代理,这样造成的后果是前端直接抓取了host主机值为api域名下的数据在前端渲染,因为是直接使用内网IP没经过代理,同时api二级域名为host主机值。</p><p>从2中发觉,4月前后日志的host主机值出现了改变,由www.name.com变成了api.name.com。</p><p>最终,问题就出现在host主机为api的站点,没有使用代理,也就是说只要api站点通过代理变成www的二级站点渲染即可。如果没有使用代理,百度GET返回的页面是内网IP,抓取到的也就是https://api.name.com/post/1.html
这个URL。</p><h3>解决方案:</h3><blockquote>1、负载均衡的数据服务器api接口使用代理2、Head区增加标签3、前端渲染的HTML使用绝对路径4、开发个API接口推送数据</blockquote><p>本文完。鉴于本人仅是SEO,运维能力有限,单机服务器配置下站可以,负载均衡只是略微听过,如有运维方面错误之处请见谅。</p>
过来看看