博客换域名的那些事

最近将手上的一个域名备案了,就将博客迁回到到国内的服务器上了,这样大家的访问的速度也可以快一些了。

因为换域名会影响搜索引擎收录、网站权重和 SEO 排名,所以除了将域名换上,我们还有一些额外的事情要做,否则网站的流量就像图上这样蹭蹭往下掉。

301 重定向

如果更换了域名如果不做 301,被收录的可能性会比较低,另外搜索引擎误认为是镜像网站,镜像网站对于原域名和新域名都有影响。所以更换了域名只要把原域名用 301 永久重定向到新域名上面就会被收录,权重也会转移,记住必须用 301 重定向而非 302 或者是其他的 JS 等转向手段。另外旧域名到新域名的 301 跳转关系建议一直保留,时间越长越好,尽量不要低于半年。

一般 DNS 解析产品提供商都会提供 301 重定向的功能的。

我的老域名是在 GoDaddy 上进行解析的,它 DNS 管理里边有个叫 Forwarding (中文界面叫“转址”)的功能,就可以直接实现 301 重定向。
但是我个人不太推荐这种方式,特别是像我这种原地址是 https 协议的,在这里重定向后会出现证书的警告。

我最终还是选择使用 nignx 进行的 301 重定向,配置如下:

server {
    listen       80;
    listen       [::]:80;
    server_name  windmt.com www.windmt.com;
    return       301 https://www.haoyizebo.com$request_uri;
}

server {
    listen       443 ssl http2;
    listen       [::]:443 ssl http2;
    server_name  windmt.com www.windmt.com;

    ssl_certificate "ssl/fullchain.pem";
    ssl_certificate_key "ssl/privkey.pem";

    return       301 https://www.haoyizebo.com$request_uri;

}

注意:return 字段必须带上协议头

301 与 302 的区别
301: 永久性转移 (Permanently Moved)
302: 暂时性转移 (Temporarily Moved)
共同点:二者都表示重定向,浏览器在获取服务器的返回码后会自动根据头部的 Location 值跳转到新的 URL 地址;
不同点:301 表示旧地址被永久地移除了,已经不可访问;302 表示旧地址还在,只是临时进行跳转,后续还是访问旧地址。

通知搜索引擎

Google 搜索

Google Search Console 里添加新的网域资源,然后在老的资源里进「设置-地址更改」通知 Google

如果 301 配置无误,点击「验证并更新」后就能看到通过的提示,再点「确认迁移」等着就行了(如果验证不通过,多半是 301 配置的有问题,这里我最初使用 GoDaddy 配置 301 时就有问题)

同时在新的资源下能看到

百度搜索

百度搜索资源平台里添加新站,然后在老站里找到「优化与维护-网站改版」提交新站

然后就是等着了

其他

Disqus

去 Disqus 的 Migration Tools,有三种方式:

  1. Domain Migration Tool

    当仅是换了域名没有改 path 的情况下使用。

    刚上来会有一个对当前域名的确认(截图已经是做过迁移之后的了)

    然后「Next Step」填入新的域名

    再「Next Step」就可以了,之后就是等它迁移完成就好了。

  2. Upload a URL map

    改了 path 的情况下需要上传对应关系,将前后的对应关系保存成 CSV 格式(, 分隔)

    https://windmt.com/2017/07/20/improve-ghost/, https://www.haoyizebo.com/posts/6540233f/
    https://windmt.com/2018/04/12/rabbitmq-1-hello-world/, https://www.haoyizebo.com/posts/1c89be24/

    然后上传就好了,完成了会有邮件通知。

  3. Redirect Crawler (Advanced)

    在已经在老的站点全部设置了 301 重定向后,Disqus 可以自动抓取更新。直接点「Start Crawler」就会开始抓取。

这三种方式前两种都比较快,第三种比较慢。根据自己情况的选就好了。

至于 Disqus 的 shortname,这个是没法改的。

Disqus 其他可能需要改的地方:

  1. 站点 General 里的相关信息:Website Name、Website URL
  2. 个人 Profile 里的 Website
  3. API Resources 里添加 Domains,否则 DisqusJS 会报 400 错误或 cors 问题

外部链接优化

如果之前交换过友链,需要一一联系站长修改友链地址。

死链提交

因为域名或 URL 结构的改变,会导致很多死链接,有些站长很难发现死链的存在,这时建议借助第三方软件全站爬取所有链接(比如 Integrity),寻找和收集死链接,并将死链放在一个文本文档,上传服务器,并且文件地址添加到站长工具的死链提交中。网站存在大量死链,会影响搜索引擎对网站的整体判断。