Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

Thông báo cho Google về các phiên bản đã bản địa hoá của trang

Nếu trang của bạn có nhiều phiên bản cho nhiều ngôn ngữ hoặc khu vực, hãy thông báo cho Google về các phiên bản khác nhau này. Việc nà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ữ khác của trang, nhưng tốt nhất bạn nên chỉ rõ các trang cho riêng từng ngôn ngữ hoặc khu vực.

Dưới đây là ví dụ một số tình huống mà bạn nên cho biết các phiên bản khác của trang:

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

Các phiên bản đã bản địa hoá của một trang chỉ được coi là trùng lặp nếu nội dung chính của trang vẫn chưa được dịch.

Cách chỉ rõ các phiên bản khác của trang

Có ba cách để thông báo cho Google về các phiên bản của một trang theo từng ngôn ngữ/khu vực:

Hãy dùng hreflang để cho Google biết về các biến thể của nội dung. Nhờ đó, chúng tôi có thể hiểu được rằng các trang này là các biến thể đã bản địa hoá của cùng một nội dung. Google không dùng hreflang hoặc thuộc tính HTML lang để phát hiện ngôn ngữ của trang; thay vào đó, chúng tôi dùng thuật toán để xác định ngôn ngữ.

Nguyên tắc cho mọi phương pháp

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

Thẻ HTML

Hãy thêm phần tử <link rel="alternate" hreflang="lang_code"... > vào tiêu đề trang để cho Google biết mọi biến thể của trang theo ngôn ngữ và khu vực. Cách này 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.

Đối với mỗi biến thể của trang, hãy cung cấp một tập hợp phần tử <link> trong phần tử <head>, một đường liên kết cho mỗi biến thể trang bao gồm cả chính trang đó. Phiên bản nào của trang cũng phải có tập hợp các đường liên kết như nhau. Xem các nguyên tắc bổ sung.

Sau đây là cú pháp của từng phần tử link:

<link rel="alternate" hreflang="lang_code" href="url_of_page" />
Cú pháp
lang_code Một mã ngôn ngữ/mã khu vực được hỗ trợ 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 đủ điều kiện cho phiên bản của trang này đối với ngôn ngữ/khu vực đã chỉ định.

Hãy đặt thẻ <link> gần phía trên cùng của phần tử <head>. Ở mức tối thiểu, thẻ <link> phải nằm trong một mục <head> có định dạng hợp lệ hoặc trước mục bất kỳ có thể khiến <head> đóng sớm, chẳng hạn như <p> hoặc pixel theo dõi. Nếu bạn còn băn khoăn, hãy dán mã từ trang được kết xuất vào trình xác thực HTML để đảm bảo các đường liên kết nằm bên trong phần tử <head>.

Ví dụ

Example Widgets, Inc có một trang web phục vụ người dùng ở Mỹ, Anh và Đức. Những URL sau đây chứa nội dung về cơ bản là giống nhau nhưng có sự khác biệt theo từng khu vực:

URL có sự khác biệt theo từng khu vực
https://en.example.com/page.html Trang chủ chung bằng tiếng Anh, chứa 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.
https://en-us.example.com/page.html Trang chủ tại Hoa Kỳ, hiển thị giá bằng USD.
https://de.example.com/page.html Trang chủ bằng tiếng Đức.
https://www.example.com/ Trang mặc định không nhắm đến ngôn ngữ hay địa phương nào và có các bộ chọn để người dùng chọn ngôn ngữ và khu vực của họ.

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

Đây là HTML sẽ nằm trong phần <head> của mọi trang có trong bảng các URL có sự khác biệt về khu vực. 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 đã bản địa hoá và tất cả những người dùng khác đến một trang chủ chung. Google Tìm kiếm sẽ trả về kết quả phù hợp cho người dùng theo chế độ cài đặt trên trình duyệt của họ.

<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

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 biến thể của trang theo ngôn ngữ và khu vực. Cách này 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", ...
Cú pháp
<url_x> URL đủ điều kiện của trang thay thế, tương ứng với chuỗi ký tự biểu thị ngôn ngữ gán cho thuộc tính hreflang được liên kết. URL phải nằm trong các dấu <>. Ví dụ: <https://www.google.com>
lang_code_x Một mã ngôn ngữ/mã khu vực được hỗ trợ mà phiên bản này của trang nhắm đến, hoặc x-default để khớp với ngôn ngữ bất kỳ không có trong thẻ hreflang trên trang.

Bạn phải chỉ định một nhóm giá trị <url>, rel="alternate"hreflang cho mọi phiên bản của trang , trong đó có phiên bản được yêu cầu, phân cách bằng dấu phẩy như được trình bày trong ví dụ bên dưới. Tiêu đề Link: được trả về cho mọi phiên bản của trang đều 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ề từ một trang web có ba phiên bản của cùng một tệp PDF: một phiên bản cho người nói tiếng Anh, một phiên bản cho người nói tiếng Đức tại Thuỵ Sĩ và một phiên bản cho người nói tiếng Đức ở những 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

Bạn có thể dùng sơ đồ trang web để cho Google biết tất cả biến thể của mỗi URL theo ngôn ngữ và khu vực. Cách làm như sau: thêm một phần tử <loc> để chỉ định một URL, trong đó có các mục con <xhtml:link> liệt kê mọi biến thể ngôn ngữ/khu vực 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, mỗi mục có 3 mục con giống hệt nhau.

Quy tắc đối với sơ đồ trang web:

  • Xác định không gian 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, cách làm tương tự như với mọi sơ đồ trang web khác.
  • Mỗi phần tử <url> phải chứa một phần tử con <loc> có vai trò chỉ định URL trang.
  • Mỗi phần tử <url> phải có một phần tử con <xhtml:link rel="alternate" hreflang="supported_language-code"> có vai trò liệt kê mọi phiên bản thay thế của trang, kể cả chính phiên bản đó. 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 một thư mục trên trang web của bạn để áp dụng sơ đồ trang web. Xin lưu ý rằng sơ đồ trang web chỉ có thể chứa các URL con của thư mục lưu trữ sơ đồ đó. Xem nguyên tắc về sơ đồ trang web nói chung để biết thêm thông tin.
  • Xem các nguyên tắc bổ sung.

Ví dụ

Sau đây là một trang tiếng Anh nhắm đến người nói tiếng Anh trên toàn thế giới, còn các phiên bản tương đương của trang này nhắm đến người nói tiếng Đức trên toàn thế giới và người nói tiếng Đức ở Thuỵ Sĩ. URL có trên trang web bao gồm:

  • www.example.com/english/page.html nhắm đến người nói tiếng Anh.
  • www.example.de/deutsch/page.html nhắm đến người nói tiếng Đức.
  • www.example.de/schweiz-deutsch/page.html nhắm đến người nói tiếng Đức ở Thuỵ Sĩ.

Sau đây là sơ đồ trang web cho ba trang nêu trên:

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

Mã ngôn ngữ/mã 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ể xác định khu vực (theo định dạng ISO 3166-1 Alpha 2) của một URL thay thế. Nếu chỉ có một mã được chỉ định, Google sẽ giả định mã đó là mã ngôn ngữ. Ngôn ngữ không cần liên quan đến khu vực. Ví dụ:

  • de: Nội dung tiếng Đức, bất kể 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

Đối với các 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 ở Đà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 cụ thể bằng cách sử dụng ISO 15924 như sau:

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

Như với các mã ngôn ngữ khác, bạn cũng có thể chỉ định một khu vực không bắt buộc. Ví dụ: Bạn có thể dùng zh-Hans-US để chỉ định tiếng Trung (giản thể) cho người dùng ở Hoa Kỳ.

Dùng giá trị x-default cho các ngôn ngữ chưa khớp

Giá trị x-default đặt trước được sử dụng khi không có ngôn ngữ/khu vực khác khớp với chế độ cài đặt trên trình duyệt của người dùng. Giá trị này không bắt buộc nhưng bạn nên dùng để 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 cho trang chủ trên trang web của bạn, trong đó có một bản đồ cho phép người dùng nhấp vào để chọn quốc gia của họ.

Bạn không cần chỉ định mã ngôn ngữ cho giá trị x-default; trang này nhắm đến những người dùng có chế độ cài đặt ngôn ngữ không khớp với trang web của bạn, do đó ngôn ngữ trên trang là không cần thiết.

Để triển khai chú thích hreflang="x-default", hãy thêm một thẻ link khác vào các chú thích hreflang hiện có rồi đặt thuộc tính href thành URL mà bạn muốn người dùng truy cập vào nếu trang web của bạn không hỗ trợ ngôn ngữ của họ. Ví dụ: cách triển khai HTML có thể có dạng 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à những lỗi phổ biến nhất khi sử dụng hreflang:

  • Thiếu đường 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 bạn không liên kết hai chiều đối với mọi trang sử dụng chú thích hreflang, thì các chú thích đó có thể bị bỏ qua hoặc không được hiểu đúng. Ví dụ: hãy xem xét đường liên kết này trên https://de.example.com/index.html:
    <link rel="alternate" hreflang="en-gb" href="https://en-gb.example.com/index.html" />
    Bạn cũng phải có một đường liên kết hreflang trên https://en-gb.example.com/index.html trỏ đến phiên bản de của nội dung:
    <link rel="alternate" hreflang="de" href="https://de.example.com/index.html" />
  • 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 chỉ định được ngôn ngữ (theo định dạng ISO 639-1) và có thể là chỉ định cả khu vực (theo định dạng ISO 3166-1 Alpha 2) của một URL thay thế. Nếu chỉ xác định khu vực thì là không hợp lệ.

Gỡ lỗi hreflang

Bạn có thể sử dụng nhiều công cụ của bên thứ ba để gỡ lỗi cho mã chú thích hreflang. Sau đây là một vài công cụ phổ biến. Google không duy trì hay kiểm tra những công cụ này.