关于SEO和可用性的HTTPS最佳实践


8

考虑一个页面,http://example.com该页面可以公开查看,也可以在用户验证时查看。现在,假设您在用户登录到您的网站时为每个页面启用HTTPS,但仅当他们登录时才启用。http://example.com现在,您的页面将变为https://example.com所有登录用户的页面。如果该登录用户喜欢您的页面并决定通过博客文章或社交媒体网站链接到该页面,则他们很有可能会使用URL的HTTPS版本。

从SEO角度来看,您如何避免两个URL之间出现重复内容问题?

如果用户到达HTTPS URL但未登录或没有帐户,该怎么办?是否应该重定向到HTTP版本?如果是这样,您将如何处理?

我的直觉是,对于所有可以同时在公共和登录状态下查看的页面,该页面应首先检测用户是否已登录。如果登录,则该页面仍为HTTPS或使用从HTTP版本到HTTPS的302重定向。如果用户未登录并且到达URL的HTTPS版本,则它将使用301重定向到HTTP版本。但是,我欢迎更优雅或更有效的解决方案。

编辑:我假设如果用户登录,则每个URL都应该是HTTPS(或者至少应该是一个选项),但是当我做更多研究时,也许这个假设是错误的。我看到人们实现它的方式是,他们只对发送和接收敏感数据的页面启用HTTPS:登录,购物车结帐,用户配置文件管理等。我试图找出哪种模型是最好的。

显然,Google Mail通过用户个人资料中的设置为用户提供了是否在每个页面上使用HTTPS的选项。当然,这是一个选择,但是我仍然需要解决所有身份验证状态的公开页面的行为。

因为我正在构建一个可供其他人使用的内容管理系统,所以我需要确保正确无误。网站所有者应该可以使用哪些设置?在这一点上,我正在考虑对每个页面(无论是否通过SSL保护)进行精细控制,然后对整个网站进行精细控制。但是,如果人们不了解所有问题,那么给予这种级别的控制可能是一个错误,并且最终可能导致安全问题。也许这是第一个问题。什么是适当的控制级别?什么是智能默认值?第二个是页面对用户的行为。从SEO的角度来看,我认为上述过程或使用rel="canonical" (如建议的jmb)可以工作,但是确定页面的行为以使其安全和无缝也是必不可少的。

Answers:


6

您可能需要调查<link rel="canonical" />。请参阅http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html。在评论的下方,来自Google的某人说它可以用于http / https问题。

警告:<link rel="canonical" />除了Google,Yahoo和Bing之外,我不确定搜索引擎是否以及在何种程度上受支持。如果其他引擎对您的网站很重要,则应查看其常见问题解答。

从用户角度来看:将从http登录的用户重定向到https是不安全的(如果我正确理解您想创建一个无缝过程)。在到达站点之前(重定向之前),他将通过http传输会话cookie,从而使他容易受到会话劫持。这样的用户需要从https页面再次登录。

如果用户通过https到达而未登录:根据情况(站点的大小,预期的访问量,预期的发生次数),您可以使他继续使用https。另请参阅整个网站的HTTPS/programming/174348/will-web-browsers-cache-content-over-https上有关在https上运行网站的讨论(部分情况是您的情况)。

更新:

什么是适当的控制级别?什么是智能默认值?

适当的控制级别:

  • 安全(启用https,包括登录页面及其后的所有内容)

  • 不安全(无https)。

如果您想“正确处理”,则没有中间立场。另请参阅http://paulmakowski.wordpress.com/2009/07/20/http-post-https-bad-idea//programming/274274/is-it-secure-to-submit从http形式到https

默认值:取决于您的客户是谁。


我也在考虑将此作为一种选择。我不确定的原因是,尽管它解决了SEO问题,但没有解决页面对用户的行为。有什么想法吗?
维塔士媒体

好点,我更新了答案。
JMB

在每个页面加载时重新生成会话是否可以解决会话劫持问题?
Virtuosi Media 2010年

谢谢。还有一个问题:如果人们接受用户注册,您如何看待需要SSL证书的CMS?
维塔士媒体

我认为这在很大程度上取决于目标受众。银行将其视为一项要求,即使在不涉及财务信息的非核心领域也是如此。预算中的非营利组织可能会对成本和额外的复杂性不满。
jmb

2

SSL页面没有SEO策略。缓存的部分定义是这样的:

If the request is authenticated or secure (i.e., HTTPS), it won’t be cached.

请参阅:缓存教程

因此,为了防止与可能影响排名的非SSL页面重叠,请将对SSL敏感的页面放在完全不同的URL上。

具有讽刺意味的是,我已经看到搜索引擎实际上存储并保持与HTTPS URL的链接。这与通常应该发生的情况相反,但是在页面是登录区域,主页或以其他方式重写了高速缓存编译指令以允许高速缓存的情况下会发生这种情况。我会说避免这种情况,因为您的页面通常会落入PageRank中。


1
谢谢,塔尔维(Talvi),但我想您可能误解了我的问题,该问题与浏览器缓存无关。由于搜索引擎确实会对HTTPS页面进行爬网和编制索引,因此,如果有人链接到https版本,则意味着您面临重复的内容问题。更改URL没有帮助,因为在搜索引擎看来,http和https已经是两个不同的URL。使用不同的URL,可以有效地拆分PageRank。我的问题的核心是如何制定一项避免重复内容问题的策略。不幸的是,我认为缓存链接无法解决此问题。
Virtuosi Media

我同意Virtuosi Media-搜索引擎通常对https://-URL没有任何问题。
约翰·穆勒

1
@virtuosi你让我在那里。在搜索引擎中添加钝对象也许是笨蛋?
Talvi Watia

2

302重定向不会转移搜索排名-如果您对302网站进行批量访问,则可能会失去搜索排名。

301可以更改书签的定义,但我不希望301用户不断变化。

另外,请确保http版本包含登录表单,以便用户可以快速返回到https版本。

现在最大的问题是-如果可以通过http查看数据,为什么会有https版本?您使用尚未存在的https加密隐藏了哪些数据?

您可以创建一个https成员区域,或从http页面或其他许多不包括将整个网站同时包含在http和https上的其他选项中将表单发布到https url。

除此之外,您的想法似乎可行-但我没有内部信息可以了解Google和其他网站的运作方式,因此您实际上不确定这将如何影响您的排名(及其极端情况)最好在Google更新算法时进行彻底更改)。


我猜想我是在假设如果用户登录,则每个URL都应为https,但是当我做更多研究后,也许这种假设是错误的。我看到人们实现它的方式是,他们只对发送和接收敏感数据的页面启用https:登录,购物车结帐,用户配置文件管理等。我试图找出哪种模型是最好的。因为我正在构建一个可供其他人使用的内容管理系统,所以我需要确保正确无误。
维塔士媒体
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.