Pagination
Pagination is a list split over several pages, such as ?page=2 or /page/2/. Here is what changed in 2019, how to set it up per page, and how to handle view-all and infinite scroll on a small site.
By Théophile Louvart, founder of Porteur · Updated 14 September 2026 · Markdown
What changed in 2019
Google stopped using rel=next and rel=prev in 2019. It now treats each paginated page as its own URL. That means page two, three and four must stand on their own.
Do not point every page to page one with a canonical. That hides the rest from indexing. Each page needs a self-referencing canonical.
The correct setup per page
Give each page a stable URL
Use a clean pattern like /blog?page=2 or /category/widgets/page/3/. Avoid changing the order or count on every load.
Use a self-referencing canonical
On /blog?page=2 the canonical is /blog?page=2. The same rule for every page in the sequence.
Link pages together with real links
Add Previous and Next links as normal <a> elements. Also link to key page numbers, for example 1, 2, 3, 10, Last, to aid crawling.
Keep items reachable outside pagination
Link items from categories, tags, related items and sitemaps. Do not rely on page depth alone for discovery.
Set titles and headings clearly
For example: Title, Blog page 2 of 5. H1, Blog. Include the page number so searchers know what they will open.
A good page looks like /blog?page=3 with its own title, a self-canonical, links to page 2 and 4, and item cards linking to detail pages.
View-all pages: when to use
If a list is short, offer a single view-all page. Canonicalise the parts to the view-all. This gives one strong URL that can rank for the head term.
Do not use view-all when the list is long or heavy. It can slow to load and hurt Core Web Vitals. Keep to paginated parts in that case.
Infinite scroll that Google can crawl
Infinite scroll is fine for users, but Google needs paginated URLs behind it. Build server-rendered pages for page 2, 3 and so on, and map the scroll positions to them.
- Update the URL as the user scrolls to match the underlying page, for example pushState to /blog?page=3
- Expose the same items at the same offsets on the paginated URLs
- Make sure the Next and Previous links exist in the HTML, not only via JavaScript
How to check and measure
- Pick three sequences to audit, for example /blog, /changelog, /category/widgets
- Open page 2 and 3 of each, check the canonical points to itself
- Use View Source to confirm real <a> links for Previous, Next and numbered links
- In Search Console, inspect /page/2 and /page/3 URLs to see if they are indexed
- Check that items linked on page 3 are also reachable from their categories or sitemaps
- Watch crawl stats for spikes if you add many new pages at once
Questions
Indexable. Google treats each page as its own URL. If you set noindex on parts you risk hiding items deeper in the list from normal crawling. Keep them indexable with self-referencing canonicals and good internal links.
No. As of 2019 Google does not use rel=next or rel=prev. You can keep them for users or other systems, but they do not affect how Google treats pagination.
/blog lists the newest posts. /blog?page=2 shows the next set. Each page has its own title like Blog page 2 of 5, a self-canonical to itself, and links to page 1 and 3. Every post is also linked from its category and the XML sitemap.
Pagination splits content across distinct URLs. Lazy loading keeps one URL and loads more items on scroll. For SEO, lazy loading alone is not enough, you still need crawlable paginated URLs behind any infinite scroll.
Use view-all when the full list is short and fast to load. Canonicalise the parts to the view-all. Skip it when the list is long, where a huge page can slow down and harm Core Web Vitals.
On a small site, it is rarely a problem. Keep sequences short, ensure important items are linked outside pagination, and provide sitemaps. That keeps discovery reliable without deep crawl loops.
Sources
Check my site, free
Want a quick check on your pagination and internal links, run your URL and get three concrete findings in about thirty seconds, free.
- Free check, no card
- Read-only, your own accounts
- Readable by your agent
Read next
- GuideCanonical tags: what they do and the mistakes that cost rankings
- GuideAlternate page with proper canonical tag: what Search Console means
- GuideInternal linking for a small site: which pages link to which
- GlossaryURL parameters
- GlossaryClick depth
- GuideOrphan pages: finding the pages nothing links to
- GuideCalls to action on guides and blog posts: one, in the right place
- GuideDiscovered, currently not indexed: why Google has not crawled the page