Cho Google biết về các phiên bản địa phương của trang của bạn

Sử dụng hreflang hoặc sơ đồ trang web cho các trang theo khu vực hoặc ngôn ngữ cụ thể

Nếu trang của bạn có nhiều phiên bản cho các ngôn ngữ hoặc khu vực khác nhau, hãy cho Google biết về các phiên bản khác nhau này. Việc làm như vậy sẽ giúp Google Tìm kiếm đưa người dùng đến phiên bản phù hợp nhất của trang theo ngôn ngữ hoặc khu vực.

Xin lưu ý rằng ngay cả khi bạn không làm gì, Google vẫn có thể tìm thấy các phiên bản ngôn ngữ thay thế của trang của bạn, nhưng tốt nhất bạn nên xác định rõ các trang theo ngôn ngữ hoặc theo khu vực của mình.

Một số trường hợp ví dụ trong đó bạn nên xác định trang thay thế:

  • Nếu bạn giữ lại nội dung chính trong một ngôn ngữ duy nhấtchỉ dịch mẫu, chẳng hạn như thành phần điều hướng và chân trang. Các trang có nội dung do người dùng tạo, chẳng hạn như diễn đàn, thường làm như thế này.
  • Nội dung của bạn có khác biệt nhỏ giữa các khu vực với nội dung tương tự trong một ngôn ngữ. Ví dụ: bạn có thể có nội dung tiếng Anh được nhắm mục tiêu đến Mỹ, Anh và Ireland.
  • Nếu nội dung trang web của bạn được dịch hoàn toàn sang nhiều ngôn ngữ. Ví dụ: bạn có cả hai phiên bản tiếng Đức và tiếng Anh của mỗi trang.
Creating multi-regional and multilingual sites

Các phương thức để xác định trang thay thế

Có ba cách để xác định nhiều phiên bản ngôn ngữ/khu vực của một trang cho Google:

Thẻ HTML

Thêm phần tử <link rel="alternate" hreflang="lang_code"... > vào tiêu đề trang của bạn để cho Google biết về tất cả các phiên bản theo ngôn ngữ và khu vực của một trang. Điều này hữu ích nếu bạn không có sơ đồ trang web hoặc khả năng chỉ định tiêu đề phản hồi HTTP cho trang web của mình.

Mỗi phiên bản của trang phải bao gồm một tập hợp các phần tử <link> trong phần tử <head>, một liên kết cho mỗi phiên bản của trang bao gồm cả chính trang đó. Tập hợp liên kết phải giống nhau cho mọi phiên bản của trang. Xem các nguyên tắc bổ sung.

Sau đây là cú pháp của mỗi phần tử liên kết:

<link rel="alternate" hreflang="lang_code" href="url_of_page" />

lang_code
ngôn ngữ/khu vực được hỗ trợ được nhắm mục tiêu bởi phiên bản này của trang hoặc x-default để khớp với bất kỳ ngôn ngữ nào không có trong thẻ hreflang trên trang.
url_of_page
URL đủ điều kiện cho phiên bản của trang này đối với ngôn ngữ/khu vực đã xác định.
Đặt các thẻ <link> gần đầu phần tử <head>. Ở mức tối thiểu, các thẻ <link> phải nằm trong phần <head> có định dạng hợp lệ hoặc trước bất kỳ mục nào có thể khiến <head> đóng giữa chừng, chẳng hạn như <p> hoặc pixel theo dõi. Nếu nghi ngờ, hãy dán mã từ trang được hiển thị của bạn vào trình xác thực HTML để đảm bảo rằng các liên kết nằm bên trong phần tử <head> .

Ví dụ

Chẳng hạn như Widgets, Inc có một trang web phục vụ người dùng ở Mỹ, Anh và Đức. Các URL sau đây chứa nội dung về phần lớn là giống nhau, nhưng có khác biệt giữa các khu vực:

  • http://en.example.com/page.html - Trang chủ tiếng Anh chung có chứa thông tin về phí vận chuyển quốc tế từ Mỹ.
  • http://en-gb.example.com/page.html - Trang chủ của tại vương quốc Anh hiển thị giá bằng bảng Anh.
  • http://en-us.example.com/page.html - Trang chủ tại Mỹ hiển thị giá bằng đô la Mỹ.
  • http://de.example.com/page.html Trang chủ tiếng Đức.
  • http://www.example.com/ Trang mặc định không nhắm mục tiêu bất kỳ ngôn ngữ nào; có các bộ chọn để người dùng chọn ngôn ngữ và khu vực của họ.

Xin lưu ý rằng các tên miền phụ theo ngôn ngữ trong các URL này (en, en-gb, en-us, de) không được Google sử dụng để xác định đối tượng mục tiêu cho trang; bạn phải ánh xạ đối tượng mục tiêu một cách rõ ràng.

Đây là HTML sẽ được dán vào phần <head> của tất cả các trang nêu trên. HTML này sẽ đưa người dùng ở Mỹ, Anh, người nói tiếng Anh nói chung và người nói tiếng Đức đến các trang địa phương và tất cả những người khác đến một trang chủ chung. Google Tìm kiếm trả lại kết quả phù hợp cho người dùng theo các tùy chọn cài đặt trình duyệt của họ.

<head>
  <title>Widgets, Inc</title>
  <link rel="alternate" hreflang="en-gb"
        href="http://en-gb.example.com/page.html" />
  <link rel="alternate" hreflang="en-us"
        href="http://en-us.example.com/page.html" />
  <link rel="alternate" hreflang="en"
        href="http://en.example.com/page.html" />
  <link rel="alternate" hreflang="de"
        href="http://de.example.com/page.html" />
  <link rel="alternate" hreflang="x-default"
        href="http://www.example.com/" />
</head>

 

Tiêu đề HTTP

Bạn có thể trả lại tiêu đề HTTP trong phản hồi GET của trang để cho Google biết về tất cả các phiên bản theo ngôn ngữ và khu vực của một trang. Điều này rất hữu ích cho các tệp không phải HTML (như tệp PDF).

Đây là định dạng của tiêu đề:

Link: <url1>; rel="alternate"; hreflang="lang_code_1", <url2>; rel="alternate"; hreflang="lang_code_2", ...

<url_x>
URL đủ điều kiện cho trang thay thế tương ứng với chuỗi vị trí được gán cho thuộc tính hreflang liên kết. URL phải bao gồm các dấu <> xung quanh. Ví dụ: <https://www.google.com>
lang_code_x
ngôn ngữ/khu vực được hỗ trợ được nhắm mục tiêu bởi phiên bản này của trang hoặc x-default để khớp với bất kỳ ngôn ngữ nào không có trong thẻ hreflang trên trang.

Bạn phải chỉ định một tập hợp các giá trị <url>, rel="alternate"hreflang cho mọi phiên bản của trang bao gồm phiên bản được yêu cầu, được phân tách bằng dấu phẩy như trong ví dụ bên dưới. Tiêu đề Link: được trả về cho mọi phiên bản của trang là giống nhau. Xem các nguyên tắc bổ sung.

Ví dụ

Dưới đây là ví dụ về tiêu đề Link: được trả về bởi trang web có ba phiên bản cho một tệp PDF: một tệp cho người nói tiếng Anh, một tệp cho người nói tiếng Đức từ Thụy Sĩ và một tệp cho tất cả những người nói tiếng Đức khác:

Link: <http://example.com/file.pdf>; rel="alternate"; hreflang="en",
      <http://de-ch.example.com/file.pdf>; rel="alternate"; hreflang="de-ch",
      <http://de.example.com/file.pdf>; rel="alternate"; hreflang="de"

 

Sơ đồ trang web

Bạn có thể sử dụng Sơ đồ trang web để cho Google biết về tất cả các phiên bản theo ngôn ngữ và khu vực của từng URL. Để làm như vậy, hãy thêm phần tử <loc> xác định một URL, trong đó mục con <xhtml:link> liệt kê mọi phiên bản theo khu vực/ngôn ngữ của trang bao gồm cả chính trang đó. Do đó nếu một trang của bạn có 3 phiên bản, thì sơ đồ trang web của bạn sẽ có 3 mục, trong đó mỗi mục có 3 mục con giống hệt nhau.

Quy tắc sơ đồ trang web:

  • Xác định vùng chứa tên xhtml như sau:
    xmlns:xhtml="http://www.w3.org/1999/xhtml"
  • Tạo một phần tử <url> riêng cho mỗi URL.
  • Mỗi phần tử <url> phải bao gồm một mục con <loc> cho biết URL trang.
  • Mỗi phần tử <url> đều phải có một phần tử con <xhtml:link rel="alternate" hreflang="supported_language-code"> liệt kê mọi phiên bản thay thế của trang, bao gồm cả chính trang đó.  Thứ tự của các phần tử con <xhtml:link> này không quan trọng, mặc dù bạn nên duy trì một thứ tự để giúp dễ dàng kiểm tra lỗi hơn.
  • Xem các nguyên tắc bổ sung.

Ví dụ

Sau đây là một trang tiếng Anh được nhắm mục tiêu đến người nói tiếng Anh trên toàn thế giới, còn phiên bản tương đương của trang được nhắm mục tiêu đến người nói tiếng Đức trên toàn thế giới và người nói tiếng Đức ở Thụy Sĩ. Dưới đây là tất cả các URL có trên trang web của bạn:

  • www.example.com/english/page.html, được nhắm mục tiêu đến người nói tiếng Anh.
  • www.example.com/deutsch/page.html, được nhắm mục tiêu đến người nói tiếng Đức.
  • www.example.com/schweiz-deutsch/page.html, được nhắm mục tiêu đến người nói tiếng Đức ở Thụy Sĩ.

Dưới đây là sơ đồ trang web cho ba trang đó:

<?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>http://www.example.com/english/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/deutsch/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
  <url>
    <loc>http://www.example.com/schweiz-deutsch/page.html</loc>
    <xhtml:link 
               rel="alternate"
               hreflang="de"
               href="http://www.example.com/deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="de-ch"
               href="http://www.example.com/schweiz-deutsch/page.html"/>
    <xhtml:link 
               rel="alternate"
               hreflang="en"
               href="http://www.example.com/english/page.html"/>
  </url>
</urlset>

Hướng dẫn cho tất cả các phương pháp

  • Mỗi phiên bản ngôn ngữ phải liệt kê chính trang đó cũng như tất cả các phiên bản ngôn ngữ khác.
  • Các URL thay thế phải đủ điều kiện, bao gồm phương thức truyền tải (http/https), vì vậy hãy sử dụng
     https://example.com/fookhông phải //example.com/foo hay /foo
  • URL thay thế không cần phải nằm trong cùng một miền. 
  • Nếu bạn có vài URL thay thế được nhắm mục tiêu đến người dùng sử dụng cùng một ngôn ngữ nhưng ở các khu vực khác nhau, thì bạn cũng nên cung cấp URL chung cho người dùng ngôn ngữ đó ở các khu vực không xác định. Ví dụ: bạn có thể có các URL cụ thể cho người nói tiếng Anh tại Ireland (en-ie), Canada (en-ca) và Úc (en-au), nhưng cũng nên cung cấp một trang tiếng Anh (en) chung cho người tìm kiếm tại Mỹ, Vương quốc Anh và tất cả các khu vực nói tiếng Anh khác. Trang này có thể là một trong những trang cụ thể nói trên nếu bạn muốn.
  • Nếu hai trang không trỏ đến nhau, các thẻ sẽ bị bỏ qua. Điều này là để ai đó trên một trang web khác không thể tự ý tạo thẻ tự tuyên bố là phiên bản thay thế của một trong các trang của bạn.
  • Nếu thấy khó duy trì tập hợp đầy đủ gồm các liên kết hai chiều cho mọi ngôn ngữ, bạn có thể bỏ qua một số ngôn ngữ trên một số trang; Google sẽ vẫn xử lý những trang trỏ đến nhau. Tuy nhiên, điều quan trọng là liên kết các trang ngôn ngữ mới mở rộng hai chiều với (các) ngôn ngữ ban đầu/chính. Ví dụ: nếu ban đầu trang web của bạn được tạo bằng tiếng Pháp với URL nằm trên miền .fr, điều quan trọng hơn là liên kết hai chiều các trang tiếng Mexico (.mx) và Tây Ban Nha (.es) mới hơn đến trang .fr chính của bạn, thay vì liên kết hai chiều các trang biến thể của tiếng Tây Ban Nha mới (.mx và .es) với nhau.
  • Cân nhắc việc thêm trang dự phòng cho các ngôn ngữ chưa so 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. Hãy sử dụng giá trị x mặc định:
    <link rel="alternate" href="http://example.com/" hreflang="x-default" />

Mã ngôn ngữ/khu vực được hỗ trợ

Giá trị của thuộc tính hreflang xác định ngôn ngữ (theo định dạng ISO 639-1) và có thể là khu vực (theo định dạng ISO 3166-1 Alpha 2) của một URL thay thế. Ví dụ:

  • de: Nội dung tiếng Đức, không phụ thuộc vào khu vực
  • en-GB: Nội dung tiếng Anh, cho người dùng ở Anh
  • de-ES: Nội dung tiếng Đức, cho người dùng ở Tây Ban Nha

Không chỉ định mã quốc gia bằng chính mã đó. Google không tự động lấy ngôn ngữ từ mã quốc gia. Bạn có thể chỉ định mã ngôn ngữ bằng chính mã đó nếu bạn muốn đơn giản hóa việc gắn nhãn.  Thêm mã quốc gia sau ngôn ngữ để hạn chế trang ở một khu vực cụ thể.  Ví dụ:

  • be: Tiếng Belarus, không phụ thuộc vào khu vực (không phải tiếng Pháp ở Bỉ)
  • nl-be: Tiếng Hà Lan cho người Bỉ
  • fr-be: Tiếng Pháp cho người Bỉ 

Đối với biến thể của tập lệnh ngôn ngữ, tập lệnh thích hợp được lấy từ quốc gia. Ví dụ: khi sử dụng zh-TW cho người dùng ở Dài Loan, tập lệnh ngôn ngữ được lấy tự động (trong ví dụ này là tiếng Trung phồn thể). Bạn cũng có thể chỉ định tập lệnh rõ ràng bằng cách sử dụng ISO 15924, như thế này:

  • zh-Hant: Tiếng Trung (Phồn thể)
  • zh-Hans: Tiếng Trung (Giản thể)

Ngoài ra, bạn cũng có thể chỉ định tổ hợp tập lệnh và khu vực—ví dụ: sử dụng zh-Hans-TW để chỉ định tiếng Trung (Giản thể) cho người dùng ở Đài Loan.

Sử dụng thẻ x-default cho các ngôn ngữ chưa so khớp

Giá trị đặt trước hreflang="x-default" được sử dụng khi không có ngôn ngữ/khu vực nào khác khớp với tùy chọn cài đặt trình duyệt của người dùng. Giá trị này là tùy chọn, nhưng nên dùng để bạn kiểm soát trang khi không có ngôn ngữ nào phù hợp. Một trường hợp nên dùng là để nhắm mục tiêu trang chủ trên trang web của bạn, trong đó có bản đồ có thể nhấp cho phép người dùng chọn quốc gia của họ.

Khắc phục sự cố

Lỗi thường gặp

Dưới đây là những sai lầm phổ biến nhất khi sử dụng hreflang:

  • Thiếu liên kết trả về: Nếu trang X liên kết đến trang Y, thì trang Y phải liên kết lại với trang X. Nếu điều này không đúng với tất cả các trang sử dụng chú thích hreflang, các chú thích đó có thể bị bỏ qua hoặc không được phân tích chính xác.
  • Mã ngôn ngữ không chính xác: Hãy đảm bảo rằng tất cả các mã ngôn ngữ bạn sử dụng đều xác định ngôn ngữ (theo định dạng ISO 639-1) và có thể cả khu vực (theo định dạng ISO 3166-1 Alpha 2) của một URL thay thế. Chỉ xác định khu vực là không hợp lệ.

Khắc phục các lỗi hreflang

Bạn có thể sử dụng báo cáo Nhắm mục tiêu quốc tế để khắc phục các vấn đề phổ biến nhất. Đảm bảo rằng Google có thời gian để thu thập dữ liệu các trang của bạn, sau đó truy cập tab Ngôn ngữ trên báo cáo để xem có bất kỳ lỗi nào không.

Ngoài ra còn có nhiều công cụ của bên thứ ba khác. Dưới đây là một vài công cụ phổ biến. (Các công cụ này không được Google cung cấp hay kiểm tra.)

Bài viết này có hữu ích không?
Chúng tôi có thể cải thiện trang này bằng cách nào?