【问题标题】:SEO - how can a crawler be asked to wait while data loads before crawling?SEO - 如何要求爬虫在爬取数据加载前等待?
【发布时间】:2014-12-11 07:11:31
【问题描述】:

我正在使用 mvvc 框架 (Angular) 并且在获取站点数据索引时遇到了一些问题。所有静态数据都可以正常抓取,但会丢失来自云数据库的动态数据。

有什么方法可以礼貌地让爬虫等待几百毫秒再开始?

【问题讨论】:

    标签: angularjs seo firebase angular-ui-router


    【解决方案1】:

    没有办法让蜘蛛等待。这将适得其反,因为他们的工作是尽快索引数据,并且每次等待都会累积成数天/数周/数月的延迟。 (请注意,Google 已经探索了一些 javascript 渲染,但这对 XHR 内容没有帮助)。

    正确答案是探索Making AJAX Applications Crawlable。这种方法的要点是在部署过程中使用 prerender.io 之类的工具来预渲染动态内容。然后,您在站点地图中列出该内容,并在您的服务器上使用 _escaped_fragment_ 重写或元标记,如此处所述(来自入门):

    为了使没有散列片段的页面可抓取,您在页面的 HTML 头部包含一个特殊的元标记。元标记采用以下形式:

    <meta name="fragment" content="!">
    

    在这两种情况下,您仍然必须将动态内容预渲染到缓存的 HTML 页面,并在搜索引擎从您的服务器请求内容时将其提供给搜索引擎。

    【讨论】:

    • 谢谢。听从您的建议并在 node.js 服务器上安装了 prerender.io。 Prerender.io 已经适当地缓存了页面,但 GWT 获取和渲染仍然没有提取数据。是否还有其他措施可以采取?
    【解决方案2】:

    放置noindex的最佳方式,nofollow那个时候。

    完全加载数据后,您可以删除该标签。

    【讨论】:

    • 但我确实希望页面被抓取和索引 - 仅在从远程源加载数据之后。
    猜你喜欢
    • 1970-01-01
    • 2012-08-08
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 1970-01-01
    • 2016-11-21
    相关资源
    最近更新 更多