怎样把网站从http转换成https

近两年的情况表明,网站启用https已是大势所趋。但由于懒,一直没有动作。在David Yin的激励下,终于在人际稀少的春节前夕把SEO每天一贴转换成https了。

网站上有我博客链接的朋友,麻烦把链接从:

http://www.seozac.com

改到

https://www.seozac.com

谢谢。

使用https加密目前看有利有弊。利,首先是安全,减少被劫持、篡改的机会。弊,主要是速度上的,由于证书验证、多次握手、CPU消耗等原因,https页面速度会被拖慢一点。但https无疑是未来趋势。

改为https对SEO按说应该有好处,不过实际情况如何还有待验证。Google方面早就表明https是排名因素之一,虽然只是个很小因素。百度以前曾经提到过,百度不会主动抓取https页面,但2015年百度站长平台发布消息,百度对https页面优先收录、优先排名:

从相关性的角度,百度搜索引擎认为权值相同的站点,采用https协议的页面更加安全,排名上会优先对待。

此次技术升级之后,百度搜索将同一个域名的http版和https版作为一个站点来处理,优先收录https页面;

从http改到https后的一段时间,搜索引擎需要重新抓取、判断、计算,收录,排名和流量都可能有起伏。说是起伏,恐怕主要是下降。虽然从http版本全站做了301转向到https版本,我们都知道,百度对301转向处理很慢、很保守,需要持续观察什么时候能完成正确判断并传递权重,并且只传递部分权重。Google也表明过,301转向不能完全传递权重,是有损耗的。

就SEO每天一贴来说,另一个可能造成麻烦的是,这个网站以前做过多次URL路径变化和301转向,还换过域名,现在再多加一次301转向,多层转向有可能造成搜索引擎不愿意跟踪,不能完全传递权重。本博客外链增加最多的时候还是刚刚开博的头两年,那时候的链接都是指向最早的URL的,到现在的https新URL,经过了3-4次转向,这恐怕是搜索引擎会跟踪的转向数的上限了。所以,可能会丢失一部分无法挽回的外链效果。

接下来,本博客的主要关键词排名可能会下降甚至消失一段时间,能不能恢复也是未知之数。但长痛不如短痛,既然是趋势,无论如何,也得跟进。

简单说一下把网站从http转换到https的过程,也许对读者有借鉴意义。下面只是我做转换的过程,并不是最优方法,按说应该先在单独的服务器上测试https版本,我并没有。公司网站最好更谨慎点。

购买SSL证书

这个是必须的,现在价格并不贵。到David Yin帖子看一下,便宜的3年只是几十块钱。安装SSL证书的技术问题,无法在这讨论了,不明白的问技术人员吧。

顺便广告一下,如果用我们的服务器,免费提供SSL证书。

备份、备份

这个也是必须的。对SSL安装、服务器配置不熟悉的站长来说,转换过程不一定是那么顺利的。

新版本代码改动

SSL证书安装后,https版本就可以访问了。原来网站上的所有URL都需要改到https版本,包括链接、图片、JS等,所以可能需要修改文章数据库、模板、插件等。

本博客使用WordPress,要在后台把博客地址改为https版本:

WordPress后台设置

这样,绝大部分导航中的链接就由WP系统自动改为https版本了。但很可能还有一些导航性质的链接是硬编码在模板中的,比如这个博客帖子下面的版权声明,那是人工写在模板里的,别忘了改。

帖子正文中人工加的内部链接也需要自己改。如果使用了phpMyadmin,用下面指令跑一下数据库就行了:

update wp_posts set post_content = replace(

post_content, ‘http://www.seozac.com/’,

‘https://www.seozac.com/’);

帖子里的图片路径也就同时改了。

如果没有使用数据库管理工具,写个简单php程序运行一下也可以。

因为只是用指令在数据库执行了一下,没有,也没办法人工检查所有页面,可能有漏掉的链接、图片之类的,读者要是发现了,麻烦告诉我一下。

这里我还遇到了些没解决的问题。新浪微博组件和百度分享按钮组件貌似都不支持https,原理上应该可以把JS下载下来放到自己服务器上,但暂时没时间弄这个,先拿掉了。

检查新版本页面源代码

访问一下https版本页面,包括首页、栏目页、内页、sitemap,查一下源代码,看看还有没有http地址的存在,不仅页面可见部分,还得看看head部分,JS等,比如head里的canonical标签是否改到https版本了?程序生成的sitemap里的URL是否改为https版本了?

全站301转向

全站做http到https的301转向。LAMP服务器为例,在.htaccess文件中加:

RewriteEngine On

RewriteCond %{SERVER_PORT} 80

RewriteRule ^(.*)$ https://www.seozac.com/$1 [R=301,L]

RewriteCond %{HTTP_HOST} ^seozac.com [NC]

RewriteRule ^(.*)$ https://www.seozac.com/$1 [L,R=301]

这个代码只是举例,也是我的博客用的实际代码,还有其他写法也可以,只要实现了301就行。

访问原http版本页面,检查301是否生效。

百度站长平台和Google Search Console

搜索引擎抓取301转向后,应该可以自行判断网站已经从http转到https了。另一个通知搜索引擎的方法是通过站长平台。

在Google Search Console中,把https网站加入并验证,不需要使用Change of Address功能。可以在http及https版本的账号下,用Fetch as Googlebot功能看看两种版本的URL是否返回正确头信息和页面源代码。

百度站长平台好像不支持两个版本都加入站长平台。不过在原来http账号下,管理站点属性部分有这样一个选项:

百度站长平台https设置

点这句话右面的设置按钮,出来一个对话框,问是否确认支持https协议,点“是”后变成这样:

百度站长平台https协议

希望这样百度就知道应该把http和https两个版本动作一个网站处理。

持续观察抓取、收录、排名、流量

这是接下来两三个月要做的事了,以后有进展再来报告。

目前可以报告的是,原始日志显示,百度及Google蜘蛛都抓取正常,已经抓取了301及转向后的页面。我是26号凌晨4-6点安装SSL证书、加301转向的,26号中午Google已经索引了几十个https页面(然而,没有首页,可能对待首页比较谨慎):

Google索引的https页面

并且一些https页面(并不是所有已经索引了的https页面)已经进入排名,和原来的http版本位置基本是一样的。

百度到目前为止,还没有索引https页面。

尽量改正外部链接

可能的话,把外部链接改到新的https地址。所以,再次呼吁,网站上有我博客链接的朋友,麻烦把链接从:

http://www.seozac.com

改到

https://www.seozac.com

谢谢。并祝所有读者春节快乐。

作者: Zac@SEO每天一贴
版权属于: 中新虚拟主机
版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

66 条评论 “怎样把网站从http转换成https

  1. 28号:Google收录225个https页面,在搜某些词的时候,已返回https首页,如SEO博客,SEO优化。搜SEO时还是返回http版本,但位置从第4爬到了第三。百度依然没有收录https版本页面,一个都没有。

      1. 31号:Google已收录734个https页面。搜索SEO时首页消失了几个小时,然后https版本首页出现了,但退到了第7位。百度基本无变化。

        1. 2月1号:Google已收录1200个https页面,基本完成收录,sitemap中差不多就是这么多URL,大部分页面排名已转为https版本,排名无明显变化,除了搜索“SEO”时,掉到第7第二天了。百度中首页的https版本又消失了,抓取正常,检查日志确定有抓到301。

          1. 2月3号:百度收录的https首页又出现了几个小时,并且搜索某些词时返回了https版本,如搜索“SEO服务”、“SEO每天一贴”。但只出现了几个小时。而且注意到百度收录了部分amp页面。Google基本没变化,搜索“SEO”排名爬到第6。

          2. 2月5号:搜索“SEO”在百度的排名掉到第2页去了,在第一页稳定了很长时间了。不知和改https有没有关系。

          3. 2月8号:百度收录了一些https页面,但基本没有在搜索关键词时出现,只是搜索inurl时出现几个。

          4. 2月9号:百度收录了https首页及几个其它页面,并且在搜索中返回了,排名没有明显变化。貌似百度不能很好支持https版的inurl指令,不知道收录了多少https页面。

          5. 2月12号:Google搜索“SEO”排名下降了不少。有时候第10,有时候掉到第二页,其它词没什么变化。百度搜索“SEO”时稳定返回https版本了,位置没大变化。360搜索彻底被搞糊涂了,搜索“SEO”找不到这个博客了,以前一直稳定在第5,6位左右。看来还是有技术差距啊。

    1. 这个转换还是有点复杂的,对于我这个技术很菜的站长来说,还是不转换的好,等以后门槛降低了,我在换到https也不迟。虽然排名有有待,但是我认为,影响不是很大。

  2. 最近才开始学习优化,初出茅庐,希望得到您的指点啊,非常感谢
    我看到你的博客有写到未来趋势是移动页面将决定搜索排名,16年11.4谷歌开始小面积测试。目前,国内网站是做响应式有利于seo还是pc+手机端分开url有利于seo?

  3. Zac老师,最近我在做外贸,接受一个站点在考虑把http转化成HTTPS,因为之前的外链都是http,现在转化成https之前的外链还有效吗?毕竟谷歌对于外链的重视程度还是比较高的

  4. 我也全部换成https了,花了4千块,也在持续观察搜索引擎的表现.
    以前用http网址发的外部链接还有效吗?这个是最大的困惑,要重新一个个修改链接地址要花费巨大的力气。

  5. 现在看来百度对https的支持非常的“弱”,处理时间很长,不像谷歌就是实时的!还好,我现在是新站启用SSL的,不是老站,就这新站的SSL验证在百度里也是至今还没有完成呢!

  6. 您好,Zac:
    我有一个问题想问一下:当我在服务器后台Cpanel面板后台设置了重定向之后。在Chrome浏览器里访问网址会报错:
    域名被重定向多次!

  7. 我也作下网站从http转换成https的反馈:
    网站是在6月11日晚上10点半左右完成http到https的全面转换(全站301、内链、CS\JS、图片路径等等),而目前百度站长工具推出了HTTPS认证功能,我是在11日晚上11点提交的认证,在12日凌晨2点通过认证,今天早上在百度里查询网站https收录情况时,发现百度已收录的链接,已经全部由http版本变更为https,仅供参考。

    我的是个小站,个人觉得百度重新抓取收录https页面应该没那么迅速,可能只是简单地将已收录的链接由http更改为https,但这个无疑也是个不错的进步了。

  8. 我把你指令的域名改成自己的,跑数据库提示错误,求教!
    SQL 查询:

    update wp_posts set post_content = replace(
    post_content, ‘http://smwlblog.com/’,
    ‘https://smwlblog.com/’)
    MySQL 返回: 文档

    #1064 – You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘://smwlblog.com/’,
    ‘https://smwlblog.com/’)’ at line 2

  9. 域名验证完成ssl证书,https+域名打开后是验证ok的谷歌浏览器显示绿色安全的页面,但是https页面和不加https 直接打开网站的页面是两个不同的页面

    请教zac,如何让这两个页面统一起来呢?

    配置是 apache+php+mysql
    证书用的是阿里云免费的dv证书,域名

  10. hello,Zac.
    我买了你的书,受益匪浅,但是在实战中,我有一个疑惑:
    https的排名优化不如http网站的排名优化。
    作为优化人员,我在两家金融公司优化过,上家平台是http,现在的这家是https,同样的优化配方,同样的一批关键词,上家公司的排名基本都在前10以内,而在现在这家却基本上是在50名以后了,而且无论是怎么组合关键词,排名效果依旧很烂。
    有更多关于https的优化方法吗?https是否真的会影响排名吗,具体的机制是什么呢?

  11. zac老师你好,请教一下,您的网站转换成https后,多久之后热门关键词完全恢复?又等了多久之后上升到更高一个位置?

    我打算换成https,主要考虑对排名的影响会不会等太久或者说恢复不到原来的位置。

    希望zac老师能抽空回复指导一下,谢谢。

    1. 转换是平顺的,排名和流量基本上没有下降。也没有明显上升。当然,我这个是很小的博客而已,大站恐怕没有这么平顺。

    1. 转https不是单纯htaccess文件中加代码的问题,其它做了吗?确认301转向正常?网站所有链接修改?外链修改?证书工作正常吗?访问各种版本时打开或转向有没有问题?

  12. zac老师wordpress网站升级到https了,问题是,把301跳转代码加入到htaccess后台,http还是不跳转到https,试了其他301跳转,还是不跳转,求指导。

  13. 我想请教一下,大站有必要做http跳转https么?
    现在基本有4,691,600个页面已被百度收录,基本都是http的,如果跳转的话,会有很大的变动么?大概会持续多久

留个言呗:

您的邮箱不会被显示在页面上。标有*的是必填项。