Trong làm SEO thì điều nên tránh nhất là việc trùng lặp nội dung. Trong phân trang cũng vậy ! Chúng ta cần phải can thiệp vào một số điểm để tránh điều này. Tôi cũng có vài cách hay ho áp dụng cho website của mình cần phân trang để Google có thể hiểu rằng đó là một trang khác trong một category chính. Vậy phân trang như thế nào để tốt nhất cho SEO ?
Cách thứ nhất: Nofollow các đường link phân trang
Như các bạn cũng biết đấy, càng nhiều đường dẫn thì Pagerank của bạn càng giảm. Kể cả link trong cũng như link ra các trang ngoài đều được hiểu như nhau. Vì thế khi một category của bạn có hàng ngàn trang khác nhau mà bạn lại muốn giữ lại giá trị pagerank cho category đó, hoặc bạn đang có kế hoạch giữ category này làm landing page thì cần phải xem xét việc nofollow các đường dẫn phân trang để tránh việc thất thoát các giá trị.
Trước đây tôi có chọn landing page là category, trong category này tôi có một bài viết rất dài, cực dài để SEO, sau đó mới là các danh sách bài viết bên dưới category. Tôi hoàn toàn không muốn phân trang một chút nào , nhưng cũng là vì người dùng có thể chọn một trang khác để tìm kiếm thông tin nên tôi đã để là no follow các đường dẫn phân trang này. Nhưng Google có thể vẫn đi theo các đường dẫn này để index, nhằm tránh trùng lặp nội dung tôi đã cho thêm thẻ canonical vào trong category này:
<link rel="canonical" href="domain.com/category/blabblah" />
Như vậy trong tất cả các đường dẫn phân trang đều trỏ về nội dung chính là category, điều này đảm bảo nếu Google đi theo các đường dẫn phân trang vẫn không gây ra trùng lặp nội dung.
Cách thứ hai: Dùng thẻ rel trong html5
Nếu không thích cách thứ nhất thì có thể dùng cách thứ hai, nhưng nếu bạn SEO cho Bing.com thì không nên dùng vì Bing không đọc các thẻ rel này.
Tôi sẽ thêm thuộc tính rel=next và rel=prev lên thẻ head của website mỗi khi có phân trang.
Tôi lấy ví dụ như sau:
- www.site.com/products?page=1
- www.site.com/products?page=2
- www.site.com/products?page=3
Trong trang thứ nhất tôi sẽ thêm code: <link rel=”next” href=”www.site.com/producs?page=2″> và trong trang thứ hai tôi sẽ phải thêm hai thẻ link này để khai báo:
<link rel="prev" href="www.site.com/producs?page=1"> <link rel="next" href="www.site.com/producs?page=3">
Như vậy Google hay các công cụ tìm kiếm hỗ trợ html5 sẽ hiểu trang của bạn và xếp hạng các đường phân trang này ít giá trị hơn trang gốc.
Cũng xin lưu ý thêm là các đường dẫn này cần phải được cấu hình giống hệt nhau về các biến, trong trường hợp như sau sẽ là không hợp lệ:
<link rel="prev" href="www.site.com/producs?page=1"> <link rel="next" href="www.site.com/producs?paged=3&ref=google">
Cách thứ ba: Dùng thẻ rel trỏ về trang tổng quát
Nếu cách thứ hai quá phức tạp với bạn thì có thể tham khảo cách thứ ba. Đây là cách tôi hay dùng khi thiết kế các trang nhỏ và gặp ít phân trang hơn. Cũng xin lưu ý là vì chúng ta cần phải trỏ canonical về trang “xem tất cả” nên trang này cần phải load nhanh. Nếu bạn có nhiều bài viết để show ra theo cách này thì không nên làm.
Tôi chọn category nào đó làm landing page và internalink cho các bài viết con. Tôi sẽ làm một trang viewall để trỏ hết các giá trị từ các trang khác về trang này, ta thêm thẻ rel như sau:
<link rel="canonical" href="site.com/cateogry/x/viewall" />
Như vậy dù phân trang thế nào thì pagerank hay các giá trị khác sẽ trỏ thẳng về viewall, bạn có thể chọn trang này làm landing page được.
Tổng kết
Tôi có một vài lời khuyên nếu bạn đang không biết chọn cách nào để phân trang cho website của bạn:
- Nếu bạn đang phân trang cho category nhưng lại không thể can thiệp vào/ quá phức tạp để làm theo cách thứ hai ? Có thể dùng trang tổng quát nơi list ra toàn bộ các bài viết để trỏ về, áp dụng cách ba
- Nếu bạn có nhiều biến trên đường dẫn phân trang ? Dùng cách 1
- Nếu cách ba của bạn có vấn đề, hãy dùng cách hai, rất đơn giản trong giải quyết.
Còn tôi, tôi thích dùng cách 1 hơn, cách một sẽ làm cho pagerank không thể thất thoát sang các trang khác mà tôi không muốn.
Chúc các bạn thành công !
Chào các bạn, cho mình hỏi vấn đề trùng lặp nội dung, vấn đề là site mình có mục
http://nhamaydenled.com/danh-muc/den-led/
nhưng do có nhiều sản phẩm mà nó tạo ra page 1 page 2 page 3 dạng
danh-muc/den-led/?page=1
danh-muc/den-led/?page=2
danh-muc/den-led/?page=3
cả mục
http://nhamaydenled.com/tin-tuc/
cũng bị vậy khi mình sang trang
tương tự mục tin tức của mình cũng bị vậy, nó gây ra trùng lặp tiêu đề và meta description trong google webmastertool báo lỗi thế nên mình ko rõ cách khắc phục nào hợp lí, tạm thời mình chặn hết ?page=*
mà ko chắc nó đã đúng chưa, mà mình thấy bạn nói về cái thẻ rel=”canonical”
vậy mình đặt nó vào header đc không? hay đặt ở đâu tại code, mình ko rành về code lắm 🙁
nếu mình đặt
vào header thì có đúng không, hay là mình đặt
mình hiện tại không rõ đặt thẻ rel=”canonical” vào cataloge ở chỗ nào
giúp mình giải quyết vấn đề này với, cảm ơn
mình gửi bản đầy đủ qua hòm thư rồi đấy, giúp mình với
Mình đã trả lời bạn nhé !
Chào admin, e đọc hướng dẫn và làm theo như thế này anh xem đúng chư ạ.
Trang em gặp tình trạng phân trang thì trùng thẻ Meta cho các danh mục
http://datnenbinhduong.vn/mua-ban
http://datnenbinhduong.vn/goc-hoi-dap
….
Em chèn code này vào file header.php. Anh xem đúng chưa ạ
Cảm ơn anh nhiều
Đúng rồi, nhưng giờ có cách đơn giản hơn là bạn bật noindex cho subpage trong Yoast SEO hoặc vào robots.txt can thiệp, vừa đơn giản vừa thuận tiện !
Xin chào bạn Jam Việt, cho mình hỏi là nếu so sánh giữa 2 cách là phân trang và cho hiển thị toàn bộ bài viết (trong trường hợp số lượng bài viết từ 20 – 40 bài/danh mục) thì cách nào tối ưu hơn cho SEO?
Mình xin cảm ơn