Canonical URL được giới thiệu lần đầu tiên vào năm 2009, khi Google cùng với Bing và Yahoo cùng hợp nhất để tạo ra nó. Mục đích là giúp cho các nhà quản trị web giải quyết vấn đề trùng lặp nội dung trên website của mình.
Trong bài viết này, Hoài Đoàn SEO sẽ cùng với bạn đọc tìm hiểu chi tiết về:
- Canonical URL là gì?
- Ví dụ về rel=”canonical”
- Tại sao Canonical URL lại cần thiết với SEO?
- Cách sử dụng Canonical tag cho website
- Những sai lầm cần tránh khi triển khai Canonical Tag
- …
Nào, hãy cùng bắt đầu!
Canonical URL là gì?
Canonical URL hay rel= “canonical” là một phần tử HTML được tìm thấy trong thẻ <head> nhằm thông báo cho các công cụ tìm kiếm biết rằng đâu là URL đại diện cho bản sao chính của một trang.
Hay nói cách khác, Canonical URL sẽ chỉ định cho công cụ tìm kiếm nên thu thập thông tin ở URL nào để lập chỉ mục và xếp hạng nội dung của trang cụ thể đó.

Thẻ Canonical URL trông như thế nào?
Canonical tag sử dụng cú pháp đơn giản và nhất quán, được đặt trong <head> của các trang web:
<link rel=”canonical” href=”https://seomentor.vn” />
Đây là ý nghĩa từng phần của đoạn mã trên:
- link rel = “canonical”: Liên kết trong thẻ này là phiên bản chính (chuẩn) của trang này.
- href=”https://seomentor.vn”: Bạn có thể tìm thấy phiên bản chuẩn tại URL này
Ví dụ về Canonical URL
Giả sử, trình thu thập tìm kiếm có thể truy cập vào trang chủ website của tôi theo tất cả các phiên bản sau:
- https://seomentor.vn/
- https://seomentor.vn
- https://www.hoaidoan.vn/
- https://www.hoaidoan.vn
Đối với con người, chúng ta dễ dàng nhận ra rằng các URL trên đều dẫn về một nội dung duy nhất nhưng với các công cụ tìm kiếm, mỗi URL duy nhất sẽ là một trang riêng biệt.
Điều này sẽ gây ra các vấn đề với trình tìm kiếm vì chúng không biết đâu là phiên bản chính và sẽ thu thập thông tin trên tất cả các URL này. Khi đó, công cụ tìm kiếm sẽ thay bạn chọn URL chuẩn hoặc sẽ đánh giá các URL đều có tầm quan trọng như nhau. Nhưng dù là theo cách nào thì cũng đều không mang lại lợi ích cho website của bạn.
Vì vậy, giải pháp tối ưu nhất trong trường hợp này chính là sử dụng rel= “canonical” để thông báo cho công cụ tìm kiếm biết đầu là phiên bản URL chuẩn nhất.

Tại sao Canonical URL lại cần thiết với SEO?
Chúng ta đều biết rằng, để xếp hạng cho bất kỳ một trang web nào, các công cụ tìm kiếm cần phải thường xuyên phải thu thập dữ liệu trên trang web đó.
Nếu trình thông tin thu phát hiện đồng thời hai trang đang có cùng một nội dung, nó sẽ không biết đâu cách xếp hạng chúng. Khi đó, trang này sẽ ăn mòn tiềm năng xếp hạng của trang kia và kết quả là trang web của bạn không có được một thứ hạng tốt trong SERP.
Lúc này, rel= “canonical” sẽ có nhiệm vụ giúp cho trình tìm kiếm biết đâu là phiên bản tốt nhất cần được thu thập thông tin và xếp hạng.

Dưới đây là những lợi ích mà Canonical Tag mang đem lại:
- Chỉ định URL sẽ được hiển thị trong tìm kiếm, khi bạn đặt một URL tức là bạn đang đưa ra tín hiệu cho biết phiên bản URL nào sẽ được hiển thị trong SERPs.
- Hợp nhất các tín hiệu liên kết trên các trang có nội dung giống nhau hoặc gần giống nha
- Hạn chế tình trạng duplicate content và luôn đảm bảo rằng nội dung quan trọng mà bạn muốn xếp hạng sẽ được xếp hạng tốt trên kết quả tìm kiếm
- Ngăn chặn Googlebot thu thập thông tin trên các trang trùng lặp làm lãng phí Crawl Budget. Đặc biệt, nếu website của bạn là một trang web lớn, bạn sẽ luôn muốn trình tìm kiếm thu thập dữ liệu ở các trang quan trọng và nội dung mới thay vì trang trùng lặp
Hiểu hơn về Duplicate Content
Xuất phát điểm của Canonical URL bắt nguồn từ vấn đề duplicate content trên các trang web. Đó là lý do tại sao bạn cần hiểu rõ hơn về sự thật của các nội dung trùng lặp.
Thực lẽ thường tình, không ai cố tình tạo ra những nội dung trùng lặp cho trang web của mình cả mà nó xảy ra khi hệ thống quản lý nội dung tạo ra nhiều URL khi bạn khởi chạy một trang, có các phiên bản khác nhau có thể lập chỉ mục hay có phiên bản thay thế cho các thiết bị khác nhau hoặc URL động.

Hãy xem xét các URL sau:
- https://www.website.com/category/product-a/
- https://www.website.com/product-a/
- https://website.com/product-a/
- http://www.website.com/product-a/
- http://website.com/product-a/
- https://m.website.com/product-a/
- https://www.website.com/product-a
- https://www.website.com/product-A/
Với người dùng, các URL này đều hiển thị cùng một nội dung nhưng với công cụ tìm kiếm thì đây là 8 trang nội dung trùng lặp:
- URL 1 và 2 xuất hiện do CMS lưu URL sản phẩm và không có tên danh mục
- URL 3, 4 và 5 bắt nguồn từ việc trang web có thể truy cập được trên phiên bản HTTP và HTTPS cũng như có và không www
- URL 6 là phiên bản thân thiện với thiết bị di động
- URL 7 là phiên bản không có dấu gạch chéo / của URL 2
- URL 8 sử dụng chữ A viết hoa
Đó là một minh chứng cho thấy rằng, dù cho các nội dung của bạn luôn được đầu tư rất kỹ lưỡng và độc đáo thì tình trạng duplicate content vẫn có thể xảy ra.
Sự khác nhau giữa Canonical URL và Redirect 301
Một thắc mắc thường gặp trong SEO là liệu rằng Canonical Tag có vượt qua giá trị liên kết như chuyển hướng 301 hay không. Trong hầu hết trường hợp, điều này có vẻ đúng. Nhưng bạn cũng cần phải lưu ý rằng, hai giải pháp này mang lại hai kết quả khác nhau cho cả trình thu thập thông tin lẫn người dùng.
Nếu bạn redirect 301 từ trang A -> trang B, người dùng mặc định sẽ luôn được chuyển hướng sang trang B và không bao giờ truy cập được vào trang A. Trong khi đó, với rel= “canonical”, công cụ tìm kiếm sẽ biết rằng B là trang chuẩn và mọi người vẫn có thể truy cập cả 2 URL.

Vậy chúng ta nên lựa chọn giải pháp nào? Không có câu trả lời chính xác mà nó sẽ phụ thuộc vào tình huống cụ thể. Phần lớn các trường hợp, bạn sẽ sử dụng redirect 301 nếu bạn tổng hợp nội dung vào kho lưu trữ hoặc cập nhật URL mới cho trang web của mình.
Tuy nhiên, nếu bạn muốn mọi người vẫn có thể nhìn thấy nội dung ngay cả khi nó bị trùng lặp, bạn cần Canonical URL để thay thế.
Khi nào nên sử dụng rel= “canonical”
Sau đây là sẽ là những tình huống cụ thể mà bạn nên sử dụng Canonical URL.
Khi bạn đăng lại nội dung đã có
Nếu bạn đã có một nội dung trên website, nhưng vì một lý do nào đó bạn lại tiếp tục xuất bản nội dung này trong một trang mới. Lúc này, bạn cần sử dụng Canonical Tag để thông báo cho trình thu thập thông tin biết rằng đây chỉ là một phiên bản mới và chỉ nên tiếp tục thu thập dữ liệu trên phiên bản chính.
Trong các chiến dịch A/B Testing
A/B testing một chiến lược mà các nhà tiếp thị sử dụng để xem yếu tố nào trên trang hoạt động tốt nhất. Google có thể thu thập dữ liệu cả hai trang và bối rối không biết nên lập chỉ mục trang nào là trang gốc. Lúc này, Canonical Tag đóng vai trò như một lộ trình đến nội dung gốc.

Khi bạn sử dụng nhiều biến thể URL
Trường hợp này thường xuất hiện nhiều trên các trang thương mại điện tử. Các tùy chọn tìm kiếm sản phẩm hoặc bộ lọc có thể tạo ra nhiều trang sản phẩm có URL khác nhau nhưng về cơ bản thì nội dung bên trong lại giống nhau.
Những nội dung trùng lặp không cố ý
Như đã đề cập ở phần trên, duplicate content có thể xuất hiện trên trang web dù bạn không cố tình tạo ra nó và thậm chí là không biết đến sự tồn tại của nó.
Có rất nhiều nguyên nhân dẫn đến nội dung trùng lặp không có ý nhưng phổ biến nhất đến từ các phiên bản riêng biệt của HTTP và HTTPS, có và không có www, các vẫn đề về kỹ thuật trong việc phân trang…
Các quy tắc cần biết khi triển khai Canonical URL
Việc triển khai Canonical URL nhìn chung tương đối đơn giản, chỉ cần bạn lưu ý một số quy tắc sau đây, mọi thứ sẽ càng trở nên dễ dàng hơn.
Mỗi trang chỉ nên có một Canonical Tag
Mỗi trang chỉ nên có một một Canonical Tag duy nhất, nếu Google phát hiện có nhiều khai báo rel= “canonical”, họ sẽ bỏ qua tất cả.
Sử dụng đúng phiên bản miền HTTP hay HTTPS
Nếu website sử dụng giao thức HTTPS, hãy luôn đảm bảo rằng bạn đã sử dụng đúng phiên bản URL. Việc khai báo sai giao thức là một sai lầm dễ mắc phải và nó mang lại những kết quả không mong muốn.

Dấu gạch chéo (/) hoặc không
Hãy để ý trang web của bạn có đang sử dụng dấu gạch chéo ở cuối URL hay không? Nếu có thì các Canonical URL cũng cần phải có dấu gạch chéo và ngược lại.
Chỉ định www hay non-www
Trong mắt các công cụ tìm kiếm, các phiên bản có hoặc không có www của một URL được coi là các trang trùng lặp, vì vậy bạn cần đảm bảo chỉ định đúng.
Sử dụng URL tuyệt đối
Các Canonical Tag nên được tham chiếu bằng cách sử dụng URL tuyệt đối để đảm bảo chúng luôn được diễn giải đúng. Tức là bạn nên sử dụng:
<link rel=”canonical” href=”https://www.website.com/page-a/” />
Và không nên:
<link rel=”canonical” href=”/page-a/” />
Sử dụng rel= “canonical” tự tham chiếu
Đây không phải là một yêu cầu bắt buộc nhưng bạn nên triển khai rel= “canonical” chuẩn tự tham chiếu khi chuẩn hóa cho một URL khác.
Cách triển khai Canonical URL
Có 5 cách để chỉ định Canonical URL gồm:
- Thẻ HTML (rel = canonical)
- HTTP header
- Sitemap
- Redirect 301
- Liên kết nội bộ
Dưới đây là chi tiết về từng cách và ngoài ra, bạn có thể tham khảo thêm thông tin qua tài liệu Google cung cấp.
Đặt Canonical Tag bằng HTML rel= “canonical”
Sử dụng rel= “canonical” là cách đơn giản và phổ biến nhất để chỉ định URL chuẩn. Tất cả những gì bạn cần làm là thêm một đoạn mã vào thẻ <head>
<link rel = “canonical” href = “https://website.com/” />
Ví dụ tôi muốn chỉ định https://seomentor.vn/canonical-url/ làm URL chuẩn, tôi sẽ thêm đoạn mã sau vào bất kỳ trang trùng lặp nào:
<link rel = “canonical” href = “https://seomentor.vn/canonical-url/” />
Nếu website của bạn đang chạy trên WordPress, công việc này sẽ càng dễ dàng hơn, di chuyển đến phần “Advanced” và chọn phiên bản URL chuẩn.

Đặt Canonical Tag trong tiêu đề HTTP
Các tài liệu như PDF sẽ không có <head> nên bạn chỉ có thể đặt rel = “canonical” trong tiêu đề HTTP.
Ví dụ tôi có phiên bản PDF của bài viết này và lưu trữ nó trong thư mục con của blog (hoaidoan.vn/blog/). Khi đó tiêu đề sẽ có cấu trúc như sau:
HTTP/1.1 200 OK.
Content-Type: application/pdf.
Link: <https://ahrefs.com/blog/canonical-tags/>; rel=”canonical”
Triển khai Canonical URL trong Sitemap
Google tuyên bố rằng chỉ các URL chuẩn mới nên được liệt kê vào sitemap. Bởi vì họ xem các trang được liệt kê trong sitemap là trang chuẩn được đề xuất.
Tất nhiên, cũng cần biết rằng không phải lúc nào Google cũng chọn URL trong sitemap làm chuẩn.
Đặt Canonical tag với Redirect 301
Sử dụng Redirect 301 trong các trường hợp ban muốn chuyển hướng lưu lượng truy cập khỏi URL trùng lặp sang phiên bản chuẩn.
Ví dụ: trang web của bạn có thể truy cập qua các URL sau:
- website.com
- website.com/index.php
- website.com/home/
Chọn một phiên bản làm chuẩn và chuyển hướng 2 phiên bản còn lại về nó. Đồng thời, bạn cũng nên thực hiện trên các phiên bản HTTPS/HTTP và www/non-www.
Đặt Canonical Tag bằng liên kết nội bộ
Khi bạn liên kết từ trang này sang trang khác trên toàn bộ trang web của mình, đó là một tín hiệu chuẩn hóa.
Chung quy lại thì việc sử dụng nhất quá các tín hiệu trên sẽ giúp các công cụ tìm kiếm dễ dàng trong việc xác định đâu là phiên bản URL chuẩn hóa.
Các sai lầm cần tránh khi triển khai Canonical Tag
Trong phần này, chúng ta sẽ điểm qua những sai lầm mà nhiều người hay mắc phải khi sử dụng Canonical URL.
Chặn URL được chuẩn hóa qua robots.txt
Việc chặn URL trong robots.txt về cơ bản là bạn đang yêu cầu Google không xem trang đó. Vì vậy, Googlebot sẽ không thu thập được dữ liệu và index. Điều này có nghĩa rằng bất kỳ tín hiệu xếp hạng nào mà URL nào đóng góp đều sẽ bị bỏ qua.
Do đó, đừng chặn Googlebot thu thập dữ liệu URL cụ thể, thay vào đó hãy sử dụng Canonical Tag để thông báo cho chúng biết nên tập trung vào trang nào.
Chuẩn hóa cho các nội dung không liên quan
Như tôi đã đề cập ở trên, Canonical Tag bắt nguồn từ vấn đề trùng lặp nội dung. Vì vậy, bạn không nên chuẩn hóa các URL thành một trên những trang có nội dung không liên quan hoặc không trùng lặp nhau.
Chuyển các tín hiệu xếp hạng bằng việc sử dụng rel= “canonical” là cách làm không đúng và bạn nên tránh nó bằng mọi giá.
Đặt nhiều Canonical Tag cho một trang
Nếu Google phát hiện nhiều hơn một Canonical Tag trên một trang, tất cả đều sẽ bị bỏ qua. Nguyên nhân của sai lầm này thường đến từ các rel= “canonical” được chèn vào hệ thống ở các điểm khác nhau như CMS, theme hoặc plugin.
Đó là lý do tại sao nhiều plugin có tùy chọn ghi đè nhằm đảm bảo rằng chúng là nguồn duy nhất cho các Canonical Tag.

Đặt rel= “canonical” trong <body>
Mặc dù mã nguồn của một trang, rel= “canonical” có thể được đặt ở đúng vị trí, như khi trang được tạo trong trình duyệt hoặc hiển thị trên tìm kiếm, nhiều thứ khác nhau như thẻ không được đóng,JavaScript được chèn hoặc <iframes> trong phần <head> có thể khiến <head> kết thúc sớm trong khi hiển thị.
Khi đó, Canonical Tag bị chuyển vào <body> của một trang đang hiển thị mà không được chấp nhận.
Không sử dụng Canonical Tag với hreflang
Thẻ hreflang để sử dụng nhằm đến những đối tượng người dùng ở các vị trí địa lý và ngôn ngữ khác nhau.
Google cho biết rằng: “Chỉ định một trang chuẩn khi sử dụng thẻ hreflang . Chỉ định một trang chuẩn bằng cùng một ngôn ngữ hoặc ngôn ngữ thay thế tốt nhất có thể nếu một trang chuẩn không tồn tại cho cùng một ngôn ngữ.”
Phân trang và chuẩn hóa khó hiểu
Việc phân trang không đúng cách có thể gây ra tình trạng trùng lặp nội dung. Nhưng việc chuẩn hóa các URL trong một chuỗi quay lại trang đầu tiên không phải lúc nào cũng là giải pháp tốt nhất. Thay vào đó, bạn nên chuẩn hóa chúng thành một trang “Xem tất cả”.
Đặt URL chuẩn hóa thành noindex
Đừng bao giờ kết hợp noindex với rel= “canonical” bởi vì chúng hoàn toàn trái ngược nhau. Nếu bạn muốn ngăn lập chỉ mục và chuẩn hóa một URL, hãy sử dụng redirect 301. Còn không, hãy sử dụng rel= “canonical”.
Cách kiểm tra và khắc phục sự cố Canonical Tag
Các trang AMP không có Canonical Tag
Bạn có thể sử dụng SEMrush để kiểm tra lỗi này. Các trang AMP không có Canonical Tag, công cụ kiểm tra sẽ gắn cờ và cho biết đó là một vấn đề. Điều quan trọng là phải có quá trình chuẩn hóa giữa các phiên bản AMP và không AMP trên website của bạn.
Bạn có thể khắc phục lỗi này bằng cách thêm rel= “canonical” vào <head> trên các phiên bản AMP.
Không chuyển hướng hoặc chuẩn hoá đến phiên bản HTTPS từ HTTP
Nếu trang web của bạn có thể truy cập được trên 2 phiên bản HTTP và HTTPS, nó sẽ gây ra vấn đề trùng lặp nội dung.
Cách xử lý trong trường hợp này là redirect 301 một phiên bản đến phiên bản còn lại hoặc thêm thẻ chuẩn tham chiếu đến HTTPS trên các trang HTTP.

Các trang có Broken Canonical Link
Các trang sẽ không được tính là URL chuẩn nếu chúng có các broken canonical links. Lỗi này thường xuất phát từ việc các liên kết chuẩn trỏ đến các trang web không tồn tại làm ảnh hưởng đến việc thu thập thông tin và lập chỉ mục.
Cách giải quyết trong trường hợp này là cập nhật các liên kết này thành URL chuẩn chính xác.
Các trang có nhiều rel= “canonical”
Bạn sẽ thấy lỗi này khi có nhiều hơn một URL chuẩn trên một trang. Cách khắc phục là loại bỏ các thẻ trùng lặp và chỉ để lại một thẻ duy nhất.
Các trang trùng lặp không có Canonical Tag
Nếu trang không có URL chuẩn, Google sẽ tự chọn phiên bản để hiển thị trong kết quả tìm kiếm. Đó có thể là phiên bản mà bạn không mong muốn.
Để khắc phục, bạn cần xem lại các nội dung trùng lặp trên website và chọn một phiên bản để lập chỉ mục trong kết quả tìm kiếm.
Vòng lặp Canonical Tag
Lỗi này xuất hiện khi một hoặc nhiều trang chỉ định một URL chuẩn nhưng URL này lại được chuẩn hóa cho một URL khác. Ví dụ như A được chuẩn hóa thành B nhưng B lại tiếp tục được chuẩn hóa thành C.
Điều này sẽ gây ra các khó khăn cho công cụ tìm kiếm và các Canonical Tag có thể sẽ bị bỏ qua.
Cách giải quyết: chuẩn hóa từ trang A đến thẳng trang C thay vì trang B.
Lời kết
Tóm lại, Canonical URL là một khái niệm quan trọng trong SEO mà bạn cần phải hiểu và sử dụng nó đúng cách. Nếu không, nó sẽ gây ra những tác động xấu đến trang web của bạn.
Và vừa rồi là toàn bộ các thông tin về Canonical Tag mà tôi muốn chia sẻ đến các bạn. Hy vọng bài viết đã mang lại cho bạn nhiều thông tin hữu ích.
Chúc bạn thành công!
Nguồn tham khảo:
https://www.shopify.com/partners/blog/canonical-urls
https://www.semrush.com/blog/canonical-url-guide/
https://blog.alexa.com/canonical-url/
https://ahrefs.com/blog/canonical-tags/

SEO Mentor & Founder SEO Agency 3HDIGI
Phụ trách hoạt động SEO của các doanh nghiệp lớn ở cả 2 phía Client & Agency.
Kinh nghiệm đào tạo SEO tại TTTH – Đại Học Khoa Học Tự Nhiên TPHCM từ 2018