구조·마크업 · 공식 문서

페이지네이션 방식 비교와 크롤링되는 구현 기준

페이지마다 ?page=n 같은 고유 URL을 주고, 각 페이지에서 다음 페이지로 <a href> 링크를 두면 구글이 목록 뒤쪽까지 찾아갑니다. 더보기 버튼과 무한 스크롤도 뒤에 같은 페이지 URL을 두어야 하며, 2페이지 이후는 자기 자신을 캐노니컬로 둡니다.

상품·게시글·자료가 쌓이면 목록을 나눠 보여 줍니다. 사용자에게는 첫 화면이 빨라지는 일입니다.

구글에게는 뒤쪽 항목을 찾는 길이 바뀌는 일입니다. 나누는 방식에 따라 2페이지 이후의 항목이 아예 발견되지 않을 수 있습니다.

발견 01

목록 방식 3가지 중 구글이 그대로 따라가는 것은 <a href> 로 된 페이지 번호입니다

When crawling a site to find pages to index, Google generally crawls URLs found in the href attribute of <a> elements. Google's crawlers don't "click" buttons and generally don't trigger JavaScript functions that require user actions to update the current page contents.

구글은 색인할 페이지를 찾을 때 대개 a 요소의 href 에 있는 URL을 크롤링합니다. 구글 크롤러는 버튼을 누르지 않고, 사용자 동작이 있어야 내용을 바꾸는 자바스크립트도 대개 실행하지 않습니다.

Google Search Central 「Pagination, incremental page loading, and their impact on Google Search」
방식사용자 장점사용자 단점크롤러가 뒤쪽을 찾는 길공식 문서 정의
페이지 번호Gives users insight into result size and current position전체 결과 수와 지금 위치를 알 수 있습니다.Viewing more requires new page loads더 보려면 새 페이지를 불러와야 합니다.번호가 <a href> 링크면 구글이 따라가 뒤쪽 페이지를 찾습니다.Pagination: Where a user can use links such as "next", "previous", and page numbers to navigate between pages that display one page of results at a time.다음·이전·페이지 번호 링크로 한 번에 한 페이지씩 결과를 넘겨 봅니다.
더보기 버튼Can inform user of total result size (on or near the button)버튼 위나 옆에 전체 결과 수를 알려 줄 수 있습니다.Can't handle very large numbers of results as all of the results are included on a single web page결과가 모두 한 페이지에 들어가므로 아주 많은 결과는 감당하지 못합니다.버튼만 있으면 구글은 누르지 않습니다. 뒤쪽 묶음의 ?page= URL 링크를 함께 둡니다.Load more: Buttons that a user can click to extend an initial set of displayed results.버튼을 눌러 처음 보인 결과에 더 붙입니다.
무한 스크롤Uses a single page for all content모든 콘텐츠를 한 페이지에 담습니다.Can lead to "scrolling fatigue" because of unclear result size결과가 얼마나 되는지 몰라 스크롤 피로가 생길 수 있습니다.스크롤만으로는 뒤쪽이 열리지 않습니다. 묶음마다 URL과 순서 링크를 두고 History API 로 주소창 URL을 바꿉니다.Infinite scroll: Where a user can scroll to the end of the page to cause more content to be loaded.페이지 끝까지 스크롤하면 콘텐츠가 더 불러와집니다.
장단점 칸은 구글 문서의 비교표에서 한 줄씩 옮겼습니다. 크롤러 칸은 같은 문서의 「How Google indexes」 구간을 방식마다 적용한 것입니다.

방식을 고르는 일은 사용자 경험의 문제이고, 크롤링은 그 밑에 URL과 링크를 깔면 풀립니다. 그래서 더보기나 무한 스크롤을 써도 됩니다.

조건은 하나입니다. 버튼과 스크롤 뒤에도 사람이 열 수 있는 페이지 URL이 있어야 합니다.

발견 02

뒤쪽까지 크롤링되는 페이지네이션의 구현 기준은 8가지입니다

구현 기준하는 일공식 문서 원문
다음 페이지 링크페이지마다 다음 페이지로 가는 <a href> 링크를 둡니다.To make sure search engines understand the relationship between pages of paginated content, include links from each page to the following page using <a href> tags.나뉜 페이지 사이의 관계를 알리려면 각 페이지에서 다음 페이지로 a href 링크를 겁니다.
첫 페이지 링크모든 페이지에서 목록 첫 페이지로 돌아가는 링크를 둡니다.In addition, consider linking from all individual pages in a collection back to the first page of the collection to emphasize the start of the collection to Google.모든 페이지에서 목록 첫 페이지로 돌아가는 링크를 두면 목록의 시작을 구글에 강조할 수 있습니다.
페이지마다 고유 URL?page=2 처럼 페이지 번호를 URL에 넣습니다.Give each page a unique URL. For example, include a ?page=n query parameter, as URLs in a paginated sequence are treated as separate pages by Google.페이지마다 고유 URL을 줍니다. 나뉜 페이지의 URL은 각각 별개 페이지로 다뤄지므로 ?page=n 파라미터를 넣습니다.
자기 자신 캐노니컬2페이지 이후의 캐노니컬을 첫 페이지로 돌리지 않고 각자 자기 URL로 둡니다.Don't use the first page of a paginated sequence as the canonical page. Instead, give each page its own canonical URL.첫 페이지를 캐노니컬로 쓰지 말고, 페이지마다 자기 캐노니컬 URL을 줍니다.
# 번호 쓰지 않기#page=3 같은 프래그먼트 대신 ?page=3 을 씁니다.Don't use URL fragment identifiers (the text after a # in a URL) for page numbers in a collection. Google ignores fragment identifiers.페이지 번호에 # 뒤 프래그먼트를 쓰지 않습니다. 구글은 프래그먼트를 무시합니다.
제목·설명은 같아도 됨페이지마다 제목을 억지로 다르게 지을 필요가 없습니다.You can use the same titles and descriptions for all pages in the sequence.나뉜 페이지들에는 같은 제목과 설명을 써도 됩니다.
rel=next·prev 에 기대지 않기구글은 이 태그를 쓰지 않으므로 본문의 <a href> 링크로 순서를 잇습니다.Google no longer uses these tags, although these links may still be used by other search engines.구글은 rel=next·prev 태그를 더 이상 쓰지 않지만, 다른 검색엔진은 쓸 수 있습니다.
필터·정렬 URL 정리정렬만 바뀐 목록 URL은 noindex 나 robots.txt 로 정리합니다.To avoid indexing variations of the same list of results, block unwanted URLs from being indexed with the noindex robots meta tag or discourage crawling of particular URL patterns with a robots.txt file.같은 목록의 변형이 색인되지 않게 noindex 로 차단하거나, robots.txt 로 특정 URL 패턴의 크롤링을 줄입니다.
필터·정렬 URL의 판단은 「URL 필터 파라미터」 편에, ?page= 외의 파라미터 처리는 「URL 파라미터」 편에 자세히 적었습니다.

2페이지 이후의 캐노니컬을 첫 페이지로 돌리는 구현이 흔합니다. 구글 문서는 첫 페이지를 캐노니컬로 쓰지 말라고 직접 적었습니다.

rel=next·prev 는 지워도 되고 남겨도 됩니다. 구글은 쓰지 않지만 다른 검색엔진은 쓸 수 있다고 적었습니다.

발견 03

더보기와 무한 스크롤은 묶음마다 ?page= URL을 두고 순서대로 링크해야 합니다

할 일공식 문서 원문
묶음마다 고정된 고유 URLGive each chunk its own persistent, unique URL.덩어리마다 바뀌지 않는 고유 URL을 줍니다.
절대 페이지 번호One way this can be done is to use absolute page numbers in the URL, for example by using ?page=12 as a query parameter. Avoid using relative elements like ?date=yesterday in these URLs.URL에 ?page=12 처럼 절대 페이지 번호를 쓰는 방법이 있습니다. ?date=yesterday 같은 상대 값은 피합니다.
URL끼리 순서 링크Link sequentially to the individual URLs so that search engines can discover the URLs in a paginated set.검색엔진이 나뉜 URL들을 찾을 수 있게 순서대로 링크합니다.
스크롤하면 주소창 URL 바꾸기When a new page chunk is loaded in response to the user scrolling, and it becomes the primary visible element for the user, update the displayed URL using the History API.스크롤로 새 덩어리를 불러와 그것이 주로 보이게 되면 History API 로 주소창 URL을 바꿉니다.
원문은 구글 「Fix lazy-loaded content」의 무한 스크롤 구간입니다. 지연 로딩 방식 전체는 「레이지 로딩 SEO」 편에 자세히 적었습니다.

발견 04

링크로 다 닿지 않는 상품은 사이트맵이나 머천트 센터 피드로 함께 알립니다

In addition to best practices, such as making sure links on your site are crawlable, consider using a sitemap file or a Google Merchant Center feed to help Google find all of the products on your site.

크롤링 가능한 링크 같은 권장사항에 더해, 사이트맵이나 구글 머천트 센터 피드로 사이트의 모든 상품을 알리는 것을 검토합니다.

Google Search Central 「Pagination, incremental page loading, and their impact on Google Search」

사이트맵은 링크를 대신하지 않고 보탭니다. 목록 링크를 먼저 고치고, 상품·글 상세 URL을 사이트맵에도 넣습니다.

발견 05

목록이 뒤쪽을 숨기는 모양은 B2B·B2C·B2G 사이트마다 다릅니다

예시 ① 쇼핑몰 카테고리의 더보기 버튼(B2C)

카테고리마다 상품 20개를 보이고 나머지는 더보기 버튼으로 붙이는 구조입니다. 버튼만 있으면 구글이 따라갈 링크는 첫 20개 상품까지입니다.

버튼 아래에 ?page=2, ?page=3 링크를 두고, 버튼을 누르면 주소창도 그 URL로 바꿉니다.

예시 ② 문의형 기업 사이트의 기술 자료실(B2B)

자료실 페이지 번호가 #page=3 으로 바뀌는 구조입니다. 구글은 # 뒤를 무시하므로 모든 번호를 같은 페이지로 봅니다.

번호를 ?page=3 으로 바꾸고 페이지마다 자기 자신을 캐노니컬로 둡니다.

예시 ③ 공공기관 누리집의 공지사항 목록(B2G)

페이지 번호가 href 없이 자바스크립트 함수 호출로만 동작하는 경우입니다. 사람은 넘길 수 있어도 크롤러에게는 따라갈 href 가 비어 있는 상태입니다.

번호마다 ?page= URL을 href 에 넣고, 함수는 그 위에 덧붙여 씁니다.

그럼 지금 목록은 어떤 순서로 점검하나요?

  1. 목록 페이지에서 2페이지로 가는 요소가 <a href="…?page=2"> 인지 소스에서 봅니다.
  2. 2페이지 URL을 새 창에 직접 열어 같은 항목이 나오는지 확인합니다.
  3. 2페이지의 캐노니컬이 자기 자신 URL인지 봅니다.
  4. 페이지 번호가 # 뒤에 붙어 있으면 ?page= 로 바꿉니다.
  5. 더보기·무한 스크롤이면 뒤에 ?page= 링크와 History API 로 주소창 URL을 바꾸는 처리를 붙입니다.
  6. 정렬·필터 URL은 noindex 나 robots.txt 로 정리하고, 상세 URL은 사이트맵에 넣습니다.

조사 방법

  • Google Search Central 「Pagination, incremental page loading, and their impact on Google Search」 (문서 수정일 2025-12-10) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/specialty/ecommerce/pagination-and-incremental-page-loading
  • Google Search Central 「Fix lazy-loaded content」 (문서 수정일 2025-12-10) · 최종 확인일 2026-10-25 · https://developers.google.com/search/docs/crawling-indexing/javascript/lazy-loading
  • 목록 방식 3가지와 구현 기준 8가지는 위 문서들이 적은 권장사항을 구현 단위로 나눠 묶은 것입니다. 묶는 방식은 편집 판단입니다.
  • 예시 ①②③은 이해를 돕기 위해 만든 가상 상황이며, 실제 기업·기관의 사례가 아닙니다.
  • 원문은 영어판(hl=en)입니다. 한국어판(hl=ko)은 Pagination 을 「페이지로 나누기」, Load more 를 「더 로드하기」로 옮겼고, 이 편은 화면에서 흔히 쓰는 「페이지 번호」·「더보기 버튼」으로 적었습니다.