当前位置: 首页 > Web前端 > vue.js

VuePress博客SEO优化(二)重定向

时间:2023-03-31 23:42:53 vue.js

前言在《一篇带你用 VuePress + Github Pages 搭建博客》中,我们使用VuePress搭建了一个博客。查看最终效果:TypeScriptChineseDocumentation。本文讨论SEO和重定向。问题一开始,我使用GitHubPages服务建站,地址:https://mqyqingfeng.github.io/learn-typescript。考虑到GitHub在国内的访问速度问题,我在Gitee上同步了另外一份。地址是:http://mqyqingfeng.gitee.io/learn-typescript后来决定自己建一个网站,地址是:http://ts.yayujs.com然后我就想怎么不用https呢?于是就有了新的地址:https://ts.yayujs.com另外http://yayujs.com也是这个网站...这时候生成了5个地址,所以决定统一成一个,不仅便于记忆和收藏,也便于SEO优化,不会导致重复收录和分流应有的搜索流量。统一统一成哪一个?首先,必须是自己的服务器和域名,否则钱就浪费了。。。而且因为HTTPS对SEO比较友好,比如百度搜索引擎认为权重相同的网站,页面使用HTTPS协议更安全,在排名中会优先考虑,Google也建议使用HTTPS::Google更喜欢将HTTPS页面(而不是等效的HTTP页面)作为规范页面,因此我们使用HTTPS。至于http://yayujs.com/,考虑到这里会作为SaeYu的个人博客页面,只是因为还没有开发,所以先指向这个站点,所以这个地址还是一样的,稍后将作为SaeYu的个人博客博客推出。所以最终统一地址为https://ts.yayujs.comJS重定向GitHubPages和GiteePages搭建的站点页面,因为不是自己的服务器和域名,没办法直接通过域名或者Nginx重定向重定向。方法,所以我们简单的用JavaScript判断域名,然后跳转到location.href中的新地址://config.jsmodule.exports={title:'TypeScript4ChineseDocumentation',description:'TypeScript最新官方文档翻译,TypeScript中文手册,提供TypeScript从入门到进阶的系统学习教程',head:[['script',{},`(function(){if(location.href.indexOf('github.io')>-1||location.href.indexOf('gitee.io')>-1){location.href='https://ts.yayujs.com'}})();`]]}请注意,在所有重定向方法中,JavaScript位置重定向应被视为最后的手段,如Google搜索中心文档中所述:仅当您无法实现服务器端重定向或元刷新重定向时才使用JavaScript重定向。虽然Google会尝试呈现Googlebot抓取的每个URL,但呈现可能会因各种原因而失败。这意味着,如果您设置了JavaScript重定向,而Google无法呈现内容,则Google可能永远看不到重定向。NginxredirectsHTTPredirectsHTTPS接下来我们使用Nginx来实现HTTP到HTTPS的重定向。这个在之前的文章《VuePress 博客优化之开启 HTTPS》中也有提到。我们使用Nginx的rewrite语句来实现:server{listen80default_server;听[::]:80default_server;服务器名称_;重写^(.*)$https://$host$1永久;位置^~/learn-typescript/{别名/home/www/website/ts/;}location/{别名/home/www/website/ts/;索引index.html;}}注意rewrite语句,我们加了一个permanent表示这是一个301重定向,如果不加这个就是302重定向,虽然性能是一样的,但是对于搜索引擎来说,就是不同的。谷歌还推荐使用301重定向:如果你需要改变在搜索引擎结果中显示的网页的URL,建议你尽可能使用永久的服务器端重定向。这是确保将Google搜索和用户定向到正确页面的最佳方式。301和308状态代码表示页面已永久移动到新位置。仅使用301重定向不会对网站排名产生任何负面影响。yayujs.com重定向www.yayujs.com对于搜索引擎来说,yayujs.com和www.yayujs.com是不同的站点,这个很好理解,毕竟www.yayujs.com相当于ts.yayujs.com的一个子-域名,但是如果域名不一样,但是内容是一样的,这样会导致搜索引擎做两个收录,影响两个地址的自然流量,所以我们需要重定向到另一个地址.那么是从yayujs.com重定向到www.yayujs.com还是从www.yayujs.com重定向到yayujs.com呢?其实无所谓,带不带www,对SEO没有影响,更多的是个人喜好。Google搜索中心文档中还有一个示例:假设用户可以通过以下方式访问您的页面:https://example.com/homehttps://home.example.comhttps://www.example.com选择这些URL之一作为规范URL,并使用301重定向将流量从其他URL定向到您的首选URL。如果你想让yayujs.com重定向到www.yayujs.com,你可以这样修改Nginx配置:server{listen443ssl;server_nameyayujs.comwww.yayujs.com;if($host!='www.yayujs.com'){重写^/(.*)$https://www.yayujs.com/$1永久;}}如果你想让www.yayujs.com重定向到yayujs.com,你可以这样修改Nginx配置:server{listen443ssl;server_nameyayujs.comwww.yayujs.com;if($host='www.yayujs.com'){重写^/(.*)$https://yayujs.com/$1永久;}}但是需要注意的是,虽然对于SEO来说是一样的,但是我们在做项目的时候可能会遇到一些差异。比如我们在处理cookie相关的内容时,由于cookie的同源策略,我们只能修改当前域和父域的cookie,比如ts.yayujs.com和www.yayujs.com的cookie都是隔离,但是ts.yayujs.com和yayujs.com的cookies并不是完全隔离的。系列文章博客搭建系列是我目前为止写的唯一实用系列教程。预计20篇左右,讲解如何使用VuePress搭建和优化博客,并部署到GitHub、Gitee、私服等平台。本文为第28篇,全系列文章地址:https://github.com/mqyqingfeng/博客微信:“mqyqingfeng”,加我到SaeYu的唯一读者群。如有错误或不准确的地方,请务必指正,万分感谢。如果你喜欢或者有启发,欢迎star,这也是对作者的鼓励。