域名纠错这个说法, 指的是这样一种情况,就是用户在浏览器的地址栏里面, 不小心输错了那个域名的名称, 比如说, 本来应该是 example.com 的网址, 他给打成了 exampl.com, 再比如, 原本是 .com 这样的后缀, 他却非要是写成 .con, 遇到这些错的时候, 网站那边会通过一些技术上的方法, 自己去识别出这个错误是什么, 然后再自动地、不知不觉地把用户给领到正确的网页页面去, 而要想解决这个问题的核心办法, 实际上就两条路径, 第一条是在 DNS 这个层面进行操作, 把那个输错的域名, 给它解析到一个正确的服务器上面去, 第二条就是在服务器这一层级配置一个叫做301永久重定向的东西。

只有把这两个东西一起使用, 才能够形成一个完整的闭环, 这是必须的前提条件。

三种实现方式及适用场景

1. 301重定向(最常用的方式)是, 在服务器端进行配置, 具体来说就是Nginx / Apache / IIS这些服务器环境, 当有人访问错误的域名的时候, 服务器会返回HTTP 301这个状态码, 并且告诉浏览器把这个请求转到正确的域名上去。

这种方法适用的场景是, 已经明确知道具体哪里拼写错了, 举一个例子来说吧, 就是本来应该输gname.xin这个网址的, 结果不小心打成了gname.con, 这种情况就能用这个方法解决。只要你完成一次配置的操作, 那么它就能够长时间保持生效的状态, 搜索引擎方面会把相关权重的完整内容给转移过去。

2. 通配符DNS解析这种做法, 意思就是把所有的通配记录都指向服务器的IP地址, 这样一来, 所有那些没有被明确定义的拼写变体, 也都能够访问到该网站了, 接着服务器端会根据事先设定的规则进行匹配操作, 然后把流量301重定向到正确的路径上去, 这一招主要是用在那种根本无法列举出所有可能出现的错误拼写的场合里。

3. 搜索引擎站点纠错: 在百度站长平台、Google Search Console 中提交正确的域名信息。这样可以使得它在用户搜索的时候展示纠错建议。这属于一种辅助手段, 它不能替代前两种方法。

具体配置步骤(以Nginx为例)

第一步, 要把所有可能会出现的那种错误的域名写法都给确认清楚了, 比较常见的那些类型比如说带有.con的, 还有.conm的这种, 或者是.cm这样的, 以及那个.comn之类的都要考虑到。

我们进行第二步, 把那些有问题的域名的A记录或者CNAME记录在DNS服务商那里指向您的服务器IP。

在执行步骤3的的时候, 需要到Nginx的配置文件里面去, 把server块给添加进去。

server {
    listen 80;
    server_name 错误域名1.com 错误域名2.com;
    return 301 https://正确域名.com$request_uri;
}

步骤4: 重载Nginx配置, 验证重定向生效。

域名打错了别慌:网站域名纠错的完整设置方法与常见踩坑点(图1)

第5步, 要到百度站长平台还有Google Search Console里面, 去验证那个新的域名, 目的是保证收录情况正常。

高频踩坑点

忘记配置HTTPS证书是会出现的情况, 错误域名在通过HTTPS方式进行访问的时候, 如果没有去部署相关的证书, 浏览器就会直接报出安全上的错误, 用户完全没法进入到重定向的环节, 需要为对应的域名去部署证书。

301写成302: 302是一个临时重定向的动作, 搜索引擎在这里不会转移权重, 你必须使用301。

DNS缓存未刷新: 在修改了DNS的设置之后, 需要等待大约二十四个小时到四十八个小时的时间, 才能在全球范围内完全生效, 在这个时间段里面, 有一部分用户可能还是没法访问网站, 这种情况属于正常的现象。

未统一www与非www: 在纠错的过程中, 要是没有同时将带有 www. 前缀的变体部分也一并处理掉, 那么就会引出二次跳转这种状况的存在, 进而导致加载速度发生拖慢的结果。

效果验证

等到把各项配置事情都处理妥当以后, 你就去浏览器的输入框里, 亲自手工敲入那个错误的域名地址, 目的是为了去确认一下, 页面是否能在1秒钟这一小段时间内完成跳转动作, 并且最终到达正确的URL地址, 同时还要看准了在地址栏那里显示出来的确实是正确的域名信息。

接着, 你需要使用curl -I这个命令来对响应头进行检查操作, 其核心目的是去确认系统返回的状态码到底是301而不是302。

最后, 你还得去借助Google PageSpeed Insights以及百度移动端检测工具这两个玩意儿, 分别在它们那里进行确认工作, 以确保在整个跳转链条中没有出现任何多余的不必要环节。

域名纠错这个事儿, 它根本不是那种可以挑着做的“可选项”, 而是非得做不可的“必选项”。因为用户每一次把域名给拼错了, 这都算是一次潜在的客流要流失掉。再说呢, 一次301重定向的配置成本, 那基本上可以说是几乎为零的一个存在。

所以我们就建议所有的网站, 得在刚开始上线的那个时候起, 就把那些常见的拼写变体也给加入到纠错体系里头去。把它当成是基础SEO以及用户体验这一部分的事儿, 要一直长期地维护下去。