Ngọc Thanh
- 398
- 23/11/2024
Pagination là gì? Đó là chia một trang lớn có nhiều sản phẩm, bài viết,... ra thành nhiều trang nhỏ để giúp trải nghiệm của người dùng và SEO tốt hơn, chi tiết như nào hãy cùng chúng tôi phân tích:
Pagination là gì? Các trường hợp SEO Phân Trang không đúng
Mục Lục [Ẩn]
Pagination là gì?
Pagination (Phân Trang) là chia một trang lớn có nhiều sản phẩm, bài viết,... ra thành nhiều trang nhỏ để load trang web nhanh và nhẹ hơn giúp trải nghiệm của người dùng và SEO tốt hơn nếu áp dụng đúng kỹ thuật phân trang rel = “next” và rel = “prev”
Xem thêm bài viết SEO là gì?
Các loại Pagination hiện nay
Có nhiều loại phân trang hiện nay nhưng mình sẽ chia theo 2 nhóm:
Phân trang có gắn link url vào href thẻ <a></a>: Tức là chia một trang lớn ra nhiều trang nhỏ, mỗi trang nhỏ sẽ có liên kết gắn vào thuộc tính href của thẻ <a></a> và trỏ về từng trang để xem chi tiết các bài viết từng trang. Thông thường sẽ có phân trang đánh số thứ tự từ 1, 2, 3, 4, 5,... hoặc phân trang theo trang trước trang sau.
Phân trang dùng AJAX không load lại trang: Là hình thức phân trang khi xem sản phẩm, bài viết tiếp theo sẽ không load lại toàn trang mà chỉ load một phần trên trang. Thông thường cũng sẽ có đánh số từ 1, 2, 3, 4, 5,... hoặc trang trước trang sau, có nút click xem thêm sản phẩm, bài viết, hoặc khi lăn chuột sẽ hiện dần dần các sản phẩm cho người dùng xem,.... Tất cả đều không có gắn URL và thuộc href của thẻ <a></a> mà thường dùng AJAX để load một phần của trang web.
Các trường hợp SEO Phân trang (Pagination) không đúng
Tất cả các trang con đều dùng thẻ Canonical là trang gốc
Nhiều người muốn đưa tất cả trang con trong phân trang có thẻ Canonical là trang gốc để Google hiểu đây là trang chính, nhưng đây là một sai lầm. Google sẽ hiểu đó là trang chính là đúng nhưng tất cả các trang con còn lại đều bị cho là trùng lặp với trang chính và bị loại ra khỏi công cụ tìm kiếm.
Để khai báo thẻ Canonical cho trang con như nào cho hiệu quả, dưới đây mình sẽ mô ta rõ hơn:
Kiểm tra Pagination trên thẻ Canonical
Để kiểm tra Pagination trên thẻ Canonical ở đây mình vào trang phụ là trang 2 sao đó để chuột trên giao diện trang web rồi nhấn chuột phải chọn kiểm tra, để chuột ở phần kiểm tra rồi nhấn Ctrl F rồi nhập từ khóa Canonical.
Thẻ Canonical hiện ra và bạn xem rel và href. Ở đây link trang phụ là https://webmoi.vn/thiet-ke-website/p=2 và Canonical có href là https://webmoi.vn/thiet-ke-website/p=2 và như vậy là đúng, còn nếu bạn để Canonical về trang gốc thì sẽ kiểm tra href là https://webmoi.vn/thiet-ke-website/ như này sẽ sai.
Và có thêm 2 thẻ link có prev và next
<link rel="prev" href="https://webmoi.vn/thiet-ke-website/">
<link rel="next" href="https://webmoi.vn/thiet-ke-website/p=3">
Ngoài ra bạn nên thêm chữ Trang 2 trong nội dung của thẻ Title và Description để không bị trùng lặp thẻ với trang chính:
<title>Trang 2 - Thiết kế website chuẩn SEO</title>
<meta name="description" content="Trang 2 - Web Mới chuyên thiết kế website chuẩn SEO, code tay PHP theo yêu cầu chức năng và khách chọn mẫu có sẵn trên Google để làm theo" />
Có làm đầy đủ các bước như này thì Google mới index các trang con và vẫn hiểu trang nào là trang chính, hơn nữa bài viết trong trang con mới được index nhanh hơn và bài viết trong trang con cũng dễ dàng cho các công cụ tìm kiếm tìm đọc hơn.
Dùng thẻ Noindex cho các trang phụ Pagination
Nhiều ông cứ nghĩ là để các trang con index thì làm loãng trang chính hoặc bị trùng lặp với trang chính nên gắn rel Noindex vào thẻ <a></a> của phân trang, nhưng thực chất không phải vậy.
Nếu phân trang đúng cách thì Google tất nhiên sẽ hiểu đâu là trang chính, đâu là trang con, hơn nữa còn giúp các bot tìm kiếm tìm đọc bài viết trong các trang con dễ dàng hơn.
Cuộn vô hạn hoặc tải thêm khi Phân trang Pagination
Phân trang cuộn vô hạn: Mỗi khi người dùng cuộn chuột trên trang thì các sản phẩm sẽ hiện ra dần dần mỗi khi cuộn xuống.
Phân trang tải thêm: Khi load xem sản phẩm thì sẽ có nút "Tải Thêm", Click vào tải thêm sẽ hiện ra thêm sản phẩm.
Các kiểu phân trang này đều dùng JavaScript hoặc AJAX để hỗ trợ, nhưng phải có hành động của con người thì mới xem được sản phẩm. Còn với Google thì họ không làm thế, họ chỉ vào trang và đọc các thẻ liên kết <a></a> có gắn URL vào href.
Mấy kiểu click vào mấy nút không có liên kết thì Google không làm nên sẽ không tìm đọc nhanh được các sản phẩm, gây ảnh hưởng rất nhiều đến quá trình index hoặc SEO.
Mặc dù mấy kiểu này tiện cho người dùng khi lướt web nhưng bạn nên cân nhắc kết hợp vừa JavaScript, AJAX vừa gắn link URL vào thẻ <a></a> phân trang, như vậy sẽ tốt hơn.
Khai báo Pagination trong File Sitemap XML
Bạn phải khai báo các trang phân trang vào file Sitemap XML, để cho các công cụ tìm kiếm nhanh đọc được và index, ví dụ như kết quả dưới đây trong file sitemap:
<url>
<loc>https://webmoi.vn/blog/</loc>
<lastmod>2023-09-03T16:59:34+07:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://webmoi.vn/blog/p=2</loc>
<lastmod>2023-09-03T16:59:34+07:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://webmoi.vn/blog/p=3</loc>
<lastmod>2023-09-03T16:59:34+07:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://webmoi.vn/blog/p=4</loc>
<lastmod>2023-09-03T16:59:34+07:00</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
Code của mình là:
echo("<url>");
echo("<loc>https://webmoi.vn/blog/</loc>");
echo("<lastmod>2023-09-03T16:59:34+07:00</lastmod>");
echo("<changefreq>daily</changefreq>");
echo("<priority>0.8</priority>");
echo("</url>");
$d->reset();
$sql="select tenkhongdau from #_tinblog where hienthi=1";
$d->query($sql);
$listtt = $d->result_array();
$bienblo = (int)ceil(count($listtt)/20);
for($i=2;$i<= $bienblo;$i++){
echo("<url>");
echo("<loc>https://webmoi.vn/blog/p=$i</loc>");
echo("<lastmod>2023-09-03T16:59:34+07:00</lastmod>");
echo("<changefreq>daily</changefreq>");
echo("<priority>0.8</priority>");
echo("</url>");
}
Ở đây mỗi trang mình để 20 bài viết.
Lời kết
Cảm ơn các bạn đã tham khảo bài viết Pagination là gì?
- 0 Bình luận

Email, Điện thoại của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *