Khi trang web của bạn có nhiều phiên bản dành cho các ngôn ngữ hoặc khu vực khác nhau, việc thông báo cho Google về các phiên bản này là vô cùng quan trọng. Điều này không chỉ giúp cải thiện trải nghiệm người dùng mà còn tối ưu hóa thứ hạng tìm kiếm của trang web trên Google Tìm kiếm. Bài viết này sẽ hướng dẫn bạn cách thông báo cho Google về các phiên bản đã bản địa hóa của trang web để đảm bảo người dùng được chuyển đến phiên bản phù hợp nhất.
Nếu trang web của bạn có nhiều phiên bản dành cho các ngôn ngữ hoặc khu vực khác nhau, việc thông báo cho Google về các phiên bản này là rất quan trọng. Điều này sẽ giúp Google Tìm kiếm đưa người dùng đến đúng phiên bản trang web phù hợp nhất với ngôn ngữ hoặc khu vực của họ.
Ngay cả khi bạn không thực hiện bất kỳ hành động nào, Google vẫn có thể tự động phát hiện các phiên bản ngôn ngữ khác nhau của trang. Tuy nhiên, tốt nhất là bạn nên rõ ràng chỉ định các trang web dành cho ngôn ngữ hoặc khu vực cụ thể để đảm bảo hiệu quả tối ưu.
Dưới đây là một số tình huống điển hình mà bạn nên thông báo cho Google về các phiên bản khác nhau của trang web:
- Nội dung chính giữ nguyên, chỉ dịch một số phần: Ví dụ, bạn chỉ dịch phần điều hướng và chân trang, thường áp dụng cho các trang có nội dung do người dùng tạo như diễn đàn.
- Nội dung có sự khác biệt nhỏ theo từng khu vực: Nội dung có thể giống nhau về mặt ngôn ngữ nhưng có sự khác biệt về địa phương, chẳng hạn như tiếng Anh sử dụng ở Mỹ, Anh và Ireland.
- Nội dung được dịch toàn bộ sang nhiều ngôn ngữ: Ví dụ, mỗi trang trên website của bạn có cả hai phiên bản bằng tiếng Việt và tiếng Anh.
Các phiên bản đã được bản địa hóa của một trang chỉ được coi là bản sao nếu nội dung chính của trang vẫn chưa được dịch.
Cách chỉ định các phiên bản khác của trang
Để thông báo cho Google về các phiên bản khác nhau của một trang web theo ngôn ngữ hoặc khu vực, bạn có thể sử dụng một trong ba phương pháp sau:
- HTML
- Tiêu đề HTTP
- Sơ đồ trang web (XML Sitemap)
Google xem cả ba phương pháp này như nhau, và bạn có thể chọn phương pháp phù hợp nhất cho trang web của mình. Mặc dù có thể sử dụng đồng thời cả ba phương pháp, nhưng điều này không mang lại thêm lợi ích trong kết quả tìm kiếm và việc quản lý cả ba phương pháp cùng lúc có thể phức tạp hơn so với chỉ sử dụng một phương pháp duy nhất.
Sử dụng thẻ hreflang là cách tốt nhất để thông báo cho Google về các phiên bản khác nhau của nội dung. Thẻ này giúp Google hiểu rằng các trang này là các phiên bản đã được bản địa hóa của cùng một nội dung. Tuy nhiên, Google không sử dụng thẻ hreflang hoặc thuộc tính lang trong HTML để xác định ngôn ngữ của trang; thay vào đó, Google sử dụng thuật toán riêng để xác định ngôn ngữ.
Nguyên tắc chung cho tất cả các phương pháp
- Liệt kê đầy đủ các phiên bản ngôn ngữ: Mỗi phiên bản ngôn ngữ của trang web cần phải liệt kê cả chính phiên bản đó và tất cả các phiên bản ngôn ngữ khác.
- Sử dụng URL đầy đủ: Các URL thay thế phải được chỉ định đầy đủ, bao gồm cả phương thức truyền tải (http/https). Ví dụ: bạn phải sử dụng
https://example.com/foo
thay vì//example.com/foo
hay/foo
. - Không giới hạn trong cùng một miền: Các URL thay thế không bắt buộc phải nằm trong cùng một miền.
- Cung cấp URL chung cho các khu vực không xác định: Nếu bạn có nhiều URL thay thế cho cùng một ngôn ngữ ở các khu vực khác nhau, hãy cung cấp một URL chung cho người dùng ở các khu vực chưa xác định. Ví dụ: nếu bạn có các URL cho người nói tiếng Anh ở Ireland (en-ie), Canada (en-ca), và Úc (en-au), hãy cung cấp thêm một URL chung (en) cho người dùng ở các khu vực khác như Anh, Mỹ và các khu vực nói tiếng Anh khác.
- Đảm bảo liên kết hai chiều giữa các trang: Nếu hai trang không liên kết với nhau, các thẻ hreflang có thể bị bỏ qua. Mục đích là để ngăn chặn các trang web khác tự tuyên bố trang của họ là phiên bản thay thế của trang bạn.
- Ưu tiên liên kết hai chiều cho các phiên bản mới: Nếu việc duy trì đầy đủ các đường liên kết hai chiều cho mọi ngôn ngữ trở nên khó khăn, bạn có thể bỏ qua một số ngôn ngữ trên một số trang. Tuy nhiên, hãy ưu tiên liên kết hai chiều giữa các trang mới có phiên bản ngôn ngữ và các ngôn ngữ ban đầu hoặc chính. Ví dụ: nếu trang gốc của bạn bằng tiếng Pháp với URL nằm trên miền
.fr
, hãy ưu tiên liên kết hai chiều giữa trang.fr
hiện có với các trang mới tạo cho Mexico (.mx) và Tây Ban Nha (.es) hơn là giữa các trang biến thể tiếng Tây Ban Nha mới tạo (.mx và .es) với nhau. - Sử dụng x-default cho trang dự phòng: Hãy thêm một trang dự phòng cho các ngôn ngữ chưa được khớp, đặc biệt là trên bộ chọn ngôn ngữ/quốc gia hoặc trang chủ tự động chuyển hướng, bằng cách sử dụng giá trị
x-default
:<link rel="alternate" href="https://example.com/" hreflang="x-default" />
Thẻ HTML
Để thông báo cho Google về các phiên bản ngôn ngữ và khu vực khác nhau của trang, bạn có thể thêm phần tử <link rel="alternate" hreflang="lang_code"...>
vào phần <head>
của trang HTML. Điều này đặc biệt hữu ích nếu bạn không có sơ đồ trang web hoặc không thể chỉ định tiêu đề phản hồi HTTP cho trang web.
Mỗi biến thể của trang nên có một tập hợp phần tử <link>
trong phần <head>
, một đường liên kết cho mỗi phiên bản trang, bao gồm cả phiên bản chính của trang đó. Tất cả các phiên bản của trang đều phải có cùng một tập hợp các đường liên kết này.
Cú pháp của phần tử link:
<link rel="alternate" hreflang="lang_code" href="url_of_page" />
- lang_code: Mã ngôn ngữ/mã khu vực mà phiên bản này của trang nhắm đến, hoặc
x-default
để khớp với mọi ngôn ngữ không có trong thẻ hreflang trên trang. - url_of_page: URL đầy đủ cho phiên bản trang này đối với ngôn ngữ hoặc khu vực đã chỉ định.
Các thẻ <link>
phải được đặt trong phần <head>
với định dạng hợp lệ của mã HTML. Nếu còn băn khoăn, bạn có thể dán mã vào trình xác thực HTML để đảm bảo các đường liên kết nằm chính xác trong phần tử <head>
. Ngoài ra, tránh kết hợp thẻ link với các thuộc tính khác như media
trong một thẻ <link>
.
Ví dụ
Example Widgets, Inc có một trang web phục vụ người dùng ở Mỹ, Anh và Đức. Dưới đây là các URL tương ứng với từng khu vực, trong đó nội dung cơ bản giống nhau nhưng có sự khác biệt nhất định tùy thuộc vào khu vực:
URL biến thể theo khu vực:
https://en.example.com/page.html
: Trang chủ chung bằng tiếng Anh, cung cấp thông tin về phí vận chuyển quốc tế từ Mỹ.https://en-gb.example.com/page.html
: Trang chủ tại Vương quốc Anh, hiển thị giá bằng bảng Anh (GBP).https://en-us.example.com/page.html
: Trang chủ tại Hoa Kỳ, hiển thị giá bằng đô la Mỹ (USD).https://de.example.com/page.html
: Trang chủ bằng tiếng Đức, nhắm mục tiêu đến người dùng tại Đức.https://www.example.com/
: Trang mặc định, không nhắm mục tiêu đến ngôn ngữ hoặc địa phương cụ thể nào, với tùy chọn cho người dùng chọn ngôn ngữ và khu vực của họ.
Lưu ý rằng Google không tự động sử dụng các miền con ngôn ngữ (như en, en-gb, en-us, de) để xác định đối tượng mục tiêu của trang. Bạn cần phải chỉ rõ đối tượng mục tiêu trong mã HTML.
Dưới đây là đoạn mã HTML nên được thêm vào phần <head>
của mỗi trang có trong danh sách các URL biến thể theo khu vực. Đoạn mã này sẽ giúp người dùng tại Mỹ, Anh, các khu vực nói tiếng Anh nói chung và người dùng nói tiếng Đức được chuyển hướng đến phiên bản đã được bản địa hóa phù hợp, trong khi những người dùng khác sẽ được đưa đến trang chủ mặc định. Google Tìm kiếm sẽ trả về kết quả dựa trên chế độ cài đặt ngôn ngữ của trình duyệt người dùng.
<head>
<title>Widgets, Inc</title>
<link rel="alternate" hreflang="en-gb"
href="https://en-gb.example.com/page.html" />
<link rel="alternate" hreflang="en-us"
href="https://en-us.example.com/page.html" />
<link rel="alternate" hreflang="en"
href="https://en.example.com/page.html" />
<link rel="alternate" hreflang="de"
href="https://de.example.com/page.html" />
<link rel="alternate" hreflang="x-default"
href="https://www.example.com/" />
</head>
Tiêu đề HTTP
Trong quá trình tối ưu hóa SEO, bạn có thể sử dụng tiêu đề HTTP trong phản hồi GET của trang để thông báo cho Google về tất cả các phiên bản ngôn ngữ và khu vực của trang. Phương pháp này đặc biệt hữu ích cho các tệp không phải HTML, chẳng hạn như tệp PDF.
Cú pháp của tiêu đề HTTP
Cấu trúc của tiêu đề HTTP sẽ như sau:
Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...
Giải thích cú pháp:
<url_x>
: Đây là URL đầy đủ của trang thay thế, tương ứng với mã ngôn ngữ được chỉ định trong thuộc tínhhreflang
. URL này phải nằm trong dấu< >
. Ví dụ:<https://www.google.com>
.lang_code_x
: Đây là mã ngôn ngữ hoặc mã khu vực mà phiên bản trang này nhắm đến, hoặcx-default
để chỉ định phiên bản mặc định khi không có phiên bản ngôn ngữ phù hợp nào khác.
Bạn cần liệt kê tất cả các phiên bản của trang bằng cách sử dụng các cặp giá trị <url>
, rel="alternate"
và hreflang
, trong đó có cả phiên bản hiện tại của trang. Các cặp giá trị này phải được phân tách bằng dấu phẩy, và tiêu đề HTTP phải được trả về giống nhau cho tất cả các phiên bản của trang.
Ví dụ
Dưới đây là một ví dụ về tiêu đề HTTP Link:
được trả về từ một trang web có ba phiên bản của cùng một tệp PDF. Phiên bản đầu tiên dành cho người nói tiếng Anh, phiên bản thứ hai dành cho người nói tiếng Đức tại Thụy Sĩ, và phiên bản thứ ba dành cho người nói tiếng Đức ở các khu vực khác.
Link: <https://example.com/file.pdf>; rel="alternate"; hreflang="en",
<https://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
<https://de.example.com/file.pdf>; rel="alternate"; hreflang="de"
Sơ đồ trang web
Sơ đồ trang web XML là một công cụ mạnh mẽ giúp Google hiểu rõ về các biến thể ngôn ngữ và khu vực của mỗi URL trên trang web của bạn. Bằng cách này, bạn có thể đảm bảo rằng tất cả các phiên bản ngôn ngữ và khu vực của trang đều được Google thu thập dữ liệu và lập chỉ mục một cách hiệu quả.
Cách tạo sơ đồ trang web XML với các biến thể ngôn ngữ/khu vực:
- Xác định không gian tên xhtml:
Bắt đầu bằng cách xác định không gian tên xhtml trong tệp XML như sau:xmlns:xhtml="http://www.w3.org/1999/xhtml"
- Tạo phần tử
<url>
riêng cho mỗi URL:
Tạo một phần tử<url>
riêng biệt cho mỗi URL, giống như cách bạn tạo sơ đồ trang web thông thường. - Thêm phần tử
<loc>
:
Mỗi phần tử<url>
phải chứa một phần tử con<loc>
để chỉ định URL của trang. - Liệt kê mọi phiên bản thay thế bằng phần tử
<xhtml:link>
:
Trong mỗi phần tử<url>
, thêm các phần tử<xhtml:link rel="alternate" hreflang="supported_language-code">
để liệt kê tất cả các phiên bản thay thế của trang, bao gồm cả chính trang đó. Mặc dù thứ tự của các phần tử con<xhtml:link>
không quan trọng, nhưng bạn nên giữ nguyên thứ tự để dễ dàng kiểm tra lỗi. - Tải sơ đồ trang web lên thư mục chính xác:
Đảm bảo rằng sơ đồ trang web được tải lên thư mục tương ứng trên trang web của bạn. Sơ đồ này chỉ nên chứa các URL con của thư mục lưu trữ nó.
Ví dụ
Dưới đây là một ví dụ về sơ đồ trang web XML cho một trang có ba phiên bản ngôn ngữ:
- Tiếng Anh: Dành cho người nói tiếng Anh trên toàn thế giới.
- Tiếng Đức: Dành cho người nói tiếng Đức.
- Tiếng Đức (Thụy Sĩ): Dành cho người nói tiếng Đức tại Thụy Sĩ.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url><loc>https://www.example.com/english/page.html</loc>
<xhtml:link
rel=“alternate”
hreflang=“de”
href=“https://www.example.de/deutsch/page.html”/>
<xhtml:link
rel=“alternate”
hreflang=“de-ch”
href=“https://www.example.de/schweiz-deutsch/page.html”/>
<xhtml:link
rel=“alternate”
hreflang=“en”
href=“https://www.example.com/english/page.html”/>
</url>
<url><loc>https://www.example.de/deutsch/page.html</loc>
<xhtml:link
rel=“alternate”
hreflang=“de”
href=“https://www.example.de/deutsch/page.html”/>
<xhtml:link
rel=“alternate”
hreflang=“de-ch”
href=“https://www.example.de/schweiz-deutsch/page.html”/>
<xhtml:link
rel=“alternate”
hreflang=“en”
href=“https://www.example.com/english/page.html”/>
</url>
<url>
<loc>https://www.example.de/schweiz-deutsch/page.html</loc>
<xhtml:link
rel=“alternate”
hreflang=“de”
href=“https://www.example.de/deutsch/page.html”/>
<xhtml:link
rel=“alternate”
hreflang=“de-ch”
href=“https://www.example.de/schweiz-deutsch/page.html”/>
<xhtml:link
rel=“alternate”
hreflang=“en”
href=“https://www.example.com/english/page.html”/>
</url>
</urlset>
Các mã ngôn ngữ và mã vùng được hỗ trợ
Giá trị của thuộc tính hreflang
có thể bao gồm một hoặc hai mã giá trị, phân tách bằng dấu gạch ngang. Ví dụ: en-US
. Mã đầu tiên trong thuộc tính hreflang
là mã ngôn ngữ theo định dạng ISO 639-1, và mã thứ hai không bắt buộc đại diện cho mã khu vực theo định dạng ISO 3166-1 Alpha 2 của URL thay thế.
Lưu ý quan trọng: Bạn không thể chỉ định mã quốc gia bằng tên của quốc gia đó. Mã đầu tiên phải là viết tắt của ngôn ngữ, và Google không tự động trích xuất thông tin ngôn ngữ từ mã quốc gia.
Ví dụ về cách sử dụng mã ngôn ngữ và mã khu vực:
- Tốt:
de-be
(Tiếng Đức cho người dùng ở Bỉ)nl-be
(Tiếng Hà Lan cho người dùng ở Bỉ)fr-be
(Tiếng Pháp cho người dùng ở Bỉ)
- Không chính xác:
be
(Mã này không hợp lệ vì nó là mã ngôn ngữ của tiếng Belarus)
Đơn giản hóa mã ngôn ngữ:
Bạn có thể chỉ sử dụng mã ngôn ngữ mà không cần chỉ định khu vực. Ví dụ:
de
: Nội dung tiếng Đức, không phân biệt khu vựcen-GB
: Nội dung tiếng Anh, nhắm đến người dùng ở Vương quốc Anhde-ES
: Nội dung tiếng Đức, nhắm đến người dùng ở Tây Ban Nha
Biến thể của tập lệnh ngôn ngữ:
Đối với các biến thể của tập lệnh ngôn ngữ, tập lệnh phù hợp sẽ được xác định từ khu vực. Ví dụ, khi sử dụng zh-TW
cho người dùng ở Đài Loan, tập lệnh ngôn ngữ sẽ tự động là tiếng Trung phồn thể. Bạn cũng có thể chỉ định tập lệnh cụ thể bằng cách sử dụng mã ISO 15924 như sau:
zh-Hant
: Tiếng Trung (phồn thể)zh-Hans
: Tiếng Trung (giản thể)
Giống như các mã ngôn ngữ khác, bạn cũng có thể thêm mã khu vực không bắt buộc. Ví dụ, bạn có thể sử dụng zh-Hans-US
để chỉ định tiếng Trung giản thể cho người dùng ở Hoa Kỳ.
Sử dụng giá trị x-default cho các ngôn ngữ không khớp
Giá trị x-default
được sử dụng để chỉ định một trang mặc định khi không có ngôn ngữ hoặc khu vực nào trên trang web khớp với chế độ cài đặt ngôn ngữ của người dùng. Đây là cách hiệu quả để đảm bảo người dùng được chuyển hướng đến một trang phù hợp khi trang web của bạn không hỗ trợ ngôn ngữ hoặc khu vực của họ. Mặc dù giá trị x-default
có thể được áp dụng cho bất kỳ trang nào, nhưng nó thường được thiết kế để sử dụng hiệu quả nhất cho các trang chọn ngôn ngữ.
Không cần thiết phải chỉ định mã ngôn ngữ cụ thể cho giá trị x-default
, vì trang này được nhắm đến người dùng có chế độ cài đặt ngôn ngữ không phù hợp với bất kỳ phiên bản ngôn ngữ nào mà trang web của bạn cung cấp.
Để triển khai chú thích hreflang="x-default"
, hãy thêm một thẻ <link>
bổ sung vào các chú thích hreflang
hiện có và đặt thuộc tính href
thành URL mà bạn muốn người dùng truy cập nếu ngôn ngữ của họ không được hỗ trợ trên trang web của bạn. Ví dụ về cách triển khai HTML có thể như sau:
<link rel="alternate" href="https://example.com/en-gb" hreflang="en-gb" />
<link rel="alternate" href="https://example.com/en-us" hreflang="en-us" />
<link rel="alternate" href="https://example.com/en-au" hreflang="en-au" />
<link rel="alternate" href="https://example.com/country-selector" hreflang="x-default" />
Khắc phục sự cố
Lỗi thường gặp
Dưới đây là một số lỗi phổ biến khi triển khai thẻ hreflang:
1. Thiếu liên kết đối ứng: Nếu trang X liên kết đến trang Y bằng thẻ hreflang, thì trang Y cũng phải liên kết ngược lại với trang X. Nếu không thiết lập liên kết hai chiều giữa các trang sử dụng thẻ hreflang, các chú thích có thể bị bỏ qua hoặc không được hiểu đúng. Ví dụ, nếu trên trang https://de.example.com/index.html có đoạn mã sau:
<link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/index.html" />
Thì trên trang https://en-gb.example.com/index.html cũng cần phải có đoạn mã hreflang liên kết ngược lại với phiên bản tiếng Đức:
<link rel="alternate" hreflang="de" href="https://de.example.com/index.html" />
2. Sử dụng mã ngôn ngữ không chính xác: Đảm bảo rằng các mã ngôn ngữ bạn sử dụng đều tuân theo chuẩn ISO 639-1 (mã ngôn ngữ) và ISO 3166-1 Alpha 2 (mã khu vực, nếu có) của URL thay thế. Việc chỉ xác định khu vực mà không có mã ngôn ngữ sẽ không hợp lệ.
Gỡ lỗi hreflang
Bạn có thể sử dụng một số công cụ từ bên thứ ba để kiểm tra và gỡ lỗi các thẻ hreflang. Dưới đây là một số công cụ phổ biến:
- Công cụ tạo thẻ hreflang của Aleyda Solis: Hỗ trợ tạo và chỉnh sửa các thẻ hreflang một cách dễ dàng.
- Công cụ kiểm tra SEO của Merkle: Giúp xác thực các thẻ hreflang trên một trang web đang hoạt động.
Việc thông báo cho Google về các phiên bản đã bản địa hóa của trang web là một bước quan trọng trong việc tối ưu hóa SEO và cải thiện trải nghiệm người dùng. Bằng cách sử dụng các phương pháp như thẻ hreflang
, tiêu đề HTTP và sơ đồ trang web, bạn có thể đảm bảo rằng người dùng được chuyển hướng đến phiên bản phù hợp nhất của trang. Điều này không chỉ giúp nâng cao hiệu quả SEO mà còn tạo ra một trải nghiệm người dùng tốt hơn và nhất quán hơn trên toàn cầu.