由于运营的需求,网站有的时候就会面临服务器的扩张升级,或者服务器的更换,我们就不得不面临服务器IP变更的问题。但是服务器IP的改变有的时候我们遇到收录出现问题,归根到底发展搜索引擎抓取内容的IP地址还是就服务器的IP,为什么会造成这种问题呢?
域名与IP充当什么角色
要想搞明白这个问题,我们首先需要搞清楚网站和服务器IP域名之间是一个什么样的关系呢?用户访问网站的核心是通过IP地址来找到服务器从而获取内容。
IP地址是找到服务器的唯一途径,我们可以理解服务器是一个仓库,IP地址则是一个仓库的地址,但是这个地址又长又复杂难记。用户不可能记住这么长的IP地址来访问网站,这个时候就需要域名,域名更短更利于记忆,用户只需要记住域名,然后域名会自动解析跳转到对于的IP地址找到网站;就好比我们把仓库地址很长的一个地址名字跟XXX仓库关联起来,就好比你打车的时候只要跟师傅说去XXX小区,而不用说复杂到门牌号的地址。
更换IP造成访问出错
再讲更换IP地址影响网站收录之前,我们先讲下为什么我们把域名解析到了新服务器,通过新ip访问已经正常了,但是我们会发现通过域名访问的时候还是出现问题,还是访问到了旧服务器,只要关闭旧服务器我们发现,网站会出现无法访问的问题。
DNS缓存罪魁祸首
造成无法访问的问题,主要是DNS缓存造成的。当用户输入域名的时候,首先会到达域名解析服务器也就是DNS服务器,并且这些DNS服务器是分别在全球各个地方有很多个节点,当用户访问的时候离用户最近的DNS服务器会给到用户访问域名对应的IP地址。
但是DNS为什么加快域名解析的速度,是有缓存的存在的,不是每次的域名的访问服务器都会进行重新解析,而是定时更新缓存,各个节点的时间还不一样快的话几分钟,慢的话24小时左右。
所以当你刚修改域名解析之后,在一定的时间还是会继续访问到旧服务器的地址,因此我们需要在解析生效之前保证旧服务器的可访问性。
更改IP之后不收录
更改IP之后网站不收录也是相同的问题,对于搜索引擎也是有自建DNS的,为了加快搜索引擎的抓取效率,同样也是设有DNS缓存。所以和用户无法访问时一样的原理,搜索引擎DNS的缓存时间会更长。
如何解决抓取问题
首先我们确保域名解析的已经生效,可以通过在windows下的cmd命令实现,使用nslookup+域名反查,如果本站 nslookup www.chateach.com 回车返回的结果是最新的服务器的IP代表已经生效了。
但是前面说到了DNS服务器遍布全球,当前测试结果只能代表当前地区的DNS服务器缓存已经更新,全球各地更新过来可能还是需要一定时间。
更新搜索引擎DNS缓存
以百度搜索引擎为例,我们进入站长资源平台的抓取诊断模块,随便提交一个链接诊断,然后点击进入详情,如下图所示,我们可以看到搜索引擎抓取到的网站IP,我们可以直观看到当前百度搜索引擎抓取这个域名地址对应到的IP地址。
如果我们发现这个IP地址还是旧服务器地址,我们这个时候点击下报错按钮根据步骤处理即可。过个半小时后再去诊断下看下IP是否变更过来,如果依旧没有变更过来,很大可能性,是因为搜索引擎服务器所在地区的DNS服务器缓存还没有更新过来,可以等到域名解析修改24小时之后重试,因此搜索引擎的抓取还是依存于全球DNS服务解析的。
因此在网站各个搜索引擎的抓取没有恢复正常之前,我们需要确保旧服务器可以访问,以免出现大量的404错误问题,并且不需要去提交新内容,待一切生效完成之后关闭旧服务器,开启优化操作。