我在一些我根本不知道的事情上挣扎。当我ping我的网站时,我得到了这个结果:[Serve the following static resources from a domain that doesn't set cookies:]
。而且,这个结果是由我用于背景图像的图像引起的。我试图谷歌关于这个主题,但所有的答案似乎很难理解。这里有没有人知道它和任何解决它的简单解决方案?
答案 0 :(得分:7)
我会尝试给出一个非常高级别的概述,因为你没有在你的问题中给出很多具体细节。请注意,有很多方法可以解决这个问题,我将尝试提供一个我认为易于理解的解决方案。
该消息表明,如果您的网站 www.company.com ,那么您应该从 www.companycdn.com 加载静态内容。新网站( www.companycdn.com )是一个简单的静态网站,不提供cookie。
为此,您需要将静态资源(例如图像)上传到第二个域。
然后将图像路径更新到新域。例如,代替:<img src="logo.jpg"/>
,您应该将其更改为此<img src="//www.companycdn.com/logo.jpg"/>
此答案包含更多信息:https://webmasters.stackexchange.com/questions/1772/how-do-i-set-up-a-cookie-less-domain
答案 1 :(得分:7)
通常,当您提供图像,JavaScript,CSS等内容时,没有理由伴随HTTP cookie,因为它会产生额外的开销。这就是很多工具报告这一点的原因。以下是两个快速简便的选择:
选项1 - 使用CDN
使用CDN托管您的图像,该图像能够忽略cookie以及剥离cookie,这将完全阻止客户端接收Set-Cookie响应头。注意:您can't disable cookies on Cloudflare。
选项2 - 将静态资产指向新域
这是WordPress的一个例子。
define("WP_CONTENT_URL", "http://static.domain.com");
define("COOKIE_DOMAIN", "domain.com");
请参阅此帖子中有关如何解决Serve Static Content From a Cookieless Domain警告的更多信息。
答案 2 :(得分:2)
如果你是新手。我希望您首先告诉您,一旦您设置了cookie,它将在每个请求中发送到服务器。
默认情况是,它将发送到您的父域及其所有子域的所有请求。这就是cookie如何影响一切。
因此,为了让您的网站更快,您不要超载您的http请求。如果你减少饼干它会更好。
现在让我们继续讨论如何做到这一点。 使用不同的域名,您也可以限制某些子域名设置cookie,但从长远来看,它可能是一种devops责任。
例如,Quikr拥有父域http://www.quikr.com/,但从kuikr.com加载所有静态资源
http://teja1.kuikr.com/public/images/dist/RECarousel/hospitality_jobs.png
我希望这会有所帮助。谢谢!
答案 3 :(得分:0)
更好的搜索引擎排名的主要因素是实际加载速度(优化清单是次要的)。将静态资源移动到子域将增加页面加载时间而不是减少它(在大多数情况下,特别是如果我们讨论的是几个文件,css,js和一些图像)。即使使用CDN也会产生不利影响,如果您只提供一些样式表,js资源和少量图片,只需在这些工具上获得更高分数。
如果您有大量图像或非常大的静态资源,建议使用快速CDN,这将在很多方面提供帮助。
如果你这样做是为了在工具清单上得分更高,我会接受@Brian Jackson的建议,并在之前和之后与Google的Pagespeed Insights进行比较。如果您的更改确实有利于页面加载速度或使其变得更糟,那么这将为您提供答案。永远不要牺牲加载速度来检查另一个盒子,这些工具是通用的,不适用于每个特定的网站或网络应用程序。
在上图中,我指出了YSlow的建议。当我将有问题的资产移动到无cookie子域时,YSlow和Pagespeed Insights优化分数都会上升到100%,然而,加载速度略有下降(100-300ms)并导致Google对网站评级为“平均”而不是“好”。使用CDN时,速度会进一步下降,导致Google将网站速度评为“差”。不要保持100%的优化分数,而是始终追求实际速度。我可以考虑检查实际速度的最佳工具是Pingdom: