Canonical URL (<link rel='canonical' href='...'>) cho Google biết URL nào là 'bản gốc' khi có nhiều URLs chứa cùng nội dung.
Ví dụ: /products?sort=price và /products?sort=name cùng nội dung → canonical trỏ về /products. Khi nào CẦN:
- URL parameters tạo duplicate (filters, sort, pagination)
- HTTP vs HTTPS, www vs non-www
- Syndicated content (bài viết đăng trên nhiều site)
- Mobile URL khác desktop URL. Nếu không có canonical, Google tự chọn 'bản gốc' — có thể chọn sai. Trong Next.js: dùng
metadata.alternates.canonicaltronggenerateMetadata()
Lưu ý: canonical phải là absolute URL, self-referencing canonical cũng tốt (mỗi trang canonical trỏ về chính nó).