更换域名在建站初期是经常发生的事情,无非就是DNS修改下解析,替换下内部代码,但对于运营过一段时间的、搜索引擎收录良好的“成熟”站点来说,修改域名,对网站流量和引擎收录简直就是灭顶之灾。正值最近本站刚更换了域名,就此来记录下作为一个网站,更换域名所需要考虑和修改的内容。
更换DNS绑定域名
这一步不再赘述,无非就是解绑旧域名,换绑新域名。
301重定向(重要!)
此步骤是重中之重!对搜索引擎来说,有专门的网站改版提交入口,目的是主动通知搜索引擎你的原站链接变更,从而加快新域名链接的收录,但完成网站改版的验证,(百度,谷歌)都需要你将旧域名的链接通过301重定向来跳转到新链接。需要注意的是:
- 强烈建议网站改版的链接按照规则来更新。最理想的规则是 a.com/1.html => b.com/1.html,即网站内容不变,仅仅是更换域名而已。
- 百度站长平台支持你自定义链接替换规则。
如何完成301重定向?
- html或js跳转[X]。对于绝大部分使用托管服务搭建站点的用户来说,通过一个单独的page进行跳转是最佳方案了。实现方法非常多,可以利用404.html页面,借助JavaScript进行自定义跳转,但是!!这样的跳转并不是带HTTP状态的301重定向。遗憾的是,对于Github和Coding,他们并不支持搜索引擎所需要的301重定向。
物理机/docker服务。这是最正统的实现方法,比如使用物理主机,通过Nginx配置即可完成重定向工作。但我没有云服务器我就没机会了吗?非也!HeroKu在等你!HeroKu也是一个站点托管平台,但突出点在于托管的实体对象,是docker对象,也就是说,理论上Heroku的托管应用就可以实现301重定向,确实,他们可以!
① 在Ubuntu上使用,只需要先安装heroku,再将重定向项目克隆并上传到你的heroku应用中,最后配置所谓的“重定向路径”。具体步骤如下:
(其他平台安装参见:https://devcenter.heroku.com/articles/heroku-cli)
1 | $ sudo snap install --classic heroku |
注意:克隆之后的源代码需要修改一下,把跳转链接改为 https
。
1 | require 'rack/rewrite' |
② 完成之后,即可在Heroku网站上看到修改的内容,尤其是Redirects配置。
③ 之后,为了匹配缺省域名,我们需要两个域名绑定,分别是“a.com”和“www.a.com”。
④ 除此之外,为了完全对应新站链接,此处的heroku所使用的协议,应该跟我的站点一致也是“https://”,为了开启https,万恶的Heroku需要你在网站绑定信用卡,之后才可以顺利开启https。
⑤ 还有,我们的301重定向需要全天可用,但heroku仅对付费者提供此项服务,因此最后选择了最便宜的类型,无需维护301太长时间,一两个月足以。
⑥ 一切就绪后,下面所示的SSL证书会自动添加。
⑦ 大功告成之后,可以去站长工具查询Http状态,当返回状态码和HEAD信息正确时,那就是301重定向已经搞定。
<< 更多精彩尽在『程序萌部落』>>
<< https://www.cxmoe.com >>
网站统计代码重置
汇总一下,主要有:
- 谷歌Analytics
- 百度统计
- 360站长
- cnzz
网站地图重新提交
我在以下平台重新提交了XML文件,
- baidu统计 (+robot.txt)
- 360站长
- 谷歌console
主动通知网站改版
最后的步骤:去百度站长反映你要换域名了;去 Google Console 来提交网站改版。
下图显示谷歌的配置正确之后的结果。
更换第三方依赖域名
- webpushr //推送订阅弹窗
- valine邮件模板 //邮件设定
- 全局查找Hexo的theme主题文件夹,找到旧域名替换。
后记
百度的网站改版校验非常奇怪,谷歌测试无误后,在百度站长就是校验失败,已经致信客服寻求帮助。
不必在意改版后的收录情况,一两个星期看一次就够啦,毕竟是一个重新收录的过程!
😒 留下您对该文章的评价 😄