# Paginate - Liquid Tag Reference

Source: https://support.storeconnect.com/articles/paginate-tag-reference · Last modified 21 August 2026

The `paginate` block tag wraps a `PaginatedList` collection so it actually fetches and returns results, in pages of a given size. Certain Liquid globals (for example `pricebook_entries` on `current_pricebook`) return a `PaginatedList` rather than a plain array, and require this wrapping to yield any items at all.

## Syntax


```liquid

{% paginate collection by page_size %}
  {% for item in collection %}
    <!-- Content here -->
  {% endfor %}
{% endpaginate %}
```


| Property | Value |
|----------|-------|
| **Tag Name** | `paginate` |
| **Type** | Block tag |
| **Source** | Hydrofoil (core) |
| **Arguments** | `collection` — the `PaginatedList` to page through. `page_size` — the number of items to return per page (after `by`). |

## Description

`paginate` takes a `PaginatedList` and a page size, and makes that many items available to a loop inside the block. Loop over the **same collection name** you passed to `paginate`; there is no separate `.items` accessor to unwrap:


```liquid

{%- paginate current_pricebook.pricebook_entries by 20 -%}
  {%- for entry in current_pricebook.pricebook_entries -%}
    {%- assign product = entry.product -%}
    {{ product.name }}
  {%- endfor -%}
{%- endpaginate -%}
```


:::warning
A `PaginatedList` does not lazily fetch results on its own. A plain `{% for %}` loop over one, without wrapping it in `paginate`, silently returns zero items rather than raising an error. Always wrap the loop in `{% paginate collection by page_size %} ... {% endpaginate %}` first.
:::

For an example that queries and paginates a store's full product catalog, see [Build structured data feeds for AI answer engines](aeo-geo-structured-data-feeds). For collections returned by the `query` tag, see [Liquid query tag reference](liquid-query).

---

## Follow StoreConnect

- [Email Newsletter](https://getstoreconnect.com/c/lp-newsletter)
- [LinkedIn Newsletter](https://www.linkedin.com/build-relation/newsletter-follow?entityUrn=7444956928444862464)
- [YouTube](https://www.youtube.com/channel/UCngKdP2x8l1wcbAKW3tvU8g)
- [LinkedIn](https://www.linkedin.com/company/storeconnect)
- [X / Twitter](https://x.com/storeconnecthq)

## Popular Links

- [Partners](https://getstoreconnect.com/partners)
- [News](https://getstoreconnect.com/articles/news)
- [Events](https://getstoreconnect.com/articles/events)
- [Feature Comparison](https://getstoreconnect.com/how-we-compare)
- [Download a free trial](https://appexchange.salesforce.com/appxListingDetail?listingId=a0N3A00000FMkeKUAT)
- [Book a Demo](https://getstoreconnect.com/contact)

## Documentation

- [Help documentation](https://support.storeconnect.com/help-documentation)
- [AI agents](https://support.storeconnect.com/ai)
- [Videos & tutorials](https://support.storeconnect.com/videos-tutorials)
- [Developer reference](https://support.storeconnect.com/developer-reference)
- [Release notes](https://support.storeconnect.com/release-notes)
- [Troubleshooting](https://support.storeconnect.com/troubleshooting)
- [Trust Center](https://trust.getstoreconnect.com/)
- [Status Page](https://status.storeconnect.com/)

## Contact

- info@getstoreconnect.com
- US +1 415 745 3230
- AUS +61 2 8365 2308

100 S Ashley Dr, Suite 600-2461
Tampa FL 33602-600 USA

Level 22, Sydney Place
180 George Street
Sydney, NSW, 2000, AUS

---

StoreConnect Support — https://support.storeconnect.com/articles/paginate-tag-reference