Thẻ hreflang là một giải pháp kỹ thuật cho các trang web có nội dung tương tự bằng nhiều ngôn ngữ. Chủ sở hữu của một website đa ngôn ngữ muốn các công cụ tìm kiếm đưa mọi người đến nội dung bằng ngôn ngữ của họ. Giả sử người dùng là người Hà Lan và trang xếp hạng là tiếng Anh, nhưng cũng có phiên bản tiếng Hà Lan. Bạn muốn Google hiển thị trang tiếng Hà Lan trong kết quả tìm kiếm cho người dùng Hà Lan đó. Đây là loại vấn đề mà hreflang được thiết kế để giải quyết.
Thẻ hreflang là một trong những thông số kỹ thuật khó nhất mà tôi từng thấy từ một công cụ tìm kiếm. Bởi vì làm đúng rất khó và mất thời gian. Đó là lý do tại sao mục đích của hướng dẫn này là ngăn bạn rơi vào những cái bẫy phổ biến, vì vậy hãy nhớ đọc kỹ nếu bạn đang bắt tay vào một dự án hreflang.
Cần trợ giúp để triển khai hreflang như một phần của dự án SEO quốc tế của bạn? Hãy liên hệ với chúng tôi, chúng tôi sẽ giúp các bạn về mặt kỹ thuật. Bạn sẽ có một chiến lược SEO quốc tế hiệu quả trong thời gian ngắn.
Thẻ hreflang để làm gì?
Hreflang tag là một phương pháp để đánh dấu các trang có ý nghĩa tương tự nhưng nhằm vào các ngôn ngữ và / hoặc khu vực khác nhau. Có ba cách phổ biến để triển khai hreflang:
- Nội dung với các biến thể khu vực như en-us và en-gb.
- Nội dung bằng các ngôn ngữ khác nhau như en, de và fr.
- Sự kết hợp của các ngôn ngữ khác nhau và các biến thể khu vực.
Thẻ hreflang được sử dụng khá phổ biến để nhắm mục tiêu các thị trường khác nhau sử dụng cùng một ngôn ngữ – ví dụ: để phân biệt giữa Hoa Kỳ và Vương quốc Anh, hoặc giữa Đức và Áo.
Lợi ích SEO của hreflang là gì?
Vậy tại sao chúng ta lại nói về hreflang? Lợi ích SEO là gì? Vâng, từ quan điểm SEO, có hai lý do chính tại sao bạn nên thực hiện nó.
Trước hết, nếu bạn có phiên bản của trang mà bạn đã tối ưu hóa cho ngôn ngữ và vị trí của người dùng, bạn muốn họ truy cập vào trang đó. Bởi vì có ngôn ngữ phù hợp và thông tin phụ thuộc vào vị trí sẽ cải thiện trải nghiệm người dùng của họ và do đó dẫn đến việc ít người quay lại kết quả tìm kiếm hơn. Và ít người trả lại kết quả tìm kiếm dẫn đến thứ hạng cao hơn.
Lý do thứ hai là hreflang ngăn chặn vấn đề trùng lặp nội dung. Nếu bạn có cùng một nội dung bằng tiếng Anh trên các URL khác nhau nhắm đến Vương quốc Anh, Hoa Kỳ và Úc, thì sự khác biệt trên các trang này có thể nhỏ như sự thay đổi về giá cả và đơn vị tiền tệ. Nhưng nếu không có hreflang, Google có thể không hiểu bạn đang cố gắng làm gì và xem đó là nội dung trùng lặp. Với hreflang, bạn nói rõ với công cụ tìm kiếm rằng nội dung (gần như) giống nhau, chỉ được tối ưu hóa cho những người khác nhau.
Hreflang là gì?
Hreflang là mã mà bạn có thể hiển thị cho các công cụ tìm kiếm theo ba cách khác nhau – và còn nhiều hơn thế nữa bên dưới. Bằng cách sử dụng mã này, bạn chỉ định tất cả các URL khác nhau trên (các) trang web của bạn có cùng nội dung. Các URL này có thể có cùng nội dung ở một ngôn ngữ khác hoặc cùng một ngôn ngữ nhưng được nhắm mục tiêu đến một khu vực khác.
Hreflang đạt được những gì?
Ai ủng hộ hreflang?
hreflang được hỗ trợ bởi Google và Yandex. Bing không có chức năng tương đương nhưng hỗ trợ thẻ meta ngôn ngữ.
Trong triển khai hreflang hoàn chỉnh, mọi URL chỉ định các biến thể khác có sẵn. Khi người dùng tìm kiếm, Google sẽ thực hiện quá trình sau:
- nó xác định rằng nó muốn xếp hạng một URL;
- nó kiểm tra xem URL đó có chú thích hreflang hay không;
- nó hiển thị cho người tìm kiếm kết quả với URL thích hợp nhất cho người dùng đó.
Vị trí hiện tại của người dùng và cài đặt ngôn ngữ của họ xác định URL thích hợp nhất (và để làm phức tạp mọi thứ, người dùng có thể có nhiều ngôn ngữ trong cài đặt trình duyệt của họ; và thứ tự xuất hiện của các ngôn ngữ này xác định ngôn ngữ thích hợp nhất).
Bạn có nên sử dụng hreflang?
Mẹo: trang chủ đầu tiên!
Nếu bạn không chắc mình có muốn triển khai hreflang trên toàn bộ trang web của mình hay không, hãy bắt đầu với trang chủ của bạn! Những người đang tìm kiếm thương hiệu của bạn sẽ nhận được trang phù hợp. Điều này dễ thực hiện hơn rất nhiều và nó sẽ “bắt” một phần lớn lưu lượng truy cập của bạn.
Bây giờ chúng ta đã biết hreflang là gì và nó hoạt động như thế nào, chúng ta có thể quyết định xem bạn có nên sử dụng nó hay không. Sử dụng hreflang khi:
- bạn có cùng một nội dung bằng nhiều ngôn ngữ;
- bạn có nội dung nhắm đến các vùng địa lý khác nhau nhưng có cùng ngôn ngữ.
Không quan trọng nội dung bạn có nằm trên một miền hay nhiều miền. Bạn có thể liên kết các biến thể trong cùng một miền, nhưng cũng có thể liên kết giữa các miền.
Lựa chọn triển khai kiến trúc
Một điều rất quan trọng khi triển khai hreflang: đừng quá cụ thể! Giả sử bạn có ba loại trang:
- Nội dung tiếng Đức
- Nội dung tiếng Đức, đặc biệt nhắm đến Áo
- Nội dung tiếng Đức, đặc biệt nhắm đến Thụy Sĩ
Bạn có thể chọn triển khai chúng bằng cách sử dụng ba thuộc tính hreflang như sau:
- de-de, nhắm mục tiêu đến những người nói tiếng Đức ở Đức
- de-at, nhắm mục tiêu đến những người nói tiếng Đức ở Áo
- de-ch, nhắm mục tiêu đến những người nói tiếng Đức ở Thụy Sĩ
Tuy nhiên, ví dụ: Google nên hiển thị kết quả nào trong số ba kết quả này cho ai đó đang tìm kiếm bằng tiếng Đức ở Bỉ? Trong trường hợp này, trang đầu tiên có thể là trang tốt nhất. Để đảm bảo rằng mọi người dùng tìm kiếm bằng tiếng Đức không khớp với de-at hoặc de-ch sẽ có giá trị mặc định tốt nhất, chúng ta nên thay đổi thuộc tính hreflang đó thành just de. Trong nhiều trường hợp, chỉ xác định ngôn ngữ là một điều thông minh để làm.
Bạn nên biết rằng khi bạn tạo các tập hợp liên kết như thế này, liên kết cụ thể nhất sẽ chiến thắng. Thứ tự mà công cụ tìm kiếm thấy các liên kết không quan trọng; nó sẽ luôn cố gắng so khớp từ cụ thể nhất đến cụ thể nhất.
Thực hiện kỹ thuật – những điều cơ bản
Bất kể loại triển khai nào bạn chọn – và có nhiều nội dung khác bên dưới – có ba quy tắc cơ bản.
Các thuộc tính hreflang hợp lệ
Thuộc tính hreflang cần phải chứa một giá trị bao gồm ngôn ngữ, có thể được kết hợp với một vùng. Nói cách khác, thuộc tính ngôn ngữ cần ở định dạng ISO 639-1 (mã gồm hai chữ cái).
Mã vùng sai
Google có thể giải quyết một số lỗi phổ biến với mã vùng, mặc dù bạn không nên bỏ qua bất kỳ cơ hội nào. Ví dụ, nó có thể xử lý với en-uk cũng như với en-gb “đúng”. Tuy nhiên, en-eu không hoạt động, vì eu không xác định quốc gia.
Vùng là tùy chọn và phải ở định dạng ISO 3166-1 Alpha 2, chính xác hơn, nó phải là một phần tử được chỉ định chính thức. Sử dụng danh sách này từ Wikipedia để xác minh rằng bạn đang sử dụng đúng mã vùng và ngôn ngữ. Bởi vì đây là nơi mà mọi thứ thường xảy ra sai: sử dụng sai mã vùng là một vấn đề rất phổ biến.
Trả lại liên kết
Quy tắc cơ bản thứ hai là về liên kết trả lại. Bất kể loại triển khai của bạn là gì, mỗi URL cần các liên kết trả lại đến mọi URL khác và các liên kết này phải trỏ đến các phiên bản canonical url, thông tin thêm về điều đó bên dưới. Bạn càng có nhiều ngôn ngữ, bạn càng có thể bị cám dỗ để hạn chế các liên kết trả lại đó – nhưng không. Nếu bạn có 80 ngôn ngữ, bạn sẽ có các liên kết hreflang cho 80 URL và bạn sẽ không phải lo lắng về nó.
liên kết hreflang với bản thân
Quy tắc cơ bản thứ ba và cuối cùng là về tự liên kết. Bạn có thể cảm thấy kỳ lạ khi làm điều này, cũng như các liên kết trả về đó có thể cảm thấy kỳ lạ, nhưng chúng rất cần thiết và việc triển khai của bạn sẽ không hoạt động nếu không có chúng.
Lựa chọn triển khai kỹ thuật
Có ba cách để triển khai hreflang:
- sử dụng các phần tử liên kết trong <head>
- sử dụng tiêu đề HTTP
- hoặc sử dụng sơ đồ trang XML.
Mỗi loại đều có công dụng của nó, vì vậy chúng tôi sẽ giải thích chúng và thảo luận bạn nên chọn loại nào.
Phần tử liên kết HTML hreflang trong <head> của bạn
Phương pháp đầu tiên để triển khai hreflang mà chúng ta sẽ thảo luận là các phần tử liên kết HTML hreflang. Và bạn thực hiện việc này bằng cách thêm code như thế này vào phần <head> của mỗi trang:
<link rel = "alternate" href = "https://www.example.com/" hreflang = "en" /> <link rel = "alternate" href = "https://www.example.com/en-gb/" hreflang = "en-gb" /> <link rel = "alternate" href = "https://www.example.com/en-au/" hreflang = "en-au" />
Vì mọi biến thể cần link với mọi biến thể khác, những triển khai này có thể trở nên khá lớn và làm chậm trang web của bạn. Nếu bạn có 20 ngôn ngữ, việc chọn các phần tử liên kết HTML có nghĩa là thêm 20 phần tử liên kết như được hiển thị ở trên vào mỗi trang.
Đó là 1,5KB trên mỗi lần tải trang, mà không người dùng nào sẽ sử dụng, nhưng sẽ vẫn phải tải xuống. Trên hết, CMS của bạn sẽ phải thực hiện một số lệnh gọi cơ sở dữ liệu để tạo tất cả các liên kết này. Đánh dấu này hoàn toàn dành cho các công cụ tìm kiếm. Đó là lý do tại sao tôi không đề xuất điều này cho các trang web lớn hơn, vì nó thêm quá nhiều chi phí không cần thiết.
Tiêu đề HTTP hreflang
Phương pháp thứ hai để triển khai hreflang là thông qua tiêu đề HTTP. Tiêu đề HTTP dành cho tất cả các tệp PDF của bạn và nội dung không phải HTML khác mà bạn có thể muốn tối ưu hóa. Phần tử liên kết hoạt động hiệu quả đối với tài liệu HTML, nhưng không phù hợp với các loại nội dung khác vì bạn không thể đưa chúng vào. Đó là nơi các tiêu đề HTTP xuất hiện và chúng sẽ trông như thế này:
<Link href="https://es.example.com/document.pdf" rel = "alternate"; hreflang = "es" /> <Link href="https://en.example.com/document.pdf" rel = "alternate"; hreflang = "vi" />
Vấn đề với việc có nhiều tiêu đề HTTP tương tự như vấn đề với các phần tử liên kết trong <head> của bạn: nó thêm rất nhiều chi phí cho mọi yêu cầu.
Xem thêm cấu trúc silo cho website trong wordpress
Triển khai hreflang sơ đồ trang XML
Tùy chọn thứ ba để triển khai hreflang là sử dụng đánh dấu sơ đồ trang XML. Nó sử dụng thuộc tính xhtml: link trong sơ đồ trang XML để thêm chú thích vào mọi URL. Nó hoạt động giống như cách bạn làm trong <head> của một trang với các phần tử <link>. Nếu bạn nghĩ rằng các phần tử liên kết dài dòng, thì việc triển khai sơ đồ trang web XML thậm chí còn tệ hơn. Để minh họa, đây là đánh dấu cần thiết cho chỉ một URL với hai ngôn ngữ khác:
<url> <loc> https://www.example.com/uk/ </loc> <xhtml: link rel = "alternate" hreflang = "vi" href = "https://www.example.com/" /> <xhtml: link rel = "alternate" hreflang = "en-au" href = "https://www.example.com/au/" /> <xhtml: link rel = "alternate" hreflang = "en-gb" href = "https://www.example.com/uk/" /> </url>
Bạn có thể thấy nó có một URL tự tham chiếu là URL thứ ba, việc chỉ định URL cụ thể là dành cho en-gb và nó chỉ định hai ngôn ngữ khác. Bây giờ, cả hai URL khác cũng cần phải có trong sơ đồ trang web, trông giống như sau:
<url> <loc> https://www.example.com/ </loc> <xhtml: link rel = "alternate" hreflang = "vi" href = "https://www.example.com/" /> <xhtml: link rel = "alternate" hreflang = "en-au" href = "https://www.example.com/au/" /> <xhtml: link rel = "alternate" hreflang = "en-gb" href = "https://www.example.com/uk/" /> </url> <url> <loc> https://www.example.com/au/ </loc> <xhtml: link rel = "alternate" hreflang = "vi" href = "https://www.example.com/" /> <xhtml: link rel = "alternate" hreflang = "en-au" href = "https://www.example.com/au/" /> <xhtml: link rel = "alternate" hreflang = "en-gb" href = "https://www.example.com/uk/" /> </url>
Như bạn có thể thấy, về cơ bản chúng tôi chỉ thay đổi các URL trong phần tử <loc>, vì mọi thứ khác sẽ giống nhau. Với phương pháp này, mỗi URL có thuộc tính hreflang tự tham chiếu và trả về các liên kết đến các URL khác thích hợp.
Đánh dấu sơ đồ trang XML như thế này rất dài dòng: bạn cần rất nhiều đầu ra để thực hiện việc này cho rất nhiều URL. Lợi ích của việc triển khai sơ đồ trang XML rất đơn giản: người dùng bình thường của bạn sẽ không bị làm phiền với đánh dấu này. Cuối cùng, bạn sẽ không tăng thêm trọng lượng trang và không yêu cầu nhiều lệnh gọi cơ sở dữ liệu khi tải trang để tạo ra đánh dấu này.
Một lợi ích khác của việc thêm hreflang thông qua sơ đồ trang XML là việc thay đổi sơ đồ trang XML thường dễ dàng hơn nhiều so với việc thay đổi tất cả các trang trên một trang web. Bằng cách này, không cần phải trải qua các quy trình phê duyệt lớn và thậm chí bạn có thể có quyền truy cập trực tiếp vào tệp sơ đồ trang XML.
Các khía cạnh kỹ thuật khác của việc triển khai hreflang
Khi bạn đã quyết định phương pháp triển khai của mình, có một số cân nhắc kỹ thuật khác mà bạn nên biết trước khi bắt đầu triển khai hreflang.
hreflang x-default
x-default là một giá trị thuộc tính hreflang đặc biệt chỉ định nơi người dùng sẽ được gửi đến nếu không có ngôn ngữ nào bạn đã chỉ định trong các liên kết hreflang khác của bạn khớp với cài đặt trình duyệt của họ. Trong một phần tử liên kết, nó trông giống như sau:
<link rel = "alternate" href = "https://www.example.com/" hreflang = "x-default" />
Khi được giới thiệu, nó được giải thích là dành cho “các trang đích quốc tế”, tức là các trang mà bạn chuyển hướng người dùng dựa trên vị trí của họ. Tuy nhiên, về cơ bản nó có thể được mô tả như là “tóm tắt” cuối cùng của tất cả các câu lệnh hreflang. Đó là nơi người dùng sẽ được gửi đến nếu vị trí và ngôn ngữ của họ không khớp với bất kỳ điều gì khác.
Trong ví dụ tiếng Đức mà chúng tôi đã đề cập ở trên, người dùng tìm kiếm bằng tiếng Anh vẫn sẽ không có URL phù hợp với họ. Đó là một trong những trường hợp x-default phát huy tác dụng. Bạn sẽ thêm liên kết thứ tư vào phần đánh dấu và kết thúc bằng bốn liên kết sau:
- De
- De-at
- De-ch
- x-default
Trong trường hợp này, liên kết x-default sẽ trỏ đến cùng một URL với liên kết de. Mặc dù vậy, chúng tôi sẽ không khuyên bạn xóa liên kết de, mặc dù về mặt kỹ thuật, điều đó sẽ tạo ra kết quả chính xác. Về lâu dài, tốt hơn là nên có cả hai vì nó chỉ định ngôn ngữ của trang de – và nó làm cho mã dễ đọc hơn.
hreflang và rel = canonical
rel = “canonical”
Nếu bạn không biết rel = ”canonical” là gì, hãy đọc bài viết rel = canonical
rel = “alternate” hreflang = “x” markup và rel = “canonical” có thể và nên được sử dụng cùng nhau. Mọi ngôn ngữ phải có liên kết rel = “canonical” trỏ đến chính nó. Trong ví dụ đầu tiên, điều này sẽ giống như thế này, giả sử rằng chúng tôi đang ở trên trang chủ example.com:
<link rel = "canonical" href = "https://www.example.com/"> <link rel = "alternate" href = "https://www.example.com/" hreflang = "en" /> <link rel = "alternate" href = "https://www.example.com/en-gb/" hreflang = "en-gb" /> <link rel = "alternate" href = "https://www.example.com/en-au/" hreflang = "en-au" /> Nếu chúng tôi ở trên trang en-gb, chỉ có trang canonical mới thay đổi: <link rel = "canonical" href = "https://www.example.com/en-gb/"> <link rel = "alternate" href = "https://www.example.com/" hreflang = "en" /> <link rel = "alternate" href = "https://www.example.com/en-gb/" hreflang = "en-gb" /> <link rel = "alternate" href = "https://www.example.com/en-au/" hreflang = "en-au" />
Đừng mắc lỗi khi đặt canonical trên trang en-gb thành https://www.example.com/, vì điều này làm hỏng việc triển khai. Điều rất quan trọng là các liên kết hreflang trỏ đến phiên bản canonical của mỗi URL, vì các hệ thống này phải hoạt động song song với nhau!
Các công cụ hữu ích khi triển khai hreflang
Bây giờ, khi bạn đã đi xa đến mức này, bạn có thể sẽ nghĩ “wow cái này khó quá”! Tôi biết – tôi đã nghĩ như vậy khi lần đầu tiên bắt đầu tìm hiểu về nó. Nhưng may mắn thay, có khá nhiều công cụ có sẵn nếu bạn dám bắt đầu triển khai hreflang.
hreflang tag generator
Aleyda Solis, người cũng đã viết khá nhiều về chủ đề này, đã tạo ra một trình tạo thẻ hreflang rất hữu ích giúp bạn tạo các phần tử liên kết. Ngay cả khi bạn không sử dụng triển khai phần tử liên kết, điều này có thể hữu ích để tạo một số mã mẫu.
hreflang XML sitemap generator
Erudite đã tạo một trình tạo sơ đồ trang XML hreflang. Chỉ cần cung cấp cho nó một CSV với các URL cho mỗi ngôn ngữ và nó tạo ra một sơ đồ trang web XML. Đây là bước đầu tiên tuyệt vời khi bạn quyết định sử dụng sơ đồ trang web.
Tệp CSV mà bạn cung cấp trình tạo sơ đồ trang XML này thêm một cột cho mỗi ngôn ngữ. Vì vậy, nếu bạn cũng muốn thêm một URL x-default vào nó, chỉ cần tạo một cột có tên là x-default.
Đảm bảo hreflang tiếp tục hoạt động:
Khi bạn đã tạo thiết lập hreflang hoạt động, bạn cần thiết lập các quy trình bảo trì. Có lẽ cũng nên thường xuyên kiểm tra việc triển khai của bạn để đảm bảo rằng nó vẫn được thiết lập chính xác.
Đảm bảo rằng những người trong công ty của bạn, những người xử lý nội dung trên trang web của bạn biết về hreflang để họ không làm những điều phá vỡ việc triển khai của bạn. Hai điều rất quan trọng:
- Khi một trang bị xóa, hãy kiểm tra xem các đối tác của nó có được cập nhật hay không.
- Khi một trang được chuyển hướng, hãy thay đổi các URL hreflang trên các đối tác của nó.
Nếu bạn làm điều đó và kiểm tra thường xuyên, bạn sẽ không gặp phải bất kỳ vấn đề nào.
Phần kết luận
Thiết lập hreflang là một quá trình phức tạp. Đó là một tiêu chuẩn khó với rất nhiều điều cụ thể mà bạn nên biết và giải quyết. Hướng dẫn này sẽ được cập nhật khi những điều mới được giới thiệu xung quanh đặc điểm kỹ thuật này và các phương pháp hay nhất phát triển, vì vậy hãy kiểm tra lại khi bạn bắt đầu thực hiện lại!