我有一个网站,我在上面实现了无限滚动:当用户到达页面的末尾时,就会进行AJAX调用,并将新内容附加到页面的底部。然而,这意味着搜索爬虫无法获得第一个“分页符”之后的所有内容。例如,我有一个页面,其中列出了所有带有"infographic“标签的项目。实际上有几十个这样的项目,但爬虫只能看到前10个项目,因为其他项目是根据内容相对于浏览器窗口的位置加载的。由于爬虫没有浏览器窗口,所以根本不会加载新项目。
那么,什么才是正确的方式,让搜索爬虫通过无限滚动访问网页的全部内容,同时又允许用户享受无限滚动和没有分页的情况?
发布于 2012-10-11 22:22:27
创建“查看全部”页面
创建另一个页面,上面列出了所有内容,并链接到通常包含在无限滚动页面上的项目。然后在无限滚动页面中放置一个名为all whatever
的小链接(可能在最底部)。换句话说,如果您的页面列出了产品,则该链接应该显示为Show All Products
或类似产品。如果页面是博客文章,那么链接应该是类似All Articles
的内容。是的,人们可能不喜欢长负载,但对于谷歌来说,它很大并不重要。它将下载它,并正常地遵循其中的链接。
此外,如果您的分页正在迭代通过数万个项目,那么您可以将“查看所有页面”分解为类似于博客存档或产品目录的工作方式。关键是,您为没有的人和那些真正想要查看所有内容的人提供了一种替代方法,同时也为Google和甚至其他javascript搜索引擎提供了一种爬行您的页面清单的方法。
最后,作为次要措施,添加一个/sitemap.xml
文件,该文件包含每个商品/产品/库存或其他内容的索引。请参阅http://www.sitemaps.org/
您可以观看名为Pagination and SEO的谷歌官方网站管理员视频,该视频介绍了查看所有概念、分页、规范urls以及谷歌的rel=next和rel=prev属性。
http://www.youtube.com/watch?v=njn8uXTWiGg
发布于 2012-10-09 14:17:09
就像graceful degradation一样,对于像分页这样重要的事情,您不应该依赖JavaScript。我可能会首先实现一个普通的分页系统(搜索引擎可以索引),然后使用JS隐藏分页链接并实现无限滚动解决方案。
发布于 2012-10-11 19:19:35
正确的方法是允许无js分页。通常大多数网站所做的是在提要的底部插入一个分页按钮。当用户向下滚动时,自动分页是从提要底部的按钮操作触发的,在此过程中可能会隐藏该按钮。这意味着,文档中的html元素触发自动分页,而不是纯javascript。假设这个按钮是一个锚标签,它也提供html,那么网络爬虫就可以访问它。这里引入了@Victor Stanciu提到的优雅降级的概念:始终在标准JS响应之上提供HTML回退响应。
https://stackoverflow.com/questions/10784080
复制相似问题