“独裁者”Google:开发者别无他选!| 极客头条
“Google AMP导致我们的网页速度降低,但我们别无他选。”
一直以来,Google 都拥有着至上的霸权地位,其现有的网速排名可以轻而易举地限制网站曝光度。AMP 虽然是一个开源项目,但是 Google 才是项目中代码和专利的所有者。
本文的作者花费了数周的努力,被 Google“强制”升级重构,却换来一个慢吞吞、交互性降低、更加笨重的网站。最终,却也是敢怒不敢言。
作者 | Walid Halabi
译者 | 弯月
责编 | 郭芮
出品 | CSDN(ID:CSDNnews)
以下为译文:
首先,很快地介绍一下。
AMP(Accelerated Mobile Pages)是一组规则,媒体(通常是提供新闻和分析内容的媒体)必须遵守这些规则才能出现在Google搜索结果的顶端,居于这个顶端位置的好处不言而喻。此外,提供的内容也必须是“富文本”的形式,也就说文章的链接中带有图片,这样才能引起更多用户的关注。各家媒体网站必须实现AMP,而这并非易事。
Google要求媒体网站有效地重新调整大量的网站布局、内容和功能,作为回报Google会优先推荐他们的网站。Google在AMP的宣传中声称其可以提高网站的速度——按理说这应该是最大的优势,而且也是Google如此力推AMP的原因。
AMP会降低网站的速度
我们团队决定,我们必须实现Google AMP。因为我们必须出现在Google搜索结果的顶端,否则我们就会被挤下去,远离潜在的读者。虽然我们真的不是很想实现AMP,因为我们的网站速度很快,我们花了很大力气巧妙地结合了缓存和最少的代码量。但是,也许有了AMP我们的网站会更快,也许Google的未来一片光明。
然而,事实并非如此。根据Google自己的Page Speed Insights(Google建议的测试工具)的测试结果,添加了AMP的文章的性能得分为80分。然而,没有AMP的文章则拿到了86分。
请注意,添加了AMP后页面出现了不流畅的现象,因为Google禁止未经授权的JavaScript交互,所以你无法点赞或发表评论。如果你点赞或试图评论,就会被导向完整版的页面。我们花费了数周的努力,却换来这样的结果:一个慢吞吞,交互性降低,更加笨重的网站。
Google不需要通过AMP按速度对网页进行排名
但是,也许是因为我们的网站做得太出色了,我们的编程人员有着非凡的能力,想想看外界那些慢吞吞的网站,如果能够提高这些网站的性能,那么即使本来就很快的网站被迫放慢速度,那也是弊大于利。
然而,Google会按照速度对网站进行排名。这也就是说,Google通过某种方式抓取了每个网站并测量了性能,而Google认为这种方式的准确度足以用来据此排名。众所周知,Google搜索结果中的位置将对一家企业的成败有着举足轻重的影响,有的人可能会一败涂地,而有的人则可以赚得家财万贯,例如这家公司就缔造了800亿的产业帝国(https://www.forbes.com/sites/tjmccue/2018/07/30/seo-industry-approaching-80-billion-but-all-you-want-is-more-web-traffic/)。
因此,你可以想象Google现有的网速排名可以轻而易举地限制哪些网站将出现在最顶端的走马灯预览中。所有性能分数低于80的网站都会被Google搜索控制台视作性能有问题,而且该网站会被降级。
但是,Google依然坚持要求你用他们的技术建设你的网站。
AMP与速度无关,真的目的在于控制
AMP是一个开源项目,在人们心中树立了平等、开放、诚实、合作的形象。然而,事实并非如此。
首先,任何想要向AMP贡献代码的人都需要签署贡献者许可协议(Contributor License Agreement,简称CLA),这样他们的代码才会被这个项目接受。这个协议要求你授予Google“永久、全球、非独占、免费、免版税、不可撤销的版权许可”。
另外,该项目的专利也有一个相同的条款。请注意,这个权利并非授予AMP项目,而是授予了Google。Google才是代码和专利的所有者。
AMP的GitHub页面上有很多反抗Google的“issue”,最为声名狼藉的一次是Google试图让邮件也采用AMP。有一个issue中有很多非Google的开发人员公开反抗Google的权力攫取,大家认为这种行为是误导用户和对用户的敌意,他们通常都会在最后添加一个拇指向下的表情符号。而Google对此做出的回应是,将该issue的优先度标记为2,意思是“需要尽快处理”和“打算实现”,但他们依然义无反顾地继续推进该项目。
还有一个issue中,用户请求Google允许他们使用超过50kb的CSS。大多数网站的CSS都很臃肿,而50kb如此小,这简直就是一个十分荒谬且武断的限制。现在的样式表中包含了样式重置用于规范不同浏览器的行为,还包含了网格系统解决恼人的布局问题,此外还包括响应式查询,保证你的网站在手机和台式机(以及平板电脑、横向显示,以及Android和iPhone)上都可以良好地运行。这些基本组件就足以让你的CSS超过50kb。如果你还想构建高级的布局,或其他独特而有吸引力的东西,那么你就要倒霉了。
Google自己的网站和应用中CSS和JavaScript塞得满满当当,这些代码构建了高级的布局和交互性,所以你可以想象,他们认为用几千字节换取交互性或独特设计的网站是值得的。只许州官放火,不许百姓点灯,他们自己可以定制,而你不行。媒体网站仅限使用少量的捆绑组件,在这样的条件下构建出一个充满个性又与众不同的漂亮网站,就好似用乐高积木搭建一个复杂的雕塑一样。
例如,你只能使用Google的lightbox来实现网页,该组件不允许用户通过点击图像本身来关闭图像,用户必须点击图像周围的黑色区域。这种实现违背了网上其他网站的惯用做法,因此用户难免会觉得不习惯,因为这种行为不符合用户的期望。如果你想构建一些非常适合用户的东西,比如向上滚动来关闭lightbox?Google却说不行,不能用Javascript,只能用这个组件。你想要添加关灯效果的按钮?Google说没有。
这就是问题的核心。如果你想尝试建立一个独特或与众不同的品牌,那么就会在Google那里不断碰壁。我们不要忘记,你还需要使用Google的域名服务,这将进一步削弱你的品牌。
当然,你也可以同时建立两个站点:一个AMP,一个非AMP。但这也无济于事。相反,你不得不加入“点击访问网站阅读全文和留言”的链接,这会让用户感到很迷惑(当然也无法吸引他们)。Google甚至鼓励媒体网站仅制作一个版本的网站,那就是AMP版本。想像一下,整个互联网中的所有媒体网站都采用同一家公司控制的30个相同的组件制作?我只想说不用了,谢谢。
Google强大的媒体武装
Google拥有至上的霸权地位。据华尔街日报报道,不满AMP的媒体网站不愿公开谈论他们遭遇的挫折,或者删除AMP的内容。一位高管表示,由于担心Google可能会“采取一些对公司有害的行为”,所以他不能就这件事发表评论。
当然,有一个技术指导委员会,共计7人,而Google员工占了3人,此外还有其他平台:微软、Twitter、Pinterest和Pantheon(一家网络主机商,出于某种原因也加入了该组织),但这些人都不是媒体内容的制作商,并不像纽约时报这样的出版商,他们只是看门人。
为什么Google有权这么做?
因为他们拥有网络,出现在Google搜索结果页面顶端就可以攫取巨额利润。如果你想围绕一个网站建立一个企业,那么你就需要想方设法爬到那个位置上。如果你想发布新闻,就需要进入头条。你不能光靠DuckDuckGo或Bing的点击,你需要Google。他们拥有搜索网络,就像他们拥有Android的应用商店一样。但是,至少在手机上你可以选择iPhone。而在网络上,除了Google,你别无他选。
用户可以通过搜索结果的网页简介了解你的网站,而根本不用点开你的网页;让Google助手阅读你网站的内容;要求各个网站通过AMP建造千篇一律的网站;以及来自Google域名的网站,种种迹象表明Google希望人们访问Google,而不是你的网站,你的网站只是为Google提供信息。最近Google的这些所有的举措都是为了让用户消费你的内容,却不访问你的网站,在有些情况下,甚至看不到你的广告,或你的订阅请求。
如果Google的用户统统可以通过即时应答和Google助手抓取的内容得到答案,并享受Google域名提供的千篇一律、缺乏交互式的网站,那么媒体网站只会为他人作嫁衣。然而,这还与ISP不同,他们一分钱都拿不到。
原文:https://unlikekinds.com/article/google-amp-page-speed,本文由CSDN翻译,转载请注明来源出处。
作为码一代,想教码二代却无从下手:
听说少儿编程很火,可它有哪些好处呢?
孩子多大开始学习比较好呢?又该如何学习呢?
最新的编程教育政策又有哪些呢?
下面给大家介绍CSDN新成员:极客宝宝(ID:geek_baby)
戳他了解更多↓↓↓
热 文 推 荐
☞ 中国程序员独闯硅谷,逆袭成美国最佳 CEO,公司市值 160 亿美元!
☞ 斯坦福区块链匪帮传奇,那些睡地毯、没日没夜写代码的编程少年
☞《权力的游戏》最终季上线!谁是你最喜爱的演员?这里有一份Python教程 | 附源码
☞ 爆料! 18张图、55个链接, 证据都在这了, 你还说自己是中本聪?
System.out.println("点个在看吧!");
console.log("点个在看吧!");
print("点个在看吧!");
printf("点个在看吧!\n");
cout << "点个在看吧!" << endl;
Console.WriteLine("点个在看吧!");
Response.Write("点个在看吧!");
alert("点个在看吧!")
echo "点个在看吧!"