gpt4 book ai didi

javascript - Facebook 的 BigPipe 和 SEO : Cloaking?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:29:29 24 4
gpt4 key购买 nike

我对 Facebook's BigPipe 很感兴趣显示网页时改善用户体验的技术。缺点是它严重基于 Javascript,对搜索引擎一点也不友好。

在我自己的网站上开发类似技术时,我将其设计为可以很容易地在服务器端禁用它以提供更多标准页面,而无需启用 BigPipe。现在,我正在寻找一种使其对爬虫友好的方法。

  • 最简单的方法是将非 BigPipe 内容提供给搜索引擎爬虫/机器人,并将流水线内容提供给其他内容。这不应该被视为伪装:内容完全相同,布局相同(在执行 BigPipe 的 javascript 之后)。唯一改变它的交付方式,使其对爬虫更友好。但 Google 会认为这是合法的吗?

  • 第二种方法是使用另一个 Javascript 来解决这个问题。在第一个请求中,发送非 BigPipe 页面,其中包含一些将保存一些 cookie 的 Javascript。在后续请求中,仅当出现 cookie 时才发送 BigPipe 内容。第一个页面加载不会被优化,但另一个会。看起来是个不错的解决方案,但我真的不喜欢成倍增加 cookie。

  • 第三种方式是流式传输 BigPipe 内容,不像 Facebook 那样使用 HTML 评论,而是使用 <noscript>标签。这将使 pagelet 看起来像:

    <noscript id="pagelet_payload_foo">Some content to be indexed here</noscript>
    <script>onPageletArrive({id:'foo', [...]})</script>

    而不是 Facebook 的方法:

    <code id="pagelet_payload_foo"><!-- Some content to be indexed here --></code>
    <script>onPageletArrive({id:'foo', [...]})</script>

    这看起来很棒,简单,对爬虫和用户都很友好。但这对我来说似乎有点hackish,并且在 IE 7/8 中不起作用,因为 noscript 的内容标记在 DOM 中被忽略。这将涉及这些浏览器的一些肮脏的特殊情况。

然后,我更仔细地研究了 Facebook 的功能。好像他们在做同样的事情。页面在我的浏览器中进行了优化,但不在 Google 的缓存中。我试图清除所有浏览器缓存和 cookie,然后再次请求该页面。不管怎样,我一直通过 BigPipe 获取内容。他们没有使用任何基于 cookie 的技术。

那么,问题很简单:Facebook 如何做到这一点?第一种方法会被视为隐藏真实内容,还是仅适用于 Facebook,因为它是 Facebook?还是我漏掉了什么?

谢谢。

最佳答案

简单的答案是 Facebook 区分搜索机器人并为它们提供不同的内容。这可以通过用户代理(正如我认为您在 Q 中暗示的那样)或通过查找 IP 地址以查看它是否与 Google 地址范围相匹配。

我更喜欢完全静态的版本,因为它还允许您优化速度,这是 Google(可能还有其他公司)在其索引中包含的东西。

关于javascript - Facebook 的 BigPipe 和 SEO : Cloaking?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9223816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com