SEO

Pagination and SEO in WordPress: Archives, Paginated Posts and Infinite Scroll

Pagination and SEO in WordPress: Archives, Paginated Posts and Infinite Scroll

Every WordPress site with more than a handful of posts has pagination somewhere. The blog shows ten posts per page, with links to page 2, page 3 and so on. Category and tag archives paginate. WooCommerce shop and category pages paginate. Some long articles are split across several pages. Search results paginate. WordPress pagination looks simple, but the details matter for SEO.

Pagination looks like a minor technical detail, but it affects how search engines discover and understand your content. Handled badly, older posts become hard for Google to find, crawl budget is wasted on near-duplicate pages, and the wrong pages appear in search results. Handled well, it quietly does its job.

The advice around pagination has also changed over the years, and a lot of outdated recommendations are still repeated in plugins and blog posts. This article covers what matters today.

How WordPress paginates

WordPress creates paginated URLs automatically. With pretty permalinks, they look like this:

  • /blog/page/2/
  • /category/news/page/3/
  • /shop/page/2/ or /product-category/shoes/page/2/
  • /tag/wordpress/page/4/

Individual posts split with the Page Break block, or the older nextpage tag, use URLs like /post-name/2/.

The number of posts per page on archives comes from Settings, Reading, “Blog pages show at most”, unless a theme or plugin overrides it. WooCommerce has its own setting for products per page, often controlled by the theme.

Why pagination matters for SEO

Paginated archives serve two purposes for search engines. First, they’re pathways to older content. A blog post published three years ago might only be linked from page 15 of the blog archive and page 6 of its category. If search engines can’t follow those links, they may rarely revisit that post.

Second, paginated pages themselves can appear in search results, though usually page 1 of an archive is the one you want ranking.

The goal, then, is that paginated pages are crawlable, so search engines can reach deep content, while page 1 stays the main version that ranks.

The rel=”next” and rel=”prev” story

For years, the standard advice was to add rel=”next” and rel=”prev” link tags to paginated pages, telling Google they were part of a series. Many SEO plugins still output them.

In 2019, Google announced it hadn’t used rel=”next” and rel=”prev” as an indexing signal for some time. They don’t hurt, and other search engines or browsers may use them, but they don’t consolidate signals in Google. You don’t need to add them if your setup doesn’t include them, and you don’t need to remove them if it does.

Canonical tags on paginated pages

This is where many sites go wrong. A common mistake is setting the canonical tag of every paginated page to page 1. That tells Google that page 2, page 3 and so on are duplicates of page 1, which they aren’t. They contain different posts. If Google follows that instruction, it may stop crawling deeper pages and lose the links to older content.

The correct approach is self-referencing canonicals: page 2’s canonical points to page 2, page 3’s to page 3. WordPress core and the major SEO plugins do this by default. Check yours by viewing the source of a paginated archive and looking for the canonical link tag.

If it points to /blog/ instead, check your SEO plugin settings or theme.

Should paginated pages be noindexed?

Another common recommendation is to add noindex to page 2 onwards, so only page 1 appears in search results. It sounds tidy, but it has a side effect. Google has said that pages kept noindexed for a long time are eventually treated like nofollow, meaning links on them may stop being followed. That can cut off the path to your older posts.

In most cases, leave paginated pages indexable with self-referencing canonicals. Google is good at understanding that page 1 is the main archive page and rarely ranks deep paginated pages over it. If paginated pages do appear in search results for important queries, that’s usually a sign that page 1 needs better content, not that pagination needs noindex.

Make paginated pages more useful

Paginated archives often have identical titles and descriptions, with only the list of posts changing. SEO plugins usually append “Page 2 of 15” to titles automatically. That’s enough for search engines to tell them apart.

Page 1 of important archives, such as categories, deserves more effort:

  • An introduction explaining what the category covers
  • Links to the most important or evergreen posts in that category
  • A unique meta description

Show that introduction on page 1 only, so paginated pages don’t repeat it.

How many posts per page?

There’s no single right answer, but think about depth. If you have 500 posts and show 10 per page, the oldest post is 50 clicks deep through the main blog archive. Category archives, internal links and sitemaps help, but deep pagination still makes older content harder to reach.

Showing more posts per page, say 20 or 30, reduces depth. Use lightweight post cards to keep page weight reasonable. Better internal linking between related posts is even more effective, because it creates many paths to each post instead of one long chain.

Pagination links must be real links

Search engines follow links in HTML anchor elements with href attributes. Pagination built with buttons, JavaScript click handlers or links without proper href attributes may not be followed.

Check your theme’s pagination markup. It should look like this:

Not like this:

The block theme Query Pagination blocks and core functions like the_posts_pagination output proper links.

Load more buttons and infinite scroll

Load more buttons and infinite scroll replace traditional pagination on many modern sites. They can provide a nice browsing experience, but they cause problems for search engines if implemented carelessly, because search engines don’t click buttons or scroll.

The safe approach is progressive enhancement:

  • Keep standard paginated URLs, like /blog/page/2/, working and linked in the HTML.
  • Use JavaScript to enhance the experience, loading the next page’s posts when the button is clicked or the user scrolls.
  • Update the URL with the History API as new pages load, so users can share and return to their position.

That way, users get the smooth experience and search engines still find the links to page 2 and beyond. Many WooCommerce themes and infinite scroll plugins do this correctly; check by disabling JavaScript and confirming pagination links still appear.

Paginated posts

Splitting a single article across multiple pages was popular for increasing page views on ad-supported sites. For SEO and readers, it’s usually a poor choice. It spreads content and links across several URLs, and many readers dislike clicking through.

If an article is long, keep it on one page with good headings and a table of contents. If you do paginate articles, each page should have a self-referencing canonical, and the content of each page should stand on its own reasonably well.

WooCommerce specifics

Shop and category pages often have both pagination and filters, such as size, colour and price. Filters can create huge numbers of URL combinations. Pagination combined with filters multiplies them.

Keep pagination crawlable, but control filtered URLs: use canonical tags pointing to the unfiltered category for most filter combinations, or prevent crawling of filter parameters you don’t want indexed. Sorting parameters like orderby=price should almost never be indexed.

Check your setup

A quick audit:

  1. Open a paginated archive and view the source. Is the canonical self-referencing?
  2. Are pagination links real anchor links with href attributes?
  3. Disable JavaScript. Does pagination still work?
  4. Are paginated pages indexable, without noindex?
  5. Do titles include the page number?
  6. Run a crawl with a tool like Screaming Frog and check how deep your oldest posts are.

Pagination in block themes

Block themes handle archive pagination with the Query Loop block and its Query Pagination inner blocks. They output proper links by default, but there are two settings worth checking. First, whether the query inherits from the template, which it should on archive templates so WordPress’s normal paginated URLs work. A custom query that doesn’t inherit uses its own query parameter, such as ?query-1-page=2, instead of /page/2/, which is less clean and easier for SEO plugins to mishandle. Second, whether “Force page reload” is turned off, which enables client-side navigation; that’s fine as long as the links remain real anchors, which they do.

If you use several Query Loops on one page, such as a featured posts row above the main list, make sure only the main loop paginates. Paginating secondary loops creates extra URL variations nobody needs. Get WordPress pagination right once in your theme, and it quietly supports your SEO for years.

Frequently asked questions

Should I include paginated pages in my sitemap?

It isn’t necessary. Sitemaps should list your actual content pages, which helps search engines find old posts directly regardless of pagination depth.

Why is page 2 of my blog showing in Google?

Usually because Google thinks it’s relevant for a query. It’s rarely a problem. Improving page 1 and internal linking usually resolves it naturally.

Does infinite scroll hurt SEO?

Only if paginated URLs aren’t available as normal links. With progressive enhancement, it’s fine.

Is it bad to have hundreds of paginated pages?

Not inherently, but very deep pagination makes old content hard to reach. Use sitemaps, related posts and category structure to give older posts shorter paths.