SEO
Pagination SEO là gì? Cách xử lý danh sách nhiều trang
Sản phẩm thứ 97 trong danh mục nằm ở trang 5. Nếu trang 5 không có URL riêng hoặc bị canonical về trang 1, rất có thể Google chẳng bao giờ gặp nó.
ScalioCập nhật 9 phút đọc

Pagination SEO là cách tổ chức một danh sách dài — danh mục sản phẩm, trang tổng hợp bài blog, trang kết quả — thành nhiều trang nối tiếp sao cho công cụ tìm kiếm thu thập được mọi mục trong danh sách và hiểu đúng quan hệ giữa các trang. Phân trang (pagination) là chuyện bình thường của mọi website có nhiều nội dung; vấn đề chỉ xuất hiện khi cách làm khiến trang sâu bị ẩn khỏi bot hoặc bị coi là trùng lặp.

Có một thay đổi nhiều người chưa cập nhật: Google không còn dùng rel=next và rel=prev làm tín hiệu để hiểu chuỗi phân trang. Thay vào đó, Google dựa vào việc mỗi trang có URL riêng và được liên kết với nhau bằng thẻ a href thông thường. Hướng dẫn về phân trang và tải thêm của Google Search Central mô tả ba kiểu: phân trang có số, nút “Xem thêm” và cuộn vô hạn.
Ba kiểu hiển thị danh sách dài
| Kiểu | Người dùng thấy | Rủi ro SEO | Điều kiện để an toàn |
|---|---|---|---|
| Phân trang có số | Trang 1, 2, 3… ở cuối danh sách | Thấp nếu làm đúng | Mỗi trang một URL, có liên kết a href giữa các trang |
| Nút “Xem thêm” | Bấm để nạp thêm mục vào cùng trang | Googlebot không bấm nút | Kèm liên kết tới URL phân trang tương ứng |
| Cuộn vô hạn | Mục mới tự tải khi cuộn | Googlebot không cuộn như người dùng | Mỗi khối tải thêm ứng với một URL riêng, cập nhật URL khi cuộn |
Phân trang khác với bộ lọc và sắp xếp. Trang 2 của danh mục “Váy công sở” chứa sản phẩm khác trang 1 — đó là nội dung riêng cần được khám phá. Còn “Váy công sở, sắp xếp theo giá tăng dần” là cùng tập sản phẩm theo thứ tự khác; phần này thuộc về faceted navigation và cần xử lý riêng.
Cần chuẩn bị gì
- Danh sách mọi nơi có phân trang: danh mục sản phẩm, trang blog, trang tag, trang tác giả, danh sách dự án.
- Số mục mỗi trang và tổng số trang của từng danh sách, để biết mục sâu nhất nằm cách trang 1 bao nhiêu bước.
- Mẫu URL hiện tại: dạng tham số ?page=2 hay dạng đường dẫn /trang/2, có dùng dấu thăng (#) không.
- Một công cụ crawl để kiểm tra bot có đi tới trang cuối không, và quyền xem Search Console.
Quy trình tối ưu phân trang 6 bước
Bước 1. Tạo URL riêng cho từng trang
Mỗi trang trong chuỗi cần một URL cố định, ví dụ /vay-cong-so?page=2 hoặc /vay-cong-so/trang/2. Không dùng phần sau dấu thăng (#page=2) để đánh số trang vì Google thường bỏ qua phần fragment khi xác định URL. Chọn một mẫu và dùng nhất quán trên toàn website; trang 1 nên là URL gốc của danh mục, không tạo thêm bản ?page=1 trùng với nó.
Bước 2. Cho phép truy cập bằng link
Mỗi trang cần liên kết tới trang kế tiếp, và nên có liên kết về trang đầu, bằng thẻ a href thật chứ không phải nút JavaScript. Với danh sách rất dài, hiển thị thêm vài số trang lân cận và trang cuối giúp giảm số bước để tới trang sâu. Kiểm tra bằng cách tắt JavaScript trên trình duyệt: nếu không còn đi tới được trang 2, bot cũng có thể gặp khó.
Bước 3. Dùng canonical tự tham chiếu
Mỗi trang phân trang đặt canonical về chính URL của nó: trang 2 canonical về trang 2, trang 3 về trang 3. Lỗi phổ biến nhất là đặt canonical mọi trang về trang 1 — việc này nói với Google rằng trang 2, 3 là bản sao của trang 1, trong khi chúng chứa mục khác. Kết quả có thể là các mục chỉ có ở trang sâu bị khám phá chậm hơn. Cũng không cần đặt noindex cho trang 2 trở đi chỉ vì chúng “không quan trọng”.
Bước 4. Giữ thứ tự ổn định
Nếu thứ tự sản phẩm thay đổi mỗi lần tải trang (xáo ngẫu nhiên, ưu tiên theo tồn kho từng giờ), nội dung của trang 3 hôm nay khác hẳn hôm qua, bot khó hiểu mục nào nằm ở đâu. Giữ một thứ tự mặc định ổn định — ví dụ mới nhất trước — cho URL không có tham số sắp xếp. Mục mới thêm vào đầu danh sách sẽ đẩy mục cũ ra sau; đó là bình thường, miễn là mỗi mục vẫn có trang chi tiết được liên kết từ nơi khác.
Bước 5. Hỗ trợ infinite scroll bằng URL
Nếu giao diện dùng cuộn vô hạn hoặc nút “Xem thêm”, vẫn cần phiên bản phân trang có URL phía sau: khi người dùng cuộn tới khối thứ hai, thanh địa chỉ đổi sang URL của trang 2 (dùng History API), và URL đó mở trực tiếp phải hiển thị đúng khối nội dung tương ứng. Như vậy người dùng có thể chia sẻ hoặc quay lại đúng vị trí, và bot có đường vào mà không cần cuộn — đây cũng là một phần của JavaScript SEO.
Bước 6. Kiểm tra trang sâu
Chạy công cụ crawl từ trang chủ và xem độ sâu (số lần bấm) của trang phân trang cuối và của các sản phẩm nằm ở đó. Chọn vài sản phẩm ở trang cuối, kiểm tra trạng thái index bằng công cụ Kiểm tra URL. Nếu mục ở trang sâu thường không được index, cân nhắc giảm độ sâu: danh mục con nhỏ hơn, thêm liên kết từ bài viết liên quan, hoặc tăng số mục mỗi trang ở mức hợp lý cho người dùng.
Ví dụ thực hành: blog của xưởng in
Ví dụ giả định: một xưởng in có trang blog với khoảng 180 bài, mỗi trang hiện 10 bài, phân trang bằng nút “Xem thêm” chạy JavaScript. Toàn bộ trang được đặt canonical về /blog. Bài cũ về “in hộp giấy kraft” gần như không nhận lượt truy cập tự nhiên.
| Hiện trạng | Vấn đề | Cách sửa |
|---|---|---|
| Nút “Xem thêm” không có URL | Bot chỉ thấy 10 bài mới nhất | Thêm phân trang /blog/trang/2… với liên kết a href |
| Canonical mọi trang về /blog | Trang 2 trở đi bị coi là bản sao | Canonical tự tham chiếu cho từng trang |
| Bài cũ chỉ tới được qua trang 18 | Quá sâu | Nhóm bài theo chủ đề (in hộp, in tem nhãn, in catalogue), liên kết từ trang dịch vụ tương ứng |
Cách sửa thứ ba thực ra hiệu quả nhất: phân trang chỉ là đường phụ, còn đường chính để bot và người đọc tới bài cũ là liên kết nội bộ theo chủ đề. Trang dịch vụ “In hộp giấy” liên kết tới năm bài hướng dẫn liên quan sẽ đưa những bài đó lên gần trang chủ hơn nhiều so với trang 18 của blog.
AI giúp được gì
- Nhóm bài blog cũ theo chủ đề từ danh sách tiêu đề, để tạo trang chủ đề hoặc khối liên kết thay cho việc chỉ dựa vào phân trang.
- Rà danh sách URL crawl để phát hiện mẫu bất thường như ?page=1 trùng trang gốc, số trang vượt quá tổng số trang thực tế.
- Soạn yêu cầu kỹ thuật gửi đơn vị làm web: URL, canonical, liên kết, hành vi khi cuộn.
Quyết định số mục mỗi trang, cách nhóm danh mục là quyết định về trải nghiệm người mua — AI gợi ý được, nhưng người hiểu khách hàng mới chốt.
Sai lầm thường gặp
- Canonical tất cả trang phân trang về trang 1.
- Chỉ có cuộn vô hạn hoặc nút “Xem thêm” mà không có URL phân trang phía sau.
- Dùng dấu thăng để đánh số trang.
- Trang số vượt quá tổng số trang vẫn trả mã 200 với danh sách rỗng, thay vì trả 404.
- Vẫn tốn công viết rel=next/prev và bỏ quên liên kết a href thật giữa các trang.
Câu hỏi thường gặp
Có cần noindex trang 2, trang 3 của danh mục không?
Thường là không. Trang phân trang chứa các mục khác nhau và là đường để bot khám phá sản phẩm, bài viết. Hãy để chúng được thu thập, đặt canonical về chính nó và liên kết với nhau bằng thẻ a href.
Google còn dùng rel=next và rel=prev không?
Google cho biết không còn dùng hai thuộc tính này làm tín hiệu cho phân trang. Việc giữ chúng không gây hại, nhưng điều quan trọng là mỗi trang có URL riêng và liên kết thật tới nhau.
Cuộn vô hạn có hại cho SEO không?
Không hại nếu phía sau có các URL phân trang tương ứng, mở trực tiếp được và liên kết với nhau. Chỉ có cuộn vô hạn mà không có URL thì bot có thể chỉ thấy phần đầu danh sách.
Gom bài blog cũ thành cụm chủ đề có liên kết rõ — lên dàn ý cùng Scalio.
Điền hồ sơ thương hiệu một lần: Scalio lập chiến lược, viết bài theo đúng giọng của bạn, xếp lịch đăng và chấm điểm marketing.
Tạo tài khoản miễn phí

