페이지네이션 Pagination
페이지네이션은 긴 목록이나 글을 1페이지, 2페이지처럼 여러 페이지로 나누는 방식(쪽 나누기)입니다. 구글은 각 페이지에 고유 URL을 주고 다음 페이지로 가는 일반 링크를 넣으라고 하며, 2페이지 이후를 1페이지의 표준으로 몰아 주는 것을 금합니다. 한때 권장하던 rel=next/prev는 2019년에 더 이상 쓰지 않는다고 밝혔습니다.
긴 목록을 쪽으로 나누는 세 가지 방식
페이지네이션은 쪽 나누기입니다. 상품 목록이나 블로그 글 목록, 긴 기사를 한 화면에 다 담지 않고 1페이지, 2페이지로 나눈 뒤 다음, 이전, 페이지 번호 링크로 넘겨 보게 하는 방식을 말합니다. 구글 문서도 페이지네이션을 다음·이전·페이지 번호 같은 링크로 결과를 한 페이지씩 넘겨 보는 방식으로 정의합니다. Google 공식 이 문서는 나머지 두 방식도 함께 정의합니다. 처음 보여 준 결과를 버튼으로 늘려 가는 더보기 방식, 그리고 화면 끝까지 내리면 내용이 더 불러와지는 무한 스크롤입니다. Google 공식
셋의 차이는 사용자에게는 취향 문제지만 검색엔진에게는 갈림길입니다. 구글은 색인할 페이지를 찾을 때 대체로 a 태그의 href 속성에 적힌 URL을 크롤링하고, 크롤러는 버튼을 누르지 않으며 사용자 동작이 있어야 화면을 바꾸는 자바스크립트 함수도 대체로 실행하지 않습니다. Google 공식 그런데 더보기와 무한 스크롤은 대개 자바스크립트로 구현됩니다. Google 공식 사람은 스크롤을 내려 2페이지 상품을 보지만 구글봇은 1페이지에서 멈추는 이유가 여기 있습니다. 자세한 원리는 자바스크립트 SEO에서 다룹니다.
구글이 문서에 적어 둔 규칙 다섯 가지
구글의 페이지네이션 문서는 길지 않습니다. 지켜야 할 것을 추리면 다섯 가지입니다.
- 각 페이지에서 다음 페이지로 가는 링크를 a href 태그로 넣어 순서대로 잇습니다. Google 공식
- 묶음의 모든 페이지에서 첫 페이지로 돌아가는 링크를 두어 시작점을 구글에 알리는 것을 고려합니다. Google 공식
- 페이지마다 ?page=2 같은 고유 URL을 주며, 구글은 이런 URL을 각각 별개의 페이지로 다룹니다. Google 공식
- 페이지 번호에 # 뒤의 조각 식별자를 쓰지 않으며, 구글은 # 뒤를 무시하고 # 뒤만 다른 링크는 따라가지 않을 수 있습니다. Google 공식
- 첫 페이지를 묶음 전체의 표준(캐노니컬) 페이지로 삼지 않고, 각 페이지에 자기 자신의 표준 URL을 줍니다. Google 공식
문서에는 rel=next와 rel=prev에 관한 문장도 한 줄 있습니다. 과거에는 이 태그로 앞뒤 페이지 관계를 파악했지만 지금은 쓰지 않으며, 다른 검색엔진은 여전히 쓸 수 있다는 내용입니다. Google 공식 이 한 줄에는 8년의 사연이 있습니다.
rel=next/prev는 2019년에 은퇴했습니다
2011년 9월 구글은 쪽 나누기에 세 가지 선택지를 내놓았습니다. 쪽 나눈 콘텐츠는 웹 어디에나 있으니 지금 그대로 두어도 되고, 전체 보기 페이지가 있거나 만들 생각이라면 전체 보기 방식의 안내를 따르고, 아니면 각 페이지에 rel=next와 rel=prev를 넣어 페이지들이 한 묶음이라는 힌트를 주라는 것이었습니다. 힌트를 주면 더 정확히 색인하고 대개 첫 페이지인 가장 관련 있는 페이지를 사용자에게 보여 주겠다고 했습니다. Search Engine Roundtable
그 뒤 여러 해 동안 이 태그는 페이지네이션 SEO의 정석으로 통했습니다. 그러다 2019년 3월 21일 구글은 색인 신호를 재평가한 결과 rel=prev/next를 은퇴시켰다고 밝히면서, 연구에 따르면 사용자는 한 페이지짜리 콘텐츠를 좋아하니 가능하면 그쪽을 겨냥하되 여러 쪽으로 나뉜 것도 구글 검색에는 문제없다고 덧붙였습니다. Search Engine Roundtable 더 놀라운 것은 존 뮬러의 설명이었습니다. 구글이 이미 수년 동안 색인에 이 태그를 쓰지 않고 있었다는 사실을 알게 되어 문서를 없앴다는 것입니다. Search Engine Roundtable 뮬러는 구글이 페이지를 발견하는 대로 색인하므로 각 페이지가 스스로 설 수 있어야 한다고 했고, 태그가 오래 쓰이지 않은 만큼 대부분의 사이트가 이 링크와 무관하게 합리적인 방식으로 쪽 나누기를 하고 있는 것 같다고 했습니다. Search Engine Roundtable
태그가 쓸모없어진 것은 아닙니다. 빙의 프레데릭 뒤뷔는 빙이 rel=prev/next를 페이지 발견과 사이트 구조 이해를 위한 힌트로 쓰되, 색인에서 페이지를 합치거나 순위 계산에 쓰지는 않는다고 밝혔습니다. Search Engine Roundtable HTML 표준에서도 next는 현재 문서가 연작의 일부이고 참조한 문서가 그 연작의 다음 문서라는 뜻으로 살아 있습니다. HTML 표준 그래서 Ahrefs는 이미 넣어 둔 rel=prev/next는 그대로 두라고 권합니다. 바꿀 이유가 없고 손대면 득보다 실이 크기 쉽다는 것입니다. Ahrefs
2페이지를 1페이지의 표준으로 몰면 콘텐츠가 고립됩니다
은퇴 소식 뒤에 흔히 나온 오답이 2페이지 이후의 캐노니컬 태그를 전부 1페이지로 돌리는 것이었습니다. Ahrefs는 발표 뒤 구현을 바꿔 오히려 사이트를 해치는 곳이 늘었다며 이것을 첫 번째 실수로 꼽았습니다. Ahrefs 뮬러는 은퇴 발표 전인 2019년 2월에 이미 이것이 가장 피해야 할 일이라고 했습니다. 2페이지는 1페이지와 같은 내용이 아니기 때문입니다. Search Engine Journal 구글이 그 캐노니컬을 받아들이면 어떻게 될까요. Ahrefs의 설명대로 여러 페이지로 가는 크롤 경로가 끊기고 그 페이지에서만 링크되던 콘텐츠가 고립됩니다. Ahrefs 100개 상품이 10쪽에 나뉘어 있는데 구글이 1쪽만 안다면 90개는 지도에서 지워진 것과 같습니다.
Semrush도 같은 처방입니다. 쪽 나누기 묶음의 각 페이지에는 자기 자신을 가리키는 캐노니컬 태그를 넣어 고유한 페이지임을 나타내야 합니다. Semrush 워드프레스처럼 /page/2/ 형태의 고유 URL과 일반 링크를 기본으로 내는 시스템이라면 고유 URL과 링크 조건은 이미 지켜지고 있습니다. 다만 워드프레스 코어는 캐노니컬을 단일 글에만 내므로, 2페이지의 캐노니컬은 SEO 플러그인 설정에서 확인해야 합니다.
noindex는 금지가 아니라 거래입니다
2페이지 이후에 noindex를 걸어야 하느냐는 질문에 구글의 답은 상황에 따라 다릅니다. 뮬러는 쪽 나눈 페이지에 특별한 SEO 요소가 있다고 보지 말고, 누군가 우리 사이트에서 이 페이지만 봤을 때 괜찮은지를 물어서 아니라면 noindex하라고 했습니다. Search Engine Roundtable 2019년에는 레딧의 비슷한 논의에서 이 페이지가 기쁨을 주는지 묻고 아니면 noindex하라고 답했고, 사이트에 그런 묶음이 몇 개 안 된다면 신경 쓰지 말고 정상적으로 색인되게 두라고 했습니다. Search Engine Journal
다만 noindex에는 대가가 있습니다. 뮬러는 noindex가 오래 유지되면 그 페이지를 색인에서 완전히 지우고 그 페이지의 링크도 더는 따라가지 않게 된다고 설명했습니다. Search Engine Roundtable Ahrefs는 noindex를 넣으면 페이지가 색인에서 빠져 순위 자격을 잃고 페이지랭크(링크로 전해지는 힘)도 전달되지 않는다고 정리하고, robots.txt로 크롤을 막는 방법도 콘텐츠 발견을 어렵게 하고 페이지를 고립시키며 페이지랭크 흐름을 끊는다고 경고합니다. Ahrefs Semrush는 링크 가치가 흐르지 않고 쪽 나누기 링크를 통한 새 콘텐츠 발견이 막힐 수 있다는 이유로 noindex를 말립니다. Semrush 정리하면 2페이지 자체는 검색될 가치가 없더라도 그 페이지에서만 링크되는 상품이나 글이 있다면, noindex는 그 링크의 힘까지 함께 끄는 스위치입니다.
홈에서 멀수록 구글은 덜 중요하게 봅니다
300쪽짜리 목록의 250쪽은 홈에서 몇 번의 클릭 뒤에 있을까요. 뮬러는 홈페이지가 가장 중요하고 홈에서 링크된 것도 대체로 중요하며, 홈에서 멀어질수록 그 페이지를 덜 중요하다고 보게 된다고 설명했습니다. Search Engine Journal 그래서 그가 권한 방법은 쪽수를 줄이는 것입니다. 카테고리나 태그로 교차 링크해 유형별로 몇 쪽 안 되는 묶음을 여러 개 만들고, 너무 평평하지도 너무 깊지도 않은 균형 잡힌 계층을 유지하라는 것입니다. Search Engine Journal 한 줄로 길게 늘어선 300쪽보다 30개 카테고리에 10쪽씩이 낫다는 뜻이며, 이는 내부 링크 설계와 크롤링 예산의 문제이기도 합니다.
필터와 정렬 페이지는 다른 문제입니다
쪽 나누기와 자주 섞이는 것이 가격순, 인기순 같은 정렬과 색상·크기 같은 필터 URL입니다. 구글 문서가 noindex 메타 태그나 robots.txt를 권하는 대상은 페이지 번호가 아니라 이런 변형 URL입니다. 같은 결과 목록의 변형이 색인되는 것을 막으려면 원치 않는 URL을 noindex로 막거나 robots.txt로 특정 URL 패턴의 크롤링을 억제하라는 것입니다. Google 공식 2페이지와 정렬 변형을 한 묶음으로 취급해 둘 다 막아 버리면 앞에서 본 고립 문제가 그대로 생깁니다.
국내 사이트에서 자주 보는 함정
국내 쇼핑몰 솔루션이나 게시판 템플릿 중에는 페이지 번호를 자바스크립트 함수로 처리해 링크에 href가 없거나 #만 있는 경우가 있고, 더보기 버튼만 두고 일반 페이지 링크는 없는 경우도 있습니다. 앞서 본 대로 구글봇은 버튼을 누르지 않고 # 뒤를 무시하므로, 이런 목록에서는 1페이지 뒤의 상품과 글이 구글에 발견되지 않을 수 있습니다. 목록의 페이지 번호를 우클릭해 새 탭에서 열기가 되는지, 주소창의 URL이 페이지마다 바뀌는지가 가장 빠른 점검법입니다.
긴 글을 여러 쪽으로 나눈 경우도 같은 규칙을 따릅니다. 각 쪽이 고유 URL을 갖고 서로 일반 링크로 이어지면 구글은 각 쪽을 따로 색인합니다. 사용자가 한 페이지짜리를 선호한다는 구글의 말대로, 꼭 나눌 이유가 없다면 한 페이지로 두는 편이 단순합니다.
참고 자료
- Pagination, incremental page loading, and their impact on Google Search - Google Search Central
- Google: Rel=prev/next Is Not An Indexing Signal Anymore; Help Docs Removed - Search Engine Roundtable
- Bing Uses rel=next and rel=prev For Discovery But Not Merging Pages - Search Engine Roundtable
- HTML Living Standard, Link types next and prev - WHATWG
- Google To Solve Pagination SEO Issue, 2011년 구글의 세 가지 선택지 - Search Engine Roundtable
- Google Shares Guidance on Pagination for SEO - Search Engine Journal
- Google On Pagination: Would It Be Okay If The Page Was Only Accessible Via Your Site - Search Engine Roundtable
- SEOs Are Breaking Pagination After Google Changed Rel=Prev/Next, Here's How to Get It Right - Ahrefs