代码之家  ›  专栏  ›  技术社区  ›  Roy

搜索引擎可以索引javascript生成的网页吗?

  •  18
  • Roy  · 技术社区  · 16 年前

    像Google Index javascript这样的搜索引擎能生成网页吗?右键单击并选择由javascript生成的页面(例如使用GWT)中的“查看源代码”时,将看不到动态生成的HTML。我想,如果搜索引擎也看不到生成的HTML,那么索引就不多了,对吗?

    8 回复  |  直到 9 年前
        1
  •  13
  •   mattandrews    16 年前

    你的怀疑是正确的-JS生成的内容不能被搜索机器人所依赖。任何关闭JS的人都看不到它,而且,上次我在一个我正在工作的站点上添加了一些测试(这是一个大型的主流受众站点,每月有数十万独特的访问者),大约10%的用户没有以任何形式运行javascript。其中包括搜索机器人、禁用JS的PC浏览器、许多手机、使用屏幕阅读器的盲人……等

    这就是为什么通过JS(没有回退选项)生成的内容是一个非常糟糕的想法。

    回到基础上来。首先,使用 裸骨(X)HTML 根据类似休息的原则(至少在要求国家变更后请求的范围内)。简单的语义标记,忘记了CSS和JavaScript。

    第一步就是要正确,让你的整个网站(或者说尽可能多的有意义的网站)以这种方式为搜索机器人和类似lynx的用户代理很好地工作。

    然后添加一个 视觉层 :css/graphics/media for visual polish,但不要显著更改原始(x)HTML标记;允许原始纯文本网站保持完整并正常工作。保持标记干净!

    三是增加 行为层 :javascript(Ajax)。使用支持Ajax的JS为用户/浏览器提供更快、更流畅、更好的体验…但只有那些用户。没有javascript的用户仍然受欢迎;搜索机器人、视障人士、许多移动设备等也受欢迎。

    这叫做 渐进增强 在网页设计界。这样做,你的网站工作,在一些合理的形式,为每个人。

        2
  •  7
  •   Joel Coehoorn    16 年前

    如果搜索引擎也看不到生成的HTML,那么就没有太多要索引的内容。

    总结一下。从技术上讲,没有什么能阻止搜索引擎为他们的bot/spider实现一个javascript引擎,但这通常不是正常的。他们可以,但不会。

    另一方面,您可以嗅探搜索引擎的用户代理并为其提供可读的服务。但是搜索引擎通常不喜欢这样,如果它们检测到你发送给普通浏览器的内容存在差异,你将受到相当严重的惩罚。

        3
  •  6
  •   Diodeus - James MacFarlane    16 年前

    一条很好的经验法则:如果你能看到 Lynx ,它可以被谷歌索引。

    Lynx是一个很好的测试,因为它也能让你了解盲人的屏幕阅读器也能看到你的页面。

        4
  •  2
  •   Adam Pope    16 年前

    谷歌正致力于执行简单的javascript来发现一些内容,但它们肯定不会执行完整的脚本。如果您担心SEO,那么您需要考虑提供页面的静态版本。

        5
  •  2
  •   chris.f.jones    16 年前

    在GWT中有几种方法可以处理这个问题, this 是一个关于这个主题的伟大讨论。 似乎最好的选择是当用户代理是bot时提供静态SEO内容,只要SEO内容与通过GWT路由提供的内容相同。这可能需要很多工作,但是如果你真的想要一个为搜索引擎优化的完全丰富的GWT应用程序,它可能是值得的。

        6
  •  2
  •   Adam    9 年前

    是的,谷歌(和最有可能的必应)将动态生成HTML索引。请在此处查看更多详细信息: http://searchengineland.com/tested-googlebot-crawls-javascript-heres-learned-220157 .

        7
  •  1
  •   jmarranz    14 年前

    看看 Single Page Interface 关于SPI(Ajax密集型)应用程序如何被谷歌和其他爬虫程序索引的宣言。有多困难取决于使用的Web框架。

        8
  •  0
  •   Ravinder Payal    9 年前

    即使他们执行基本的 JavaScript 大多数网站使用 LIBRARIES FRAMEWORKS 我不认为像google-bot或其他蜘蛛这样的机器人也能加载 Js 与网页链接的文件,如果不加载这些文件,JS代码将产生错误。

    /*Correct Me If I am wrong*/