【发布时间】:2014-12-11 07:11:31
【问题描述】:
我正在使用 mvvc 框架 (Angular) 并且在获取站点数据索引时遇到了一些问题。所有静态数据都可以正常抓取,但会丢失来自云数据库的动态数据。
有什么方法可以礼貌地让爬虫等待几百毫秒再开始?
【问题讨论】:
标签: angularjs seo firebase angular-ui-router
我正在使用 mvvc 框架 (Angular) 并且在获取站点数据索引时遇到了一些问题。所有静态数据都可以正常抓取,但会丢失来自云数据库的动态数据。
有什么方法可以礼貌地让爬虫等待几百毫秒再开始?
【问题讨论】:
标签: angularjs seo firebase angular-ui-router
没有办法让蜘蛛等待。这将适得其反,因为他们的工作是尽快索引数据,并且每次等待都会累积成数天/数周/数月的延迟。 (请注意,Google 已经探索了一些 javascript 渲染,但这对 XHR 内容没有帮助)。
正确答案是探索Making AJAX Applications Crawlable。这种方法的要点是在部署过程中使用 prerender.io 之类的工具来预渲染动态内容。然后,您在站点地图中列出该内容,并在您的服务器上使用 _escaped_fragment_ 重写或元标记,如此处所述(来自入门):
为了使没有散列片段的页面可抓取,您在页面的 HTML 头部包含一个特殊的元标记。元标记采用以下形式:
<meta name="fragment" content="!">
在这两种情况下,您仍然必须将动态内容预渲染到缓存的 HTML 页面,并在搜索引擎从您的服务器请求内容时将其提供给搜索引擎。
【讨论】:
放置noindex的最佳方式,nofollow那个时候。
完全加载数据后,您可以删除该标签。
【讨论】: