中文url对用户虽好,却是对搜索引擎噩梦般的存在!

我先前提过,我现在自己有十几个网站在维护,其中有令我满意的小网球(tennis.kuashou.com),但除了这个站,其他表现尤其堪忧,尤其是我的个人博客(sxg.kuashou.com),投入了同等的资源却直到今天依然没有收录任何内页文章。

我维护的这些网站都是来自我的不同域名的二级域名,文章原创、更新频率,全站链接数都不尽相同。

然而我把收录不佳的矛头首先指向了中文url。这些不收录内页的网站都有一个共同点:url里含有中文。

使用中文url是因为我很久没建站了,在两个月前想实际尝试一下中文url的友好度,毕竟对应的英文网站,url使用英文标题的词语用"-"连接是广泛使用的方法,而google对这种方式的url也是相当友好的。

https://sxg.kuashou.com/hello-world/

然而中文则不一样,因为url里出现中文会被转义,所以看到的会被搜索引擎转码,譬如以昨天的文章页的url为例

https://sxg.kuashou.com/调皮的知乎戏耍了百度爬虫,背后发生了什么?.html

会被转码成

https://sxg.kuashou.com/%E8%B0%83%E7%9A%AE%E7%9A%84%E7%9F%A5%E4%B9%8E%E6%88%8F%E8%80%8D%E4%BA%86%E7%99%BE%E5%BA%A6%E7%88%AC%E8%99%AB%EF%BC%8C%E8%83%8C%E5%90%8E%E5%8F%91%E7%94%9F%E4%BA%86%E4%BB%80%E4%B9%88%EF%BC%9F.html

这显然是对搜索引擎不好的一种方式,搜索一下seo圈的观点也都是:并没有哪个搜索排名优秀的网站使用中文url。

已经超过一个月的等待已经让我耐心全无,索性我就把url替换成正常的英文url。

替换的工作当然简单,以node为例,在router和控制器一改就完事。不过呢,事实上重点还不在于前端显示的更改。

你需要同时声明告诉百度知道

如果不做这个声明,相当于网站会多了同等数量的新的英文url。旧的链接要么就被判定成死链或重复链接,这有极大的可能被百度认为是重大改版并将网站权重进一步降低。

所以我们还需要将原先的链接返回301状态码,并重定向到新的url……这样可以相对友好的过渡到新的链接。

301转向(或叫301重定向,301跳转)是当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址。

301重定向对搜索引擎优化具有不可替代的作用。用301重定向巩固规范版本的URL,可以保证权重,防止搜索结果的重复内容。

以下是我node下的实际编码:

ctx.status = 301;
ctx.redirect(`/${id}/`);

除此以外,相应的网站地图sitemap也要注意更改,这样整个更改url的过程才相对完美。至于使用新的url多久能产生作用还有待观察,有情况会再撰文讲解。