Pagination
Phân chia nội dung dài thành nhiều trang (ví dụ: /page/1/, /page/2/) — cần xử lý bằng rel="next/prev" hoặc View All.
Pagination là gì?
Pagination (phân trang) là cách chia một danh sách nội dung dài — như bài viết blog, sản phẩm hoặc tin tức — thành nhiều trang riêng biệt để người dùng dễ duyệt. Ví dụ: /blog/page/1/, /blog/page/2/, /blog/page/3/. Mỗi trang chỉ hiển thị một phần dữ liệu, thường theo số lượng cố định (ví dụ: 10 bài mỗi trang).
Đây không phải là kỹ thuật SEO riêng lẻ, mà là một yếu tố kỹ thuật ảnh hưởng trực tiếp đến cách công cụ tìm kiếm hiểu và lập chỉ mục nội dung của bạn.
Tại sao quan trọng trong SEO?
Khi không xử lý đúng, pagination có thể gây ra ba vấn đề lớn:
- Nội dung trùng lặp: Các trang phân trang thường có tiêu đề, mô tả và phần đầu giống nhau → Google có thể coi là nội dung sao chép.
- Phân tán tín hiệu liên kết: Link từ bên ngoài hoặc internal link dàn trải trên nhiều trang thay vì tập trung vào trang chủ hoặc trang tổng quan → làm giảm sức mạnh xếp hạng.
- Lãng phí ngân sách lập chỉ mục: Google dành giới hạn crawl budget cho mỗi website. Nếu có hàng trăm trang phân trang ít giá trị, bot sẽ bỏ sót các trang quan trọng hơn.
Ngược lại, pagination được tối ưu giúp Google xác định rõ trang nào là chính, trang nào là phụ — từ đó phân bổ quyền lực liên kết hợp lý và tránh rủi ro phạt do trùng lặp.
Cách hoạt động
Pagination hoạt động dựa trên hai cơ chế chính:
- Liên kết điều hướng: Các thẻ
<a>dẫn tới trang trước/sau (ví dụ: “Trang trước”, “Trang sau”, “Trang 1”, “Trang 2”) — giúp người dùng và bot di chuyển giữa các phần. - Thuộc tính rel="next" và rel="prev": Là thẻ HTML đặc biệt đặt trong phần
<head>, báo với Google thứ tự tuần tự của các trang. Ví dụ:- Trên
/page/1/:<link rel="next" href="https://example.com/page/2/"> - Trên
/page/2/:<link rel="prev" href="https://example.com/page/1/">và<link rel="next" href="https://example.com/page/3/"> - Trên
/page/3/(trang cuối): chỉ córel="prev"
- Trên
Lưu ý: rel="next/prev" đã không còn được Google sử dụng để lập chỉ mục kể từ năm 2019. Tuy nhiên, chúng vẫn có giá trị gián tiếp trong việc hỗ trợ cấu trúc trang và đôi khi được các công cụ khác (như Bing) xem xét. Hiện tại, Google chủ yếu dựa vào thuộc tính canonical và tín hiệu nội dung để xác định trang gốc.
Hướng dẫn thực hiện
Dưới đây là cách triển khai pagination chuẩn SEO cho website WordPress hoặc site tự xây dựng:
- Xác định mục đích phân trang: Chỉ dùng khi cần thiết — ví dụ: danh mục sản phẩm có >50 mặt hàng, hoặc blog có hàng trăm bài. Không phân trang nếu chỉ có 2–3 trang.
- Chọn phương án tối ưu:
- Phương án 1 – Trang View All: Tạo một trang duy nhất chứa toàn bộ nội dung (ví dụ:
/danh-muc/view-all/). Đặt thẻrel="canonical"trỏ về trang này trên tất cả trang phân trang. Đây là cách đơn giản và hiệu quả nhất cho nội dung ngắn đến trung bình. - Phương án 2 – Canonical về trang đầu: Đặt
<link rel="canonical" href="https://example.com/danh-muc/">hoặc<link rel="canonical" href="https://example.com/danh-muc/page/1/">cho mọi trang phân trang. Phù hợp khi trang đầu mang đầy đủ tín hiệu chủ đề. - Phương án 3 – Không index phân trang: Dùng
noindex, followtrên các trang/page/2/,/page/3/… để ngăn Google lập chỉ mục, nhưng vẫn cho phép bot theo link để khám phá nội dung. Áp dụng khi phân trang chỉ phục vụ UX, không có giá trị độc lập.
- Phương án 1 – Trang View All: Tạo một trang duy nhất chứa toàn bộ nội dung (ví dụ:
- Thêm thẻ điều hướng rõ ràng: Dùng văn bản dễ hiểu (“Trang trước”, “Trang sau”, “Trang 1”, “Trang 2”) — không dùng “<<” hay “>>” thuần biểu tượng.
- Giới hạn số trang phân trang: Không để hệ thống sinh vô hạn trang rỗng (ví dụ:
/page/999/). Thiết lập 404 hoặc redirect về trang gần nhất khi vượt giới hạn.
Lỗi thường gặp
| Lỗi | Hệ quả | Cách khắc phục |
|---|---|---|
| Không đặt canonical hoặc canonical trỏ sai | Google lập chỉ mục nhiều phiên bản gần giống nhau → nội dung trùng lặp | Đặt rel="canonical" trỏ về trang đầu hoặc trang View All trên mọi trang phân trang |
| Dùng rel="next/prev" mà thiếu rel="canonical" | Thiếu tín hiệu rõ ràng về trang gốc → Google chọn sai trang đại diện | Bổ sung canonical ngay cả khi dùng next/prev |
| Phân trang không có nội dung độc đáo (tiêu đề, mô tả, heading) | Giảm khả năng xếp hạng và trải nghiệm người dùng | Thêm biến thể tiêu đề (ví dụ: “Danh mục sản phẩm – Trang 2”), mô tả ngắn riêng cho từng trang |
| Cho phép index trang phân trang không cần thiết | Tốn crawl budget, tăng rủi ro trùng lặp | Dùng noindex cho trang từ /page/2 trở đi, hoặc giới hạn tổng số trang được index |
Ví dụ thực tế
Một website bán hàng điện máy có danh mục Tivi với 120 sản phẩm. Thay vì để mặc định WordPress phân trang 10 sản phẩm/trang (tạo 12 trang), họ thực hiện:
- Tạo trang
/tivi/xem-tat-ca/chứa đầy đủ 120 sản phẩm (có lazy load để tải nhanh). - Đặt thẻ
<link rel="canonical" href="https://site.com/tivi/xem-tat-ca/">trên tất cả trang/tivi/page/1/,/tivi/page/2/… - Trên mỗi trang phân trang, thêm tiêu đề: “Tivi – Trang 2 | Điện Máy ABC” và mô tả riêng.
- Ngăn Google index các trang
/page/2/trở đi bằngnoindex(vì trang View All đã đủ).
Kết quả: Google chỉ lập chỉ mục trang View All, tập trung toàn bộ tín hiệu liên kết và từ khóa vào một URL duy nhất — cải thiện vị trí xếp hạng từ khóa “tivi” và “mua tivi online”.
Câu hỏi thường gặp
rel="next" và rel="prev" còn cần thiết không?
Không bắt buộc. Google xác nhận từ tháng 9/2019 rằng họ không còn dùng rel="next/prev" để xác định chuỗi phân trang. Tuy nhiên, việc giữ lại vẫn an toàn và có thể hỗ trợ một số công cụ phân tích hoặc nền tảng cũ — nhưng không thay thế được canonical.
Có nên dùng View All cho mọi danh mục?
Tùy trường hợp. Với danh mục dưới 200 sản phẩm/bài viết và tốc độ tải tốt (dưới 2s), View All rất hiệu quả. Nhưng với danh mục lớn (ví dụ: 5.000 sản phẩm), View All gây chậm trang, tăng bounce rate — lúc này nên chọn phương án canonical về trang đầu hoặc noindex phân trang.
Có thể kết hợp noindex + canonical cùng lúc không?
Có thể. Đây là thực tiễn phổ biến: đặt noindex, follow để ngăn lập chỉ mục, đồng thời giữ rel="canonical" để truyền tín hiệu chủ đề về trang gốc. Google tôn trọng cả hai thẻ cùng lúc — miễn là không mâu thuẫn (ví dụ: không canonical về một trang cũng bị noindex).