HTTPS改造:那次,我差点搞丢整站流量
那天下午,我正刷着微博摸鱼。“网站打不开了!”群里突然炸锅。
我切到监控,果然,流量曲线直接断崖。心里一沉——该不会证书过期了吧?一看,还真是。过期三天了。为啥没报警?之前配的监控脚本,迁移服务器时忘加了。我操。
后面的四个小时,就是噩梦。续费证书,上传,重启服务,等待DNS生效……用户投诉不断。老板站我身后,一句话没说。我更情愿他骂我一顿。
这件事之后,我把HTTPS改造提上了最高优先级。不是只装上就完——是要彻底、稳妥、不留隐患。
说实话,那之前,我真没把HTTPS当个大事。不就是地址栏多个锁吗?能有啥影响?但那次事故后,我仔细研究了Google的排名因素和浏览器策略,才发现,水太深。
HTTPS对SEO,远不止一个锁那么简单
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/51520092-33d1-4b23-8a7b-520a1a8619aa.jpg
HTTPS对SEO,远不止一个锁那么简单
很多SEO教程会跟你扯:HTTPS能加密数据,保护隐私,让用户更信任。这些都对,但太虚了。我说点实在的。
Google早在2014年就宣布,HTTPS是排名信号。虽然只是轻微加权,但这些年权重一直在增加。特别是对于电商、金融这类需要输入敏感信息的站,非HTTPS可能会被直接降权。而且,Chrome从2017年开始,对所有非HTTPS网站标记“不安全”。这个红色的感叹号,用户看了会怎么样?直接关掉。我做过测试,落地页从HTTP切到HTTPS后,转化率提升了8%。仅仅是因为那个小锁。
还有抓取效率。HTTPS站点,搜索引擎蜘蛛会更频繁、更深入地抓取。为啥?因为更安全,不太可能是垃圾站。我有个新站,上线就是HTTPS,三个月就开始有长尾流量。而同期的HTTP实验站,收录还不到一半。这不是玄学,是Google的偏好。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/698af42d-633c-40c2-bd53-4f6569d0868a.jpg
谷歌Chrome浏览器地址栏不安全警告对比截图
另一个坑是referrer数据。从HTTPS页面跳转到HTTP页面,referrer会丢失,这在统计后台看到的就是“直接流量”,你就永远不知道这部分流量哪来的。所以,为啥好多人做了HTTPS后,发现直接流量暴涨?不是真的暴涨,是来源被隐藏了。这对SEO分析是致命的。你必须全站HTTPS,连外部链接也要尽量指向HTTPS。
混合内容,一个折腾死人的小妖精
全站上了证书,你以为就完事了?
打开页面,地址栏的小锁啪一下,断了。或者出现一个灰色三角形。你点开看,提示“此页面包含不安全内容”。这就是混合内容(Mixed Content)。
说白了,就是你的页面用HTTPS加载了HTTP的资源,比如一张图片、一个CSS、甚至一个跟踪脚本。浏览器为了安全,会阻止这些资源,或者给出警告。对于SEO来说,Google会把这种页面视为不完全安全的,权重打折。
我还记得那次,为了排查一张图片,耗了一下午。页面里一张商品图,死活显示不出来。查代码,src写的是http://。把站内所有资源全改成了//或https://。但是外部引用的呢?比如统计代码、广告代码。有些广告联盟还不支持HTTPS,你说气人不气人?
解决方法:用Content Security Policy (CSP) 头来干掉被动混合内容。不过更实际的,是用相对协议(去掉前面的http:)或者直接用https:。再有就是用插件或者脚本扫描整个站点,把外部HTTP请求一个一个找出来。chrome开发者工具的安全面板是好帮手。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/18e8b252-86e6-433b-9422-5debdf14eb3d.jpg
浏览器开发者工具混合内容警告安全面板截图
迁移不是换个S那么简单——SEO平滑过渡指南
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/949f5cb8-648b-4667-8c71-303f3b93a3f4.jpg
迁移不是换个S那么简单——SEO平滑过渡指南
网站从HTTP迁到HTTPS,在SEO眼里,这就是换域名。因为http://www.example.com和https://www.example.com是不同的URL。你之前积累的权重、外链,都要传递过来。处理不好,流量腰斩是分分钟的事。
我的操作清单:
1. 全站301永久重定向。所有的HTTP请求,一个不落,301到对应的HTTPS版本。而且,要确保是逐个URL对应,不要全甩到首页。这是最最关键的一步。我用nginx,规则写了整整半天,各种参数、路径都得考虑。测试的时候用curl -I看返回状态码,200?不对,要的是301。
2. 在Google Search Console里添加并验证HTTPS版本的资源,然后使用“地址更改”工具通知谷歌你换家了。这个功能现在已经没了,但搜索引擎会自动识别301,不过主动提交地图会加快进程。
3. 更新所有内部链接,包括导航、文章里的旧链接、sitemap、canonical标签。sitemap里URL全改成HTTPS的。canonical也指到HTTPS版。这个容易忘,一忘就会出现HTTP和HTTPS同时被索引,权重分散。
4. HSTS,也就是HTTP严格传输安全。加个头部,告诉浏览器:以后访问我这个域名,强制用HTTPS,不许用HTTP。这能避免每次都先请求HTTP再重定向,省时间,也防中间人攻击。但注意,HSTS一旦开启,回退很难。先设置一个小的max-age,比如一天,测试没问题再加大到一年。我当时手滑直接设了一年,然后发现某子域名没配证书,内部系统打不开了……又是血泪。
5. 外部链接怎么办?能改的改,不能改的就靠301。但最有效的还是去联系对方站长改,不过一般没人理你。所以301是命根子。
https://obgeo.oss-cn-beijing.aliyuncs.com/pvc-articles/f6c27f9d-2ca2-451d-adbe-345b399efe2c.jpg
HTTPS迁移301重定向配置代码示例截图
另外,速度问题。以前有人说HTTPS慢,那是在老旧的服务器上。现在有了HTTP/2、TLS 1.3,加密开销基本可以忽略。而且HTTP/2的多路复用,反而能提升加载速度。前提是你得用对。我上了HTTPS后,把服务器也启用HTTP/2,页面加载时间减少了20%。这个在SEO里也是加分项。
好了,大概就这些。回忆起来,那真是一段焦头烂额的日子。但现在回头看,HTTPS改造是必须走的路。不说别的,就为了那个绿色小锁,为了用户愿意多停留一秒。
现在我每三个月设个日历提醒,检查所有站点证书。那台忘记加监控的服务器,早就加上了prometheus的SSL过期告警。人啊,总是被坑一次才长记性。但这些坑,希望你不用再踩。
总结一下,HTTPS改造三要素:强制301、混合内容清零、性能跟上。哦,还有——别忘续期。
就这样。 说得很客观中立,没有偏激言论,理性讨论就该是这个样子。 认真看完了整篇内容,感觉受益匪浅,期待楼主后续更多优质的分享。 对新手特别友好,解释得很细致,就算零基础也能看懂大半。 不仅内容好,语气也很温和,这样的交流氛围真的很不错。
页:
[1]