【问题标题】:Ajax page part load and GoogleAjax 页面部分加载和 Google
【发布时间】:2009-06-20 08:40:39
【问题描述】:

我在页面上通过 ajax 从服务器加载了一些 div,但在这种情况下,谷歌和其他搜索引擎不会索引该 div 的内容。我看到的唯一解决方案是,它识别页面何时由搜索机器人获取并返回没有 ajax 的完整页面。 1)有更简单的方法吗? 2) 如何区分人和机器人?

【问题讨论】:

  • 上下文是什么?为什么 ajax 会首先加载 div?
  • 例如这部分的内容需要对数据库进行一些复杂的查询。

标签: javascript ajax search-engine


【解决方案1】:

您还可以在站点地图中提供指向非 ajax 版本的链接,并且当您向机器人提供该文件时,请确保已将规范链接元素包含到您想要的“真实”页面用户查看:

<html>
    <head>
        [...]
        <link rel="canonical" href="YOUR_CANONICAL_URL_HERE" />
        [...]
    </head>
    <body>
        [...]
        YOUR NON_AJAX_CONTENT_HERE
    </body>
</html>

编辑:如果这个解决方案不合适(下面的一些 cmets 指出这个解决方案是非标准的,只有“三巨头”支持),你可能需要重新考虑是否应该使-ajax 版本的标准解决方案,并使用 JavaScript 隐藏/显示信息,而不是通过 AJAX 获取它。如果获取的是业务关键信息,您必须意识到并非所有用户都启用了 JavaScript,因此他们将无法看到此信息。在这种情况下,渐进式增强方法可能更合适。

【讨论】:

  • 有趣的想法,但 canonical 不是标准,仅支持 google、yohoo 和 microsoft。
  • 该死,只有 google、yahoo 和 msft,按流量计算,这还不到所有搜索引擎的 99.99%,一个网站怎么可能靠这么少的资源生存...?-)
  • 我认为每个非英语国家都有一些特定的国家搜索引擎,比如中国的百度。
  • @ais: link rel='canonical' 是 w3c 标准
【解决方案2】:

如果您试图向用户展示与抓取工具不同的内容,Google 会感到不安。我建议简单地缓存您的查询或需要 AJAX 的任何内容,然后使用 AJAX 仅替换您需要更改的内容。您还没有真正解释这个 div 中只有 AJAX 可以提供的内容。如果您可以在没有 AJAX 的情况下做到这一点,那么您应该这样做,不仅适用于 SEO,还适用于盲文阅读器、移动设备和没有 javascript 的人。

【讨论】:

    【解决方案3】:

    您可以在robots.txt 中指定站点地图。该站点地图应该是您的静态页面的列表。您应该在同一个 URL 上向 Google 提供不同的页面,因此您应该有一个包含静态和动态内容的不同 URL。通常,静态 URL 为 .../blog/03/09/i-bought-a-puppy,动态 URL 类似于 .../search/puppy

    【讨论】:

      猜你喜欢
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 2014-12-04
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多