ruby-on-rails - Kaminari:页面上的多个分页、索引和规范

标签 ruby-on-rails pagination seo kaminari canonical-link

在我的 ruby​​ on rails 应用程序中,我在单个页面上显示多个分页项目。对于单个项目分页,我知道如何使用分页和 rel='prev''next' 属性和规范。但就我而言,一个页面可能有多种排列组合,这让我很困惑。在我的例子中,从用户的角度来看,他/她会很高兴看到关于单个页面和分页上的对象的不同类型的信息。但是,从搜索引擎的角度来看,它不是那么友好,可能会导致部分重复内容。我的目的是获得索引页面的排名,并通过谷歌从索引和分页页面中查找内容。其中一些项目可以从其他页面以及单独页面上的不同列表中访问。我还打算制作一个 sitemap.xml 文件。

所以我有以下选择:

  1. 在索引中只保留索引页面,并使用 robots 元标记在 noindex 中制作其余分页页面。

  2. 使用请求 URL 中的规范 URL,不要使用 rel='prev' 和 'next',否则如果每个项目有 10 个分页页面,将导致 10x10= 100 个页面变体。

  3. 对其中一个分页项使用规范 URL 和 rel='next' 和 'prev',并忽略其余 URL 或对其余 URL 使用 noindex 元标记。我倾向于这个解决方案。因此,它会有效地在我的页面上制作一个分页,其余 URL 不会干扰它。
  4. 或者我应该只使用一个 page 参数并使用它对所有其他分页模型进行分页。当其中一个项目没有更多页面时,我应该显示该项目最后一页的内容并对其他项目进行分页。但我不知道如何使用 Kaminari 做到这一点?截至目前,我正在使用三种不同的 page_param 对这些模型进行分页。我认为这将是首选和更好的解决方案。

这是我当前的代码:

def show
        @state = State.published.friendly.find(params[:id])
        @cities = @state.cities.published.sorted.page(params[:page]).per(10)
        @events = @state.events.published.sorted.page(params[:cities_page]).includes(:cities).per(10)
        @articles = @state.articles.published.sorted.includes(:user).page(params[:articles_page]).per(10)
        add_breadcrumb 'States', states_url
        add_breadcrumb @state.name, @state 
    end

城市页面有两个分页项目、事件和来自该城市的新闻文章。 我使用标签显示这三个分页项。

最佳答案

为什么不为每种类型的记录创建一些简单的索引页面,并将其提供给搜索引擎呢?

采取的步骤:

  • 消除robots.txt中不同分页值的组合
  • 为每条记录(州、城市、事件等)创建索引(可能分页)页面
  • 向用户隐藏这些页面,但允许 robots.txt 访问

这消除了处理分页和索引的一些复杂性。

作为引用,我刚刚用三个不同的分页参数做了这个精确的解决方案,我计划从 SEO 的角度处理它。

关于ruby-on-rails - Kaminari:页面上的多个分页、索引和规范,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42143206/

相关文章:

ruby-on-rails - 序列化 has_many 关系的摘要

php - 将 mysqli 分页转换为准备好的语句分页

wordpress - 来自爬虫和机器人的大量错误 404

Apache > 如何分别重定向主页和其他网址?

seo - 如果您直接 301 将站点地图托管在不同的域上,它会损害 SEO 吗?

ruby-on-rails - 代理选择 : mod_proxy_balancer, nginx + 代理平衡器,haproxy?

ruby-on-rails - 命名空间或范围内的根目录不适用于 rails 5.0.0-beta1

ruby-on-rails - rails 4 where 日期时间字段上的日期方法

php - Codeigniter 将页面相互链接

javascript - Angular 应用程序提取整个集合,而不是预期的有限数量的结果