Need Guidance on SEO-Friendly Pagination / Load More Implementation | Community
Skip to main content
veerareddyc1015
Level 3
May 26, 2026
Solved

Need Guidance on SEO-Friendly Pagination / Load More Implementation

  • May 26, 2026
  • 5 replies
  • 154 views

Hi Team,

Could you please suggest the best approach for this scenario?

I have a component that reads the latest articles from article pages and displays them on a page. Currently, there are around 1500–2000 articles, and the number keeps increasing daily. Because all article links and HTML are rendered directly in the DOM, the page load time has become very high.

The current implementation is SEO/GEO friendly since search engines like Google can crawl and index all URLs available in the DOM. However, the major issue is the performance and page load time.

I’m looking for suggestions on how to improve the page performance without negatively impacting SEO/GEO. We are also considering approaches such as pagination or a “Load More” option.

 

Thanks in Advance.

Regards

Veera

Best answer by SubbaraoGa1

Hello ​@veerareddyc1015 

For this use case, the best approach is to move away from rendering all 1,500–2,000 article links/cards in the initial page HTML.

Our recommendation is to use a server-rendered paginated listing, with an optional "Load More" experience layered on top as a progressive enhancement.

Best Approach

  1. Render only the first set of articles in the initial HTML

    • For example, show the latest 12–24 articles on first load.
    • This keeps the page lightweight and improves load time, rendering cost, and Core Web Vitals.
  2. Expose crawlable paginated URLs

    • Example:
      • /articles
      • /articles/page/2
      • /articles/page/3
    • This ensures search engines can still discover deeper content without requiring all article links to be present in one large DOM.
  3. Use "Load More" only as an enhancement

    • If desired, the UI can still provide a "Load More" button for users.
    • However, it should be backed by real paginated URLs so the content remains accessible to crawlers even if JavaScript is not executed.
  4. Ensure all article pages are included in the XML sitemap

    • This is important for SEO and helps search engines discover all article detail pages without relying on one archive page containing every link.

-- the best balance

  • Rendering thousands of items in the initial DOM creates unnecessary page weight and slows down performance.
  • Keeping only the first batch in the initial HTML significantly improves user experience.
  • At the same time, crawlable pagination + sitemap coverage preserves SEO, and is a safer approach than relying on a purely client-side "Load More" implementation.
  • This also scales much better as the number of articles continues to grow.

-->What we do not recommend

  • Not recommended: rendering all article links/cards in the initial DOM.
  • Not recommended: a purely JavaScript-driven "Load More" approach with no crawlable paginated URLs behind it.

-->Additional implementation guidance

  • Keep each article card lightweight: title, link, date, image, and short summary only.
  • Make sure the article query is limited to the records needed for the current page.
  • Verify indexing/caching so the listing page remains efficient as content grows.

-->Final recommendation

In short, the preferred solution is:

Server-rendered pagination for SEO, with optional "Load More" for UX.

This gives the best outcome for both performance and search visibility.

Public Adobe documentation supporting this approach

5 replies

SubbaraoGa1Adobe EmployeeAccepted solution
Adobe Employee
May 26, 2026

Hello ​@veerareddyc1015 

For this use case, the best approach is to move away from rendering all 1,500–2,000 article links/cards in the initial page HTML.

Our recommendation is to use a server-rendered paginated listing, with an optional "Load More" experience layered on top as a progressive enhancement.

Best Approach

  1. Render only the first set of articles in the initial HTML

    • For example, show the latest 12–24 articles on first load.
    • This keeps the page lightweight and improves load time, rendering cost, and Core Web Vitals.
  2. Expose crawlable paginated URLs

    • Example:
      • /articles
      • /articles/page/2
      • /articles/page/3
    • This ensures search engines can still discover deeper content without requiring all article links to be present in one large DOM.
  3. Use "Load More" only as an enhancement

    • If desired, the UI can still provide a "Load More" button for users.
    • However, it should be backed by real paginated URLs so the content remains accessible to crawlers even if JavaScript is not executed.
  4. Ensure all article pages are included in the XML sitemap

    • This is important for SEO and helps search engines discover all article detail pages without relying on one archive page containing every link.

-- the best balance

  • Rendering thousands of items in the initial DOM creates unnecessary page weight and slows down performance.
  • Keeping only the first batch in the initial HTML significantly improves user experience.
  • At the same time, crawlable pagination + sitemap coverage preserves SEO, and is a safer approach than relying on a purely client-side "Load More" implementation.
  • This also scales much better as the number of articles continues to grow.

-->What we do not recommend

  • Not recommended: rendering all article links/cards in the initial DOM.
  • Not recommended: a purely JavaScript-driven "Load More" approach with no crawlable paginated URLs behind it.

-->Additional implementation guidance

  • Keep each article card lightweight: title, link, date, image, and short summary only.
  • Make sure the article query is limited to the records needed for the current page.
  • Verify indexing/caching so the listing page remains efficient as content grows.

-->Final recommendation

In short, the preferred solution is:

Server-rendered pagination for SEO, with optional "Load More" for UX.

This gives the best outcome for both performance and search visibility.

Public Adobe documentation supporting this approach

Level 4
May 26, 2026

Great question ​@veerareddyc1015, this is a common challenge as content scales.

The approach suggested above (server-side pagination + optional “Load More”) is definitely the right foundation. I’d like to add a few practical considerations from an SEO + AEM implementation perspective:

1. Focus on crawl depth and discoverability
Even with paginated URLs like /articles/page/2, /page/3, etc., make sure:

  • These pages are linked sequentially (prev/next navigation or visible pagination links)
  • They are not blocked by robots.txt or noindex
  • Google can reach deeper pages within a few clicks

If pagination is too deep, consider:

  • Adding category filters or topic-based grouping
  • Surface important articles higher in the first few pages


2. Avoid over-reliance on client-side rendering
Even though Google can process JS, relying only on client-side “Load More” can:

  • Delay content discovery
  • Increase crawl inefficiency

Best practice:

  • Use server-rendered pagination as primary
  • Treat “Load More” as a progressive enhancement only for UX


3. Optimize initial payload (biggest performance win)
Instead of thinking only pagination vs load more, also optimize:

  • Reduce card payload:
    • Avoid heavy images → use responsive images (srcset)
    • Minimize metadata per card
  • Lazy-load below-the-fold images
  • Cache listing responses aggressively (CDN level if possible)


4. Consider hybrid strategy (often works best)
In real-world AEM implementations, a hybrid approach works well:

  • First page: fast, SEO-optimized (20–30 items)
  • Pagination URLs: fully crawlable
  • “Load More”: enhances UX without replacing pagination
  • Optional: infinite scroll only if it updates URL state properly


5. Sitemap strategy matters more than people expect
Since you have 1500–2000 articles:

  • Ensure all article detail pages are in XML sitemap
  • Pagination pages can be included, but priority is individual article pages
  • This reduces dependency on listing pages for discovery


Final recommendation

  • Server-side pagination (authoritative source for SEO)
  • Lightweight first page (performance-first)
  • "Load More" layered on top for UX
  • Strong internal linking + sitemap coverage

This combination typically gives the best balance between Core Web Vitals, crawl efficiency, and user experience.

BrianKasingli
Community Advisor and Adobe Champion
Community Advisor and Adobe Champion
May 26, 2026

From my expewrience, each article template should expose valid Article / NewsArticle structured data, all article URLs should be included in the XML sitemap, and the article pages should follow normal SEO best practices: clean URLs, canonical tags, titles, descriptions, headings, internal links, and fast page performance.
 

For large article collections (2000+ articles), JavaScript pagination is fine, but it should still follow Google’s crawl-ability best practices. Each pagination state should have a unique, crawl-able URL such as:
 

/articles.html?page=2
/articles.html?page=3
 

The pagination links should use normal <a href=""> links so Google and AI crawlers can discover additional pages naturally. JavaScript can then progressively enhance the experience by intercepting clicks and dynamically appending content (“Load More” behavior) without requiring a full page refresh.
 

I would avoid implementations where articles are loaded only through JavaScript button actions with no crawlable URLs, because discovery becomes dependent on JavaScript execution.


For SEO/AIO, the important combination is:

  • Structured data (Article / NewsArticle)
  • XML sitemap coverage
  • Crawl-able pagination URLs
  • Internal linking between articles
  • Fast page performance and reduced DOM size


Google’s article: Pagination, incremental page loading, and their impact on Google Search https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading

veerareddyc1015
Level 3
May 27, 2026

Hi, Thanks all for your quick replies.

Is it possible to cache pages with query parameters such as /articles.html?page=3 and dynamically set the same URL in the canonical tag for each pagination state?

chaudharynick
Level 4
June 2, 2026

Hi ​@veerareddyc1015 

I agree that rendering 1,500–2,000 articles directly in the DOM is likely to become a performance bottleneck. Beyond increasing the HTML payload and TTFB, it can also negatively impact Core Web Vitals due to excessive DOM size.

One approach worth considering is a progressive enhancement pattern that balances both performance and SEO requirements:

1. Server-side render only the initial set of articles

  • Render the first 15–20 articles on page load.
  • This keeps the initial response lightweight and improves page rendering performance.

2. Use crawlable pagination as the foundation

  • Instead of a JavaScript-only button, expose the next set of results through a standard link (for example, ?page=2).
  • This ensures search engines can continue discovering content through normal crawling behavior.

3. Enhance the experience for users

  • Intercept the pagination link via JavaScript and load subsequent articles asynchronously.
  • Append the new content to the page without a full reload.
  • Optionally update the URL using the History API to preserve navigability and shareability.

From an AEM perspective, the backend implementation is equally important. If QueryBuilder is being used, pagination should be applied at the query level (p.offset and p.limit) so that only the required results are retrieved from the repository rather than fetching all articles and truncating them afterward.

For AJAX-driven requests, selector-based endpoints (for example, .list.2.json) can also help improve Dispatcher caching efficiency.

From an SEO standpoint, I would recommend relying primarily on XML sitemaps for discovery of the full article inventory rather than expecting a single listing page to expose thousands of links. Combined with self-referencing canonical tags on article pages, this is generally a more scalable and search-engine-friendly approach.

jacktorres4
Level 1
June 9, 2026

I’d use numbered pagination with real URLs and let each page load its own HTML

Add next and prev tags, keep the page size small, and leave “load more” as a simple UX layer