On-Page SEO

Pagination Markup (rel="next"/"prev")

Cặp thẻ link với rel="next" và rel="prev" giúp Google hiểu chuỗi trang phân trang là một tập hợp duy nhất, tránh duplicate content.

2 lượt xem Cập nhật: 29/05/2026

Pagination Markup (rel="next"/"prev") là gì?

Pagination Markup là cách dùng hai thẻ <link> trong phần <head> của trang web để báo cho Google biết các trang phân trang (ví dụ: trang danh sách sản phẩm, bài viết theo tháng, kết quả tìm kiếm) thuộc cùng một chuỗi liên tục. Hai thuộc tính bắt buộc là rel="next"rel="prev".

Trang đầu tiên chỉ có rel="next", trang cuối cùng chỉ có rel="prev", còn các trang ở giữa có cả hai. Đây không phải là lệnh bắt buộc Google tuân theo, mà là tín hiệu gợi ý — Google sẽ dùng nó để hiểu cấu trúc nội dung và ưu tiên lập chỉ mục đúng cách.

Tại sao quan trọng trong SEO?

Khi một danh mục có hàng chục trang phân trang (ví dụ: /san-pham/page/1, /san-pham/page/2, /san-pham/page/3), nội dung tiêu đề, mô tả và phần lớn HTML thường giống nhau. Nếu không có tín hiệu rõ ràng, Google có thể coi đây là nội dung trùng lặp (duplicate content), dẫn đến:

  • Giảm độ tin cậy với thuật toán;
  • Phân bổ quyền lực (link equity) không đều giữa các trang;
  • Chỉ lập chỉ mục một vài trang thay vì toàn bộ chuỗi;
  • Mất cơ hội hiển thị rich result dạng "danh sách phân trang" trong kết quả tìm kiếm.

Rel="next"/"prev" giúp Google tập trung vào trang đại diện chính (thường là trang đầu tiên), đồng thời hiểu rằng các trang sau là phần mở rộng hợp lý — từ đó tối ưu hóa việc thu thập dữ liệu (crawling) và xếp hạng.

Cách hoạt động

Googlebot đọc các thẻ <link rel="next"><link rel="prev"> khi thu thập trang. Dựa trên chuỗi liên kết này, Google xây dựng một "chuỗi phân trang logic" và xử lý như một thực thể duy nhất. Điều này ảnh hưởng đến:

  • Crawling budget: Google ưu tiên thu thập trang đầu và trang cuối hơn là các trang giữa nếu chuỗi dài;
  • Indexing decision: Trang đầu tiên thường được chọn làm phiên bản chính để hiển thị trong kết quả tìm kiếm;
  • Link equity flow: Quyền lực từ backlink đến bất kỳ trang nào trong chuỗi có thể được gộp về trang đầu — tùy vào cách Google đánh giá.

Lưu ý: Từ năm 2019, Google thông báo họ không còn phụ thuộc hoàn toàn vào rel="next"/"prev" để xác định phân trang. Thay vào đó, họ kết hợp nhiều tín hiệu như cấu trúc URL, nội dung, thẻ canonical và hành vi người dùng. Tuy nhiên, việc triển khai đúng vẫn là thực hành tốt — đặc biệt với site lớn hoặc có cấu trúc phân trang phức tạp.

Hướng dẫn thực hiện

  1. Xác định chuỗi phân trang rõ ràng: Chỉ áp dụng cho các trang thuộc cùng một danh mục (ví dụ: tất cả trang /blog/page/X/ hoặc /tin-tuc/trang-X.html). Không dùng cho trang con, danh mục con hoặc trang không liên quan.
  2. Đặt thẻ trong <head>: Mỗi trang chỉ có một cặp thẻ <link> — không đặt nhiều lần.
  3. Đảm bảo URL chính xác và khả dụng: Tất cả URL trong href phải trả mã trạng thái HTTP 200, không bị chặn bởi robots.txt hay noindex.
  4. Áp dụng đầy đủ cho mọi trang trong chuỗi:
    • Trang 1: chỉ rel="next" → trỏ tới trang 2;
    • Trang 2: cả rel="next" (trỏ trang 3) và rel="prev" (trỏ trang 1);
    • Trang cuối: chỉ rel="prev" → trỏ tới trang kế trước.
  5. Kiểm tra lại sau khi triển khai: Dùng công cụ URL Inspection trong Google Search Console để xác nhận Google nhìn thấy và hiểu đúng các thẻ.

Lỗi thường gặp

Lỗi Dấu hiệu Cách khắc phục
Thiếu thẻ trên một số trang Chuỗi đứt đoạn (ví dụ: trang 3 thiếu rel="prev") Viết script tự sinh thẻ theo thứ tự trang, kiểm tra thủ công từng trang đầu/cuối
URL sai định dạng hoặc không tồn tại Google báo lỗi “Crawled – currently not indexed” hoặc 404 trong báo cáo phân trang Dùng hreflang tương thích, kiểm tra đường dẫn tuyệt đối, đảm bảo không có ký tự đặc biệt hoặc khoảng trắng
Dùng cho phân trang không hợp lệ Áp dụng trên trang tìm kiếm nội bộ, trang lọc theo giá hoặc màu sắc Chỉ dùng cho phân trang tuyến tính theo thời gian hoặc thứ tự cố định — không dùng cho phân trang động theo bộ lọc

Ví dụ thực tế

Dưới đây là phần <head> của trang /tin-tuc/trang-2.html:

<link rel="prev" href="https://example.com/tin-tuc/trang-1.html" />
<link rel="next" href="https://example.com/tin-tuc/trang-3.html" />

Trang /tin-tuc/trang-1.html chỉ có:

<link rel="next" href="https://example.com/tin-tuc/trang-2.html" />

Trang /tin-tuc/trang-5.html (cuối chuỗi) chỉ có:

<link rel="prev" href="https://example.com/tin-tuc/trang-4.html" />

Nếu trang sử dụng URL tham số (ví dụ: ?page=2), cần đảm bảo tham số không gây trùng lặp — nên chuẩn hóa bằng canonical hoặc chuyển sang URL tĩnh nếu có thể.

Câu hỏi thường gặp

rel="next"/"prev" có còn hiệu lực với Google hiện nay không?

Có, nhưng vai trò đã giảm so với trước đây. Google xác nhận họ vẫn hỗ trợ và hiểu tín hiệu này, tuy nhiên không dùng nó làm yếu tố xếp hạng độc lập. Việc triển khai đúng giúp cải thiện trải nghiệm thu thập dữ liệu và tránh hiểu nhầm về nội dung trùng lặp — nên vẫn khuyến khích áp dụng.

Có nên dùng rel="next"/"prev" cùng lúc với thẻ canonical không?

Có, và nên làm. Thẻ canonical nên trỏ về chính trang hiện tại (self-referencing), vì mỗi trang phân trang là một thực thể riêng biệt về mặt nội dung (dù giống nhau phần nào). Rel="next"/"prev" chỉ hỗ trợ liên kết chuỗi — không thay thế chức năng của canonical.

Có thể dùng cho phân trang trên AMP hoặc JSON-LD không?

Không. Rel="next"/"prev" chỉ hoạt động trong HTML chuẩn, đặt trong phần <head>. Với AMP, Google yêu cầu dùng <link rel="amphtml"> và cấu trúc phân trang riêng (AMP Carousel hoặc amp-next-page). JSON-LD không hỗ trợ pagination markup — đây là tính năng riêng của thẻ <link>.