Blog
SEOWebsite

Vì sao website song ngữ bị Google hiện nhầm trang cho khách?

Click Star Team24 tháng 10, 202611 phút đọc
Vì sao website song ngữ bị Google hiện nhầm trang cho khách?
TÓM TẮT

Giải thích cách Google chọn trang theo ngôn ngữ và 5 điểm cần làm đúng: URL riêng, hreflang 2 chiều, canonical tự trỏ, không tự chuyển ngôn ngữ, xử lý bản dịch chưa xong. Dựa trên tài liệu Google Search Central, Next.js và MDN.

Hình dung một công ty có website tiếng Việt và bản tiếng Anh. Khách nước ngoài tìm bằng tiếng Anh nhưng Google hiện trang tiếng Việt, còn khách trong nước đôi khi mở ra bản tiếng Anh.

Bài này giải thích vì sao chuyện đó xảy ra và cách ngăn lại: URL riêng cho từng ngôn ngữ, thẻ hreflang (khai báo cho Google biết trang nào là bản dịch của trang nào), canonical, việc không tự chuyển ngôn ngữ và cách xử lý bản dịch chưa xong.

Nguồn chính là tài liệu Google Search Central, Next.js và MDN, đối chiếu ngày 24/10/2026. Bài không hứa tăng thứ hạng.

Điểm chính

  • Google khuyên mỗi ngôn ngữ có URL riêng, không đổi ngôn ngữ bằng cookie hay cài đặt trình duyệt, vì Googlebot (trình thu thập của Google) thường đến từ Mỹ và không gửi Accept-Language (ngôn ngữ ưa thích của trình duyệt).
  • hreflang chỉ có tác dụng khi 2 trang trỏ lẫn nhau. Mỗi bản liệt kê chính nó và mọi bản còn lại, kèm mã ISO 639-1 (tiếng Việt là vi).
  • Canonical của mỗi bản nên tự trỏ chính nó. Chỉ khi thân bài chưa dịch, các bản mới bị coi là trùng nhau.
  • Đừng tự chuyển khách sang ngôn ngữ đoán từ IP hay trình duyệt. Nút chuyển ngôn ngữ nên là liên kết thật.
  • Bản dịch chưa xong thì đừng công bố URL, hoặc đặt noindex (báo Google không đưa trang vào kết quả) và gỡ khỏi hreflang (khung tham khảo của Click Star).
  • Search Console đã bỏ báo cáo Nhắm mục tiêu quốc tế. Hãy kiểm bằng HTML nguồn, Kiểm tra URL và công cụ ngoài.

So sánh 2 cách phục vụ nhiều ngôn ngữ: mỗi ngôn ngữ có URL riêng và đổi nội dung theo cookie hoặc IP trên cùng 1 URL

Website song ngữ: Google chọn trang theo ngôn ngữ thế nào

Theo Google Search Central (cập nhật 10/12/2025), Google xác định ngôn ngữ từ nội dung nhìn thấy trên trang, không từ URL hay thuộc tính lang. Vì vậy mỗi trang nên dùng 1 ngôn ngữ cho cả thân bài lẫn menu.

hreflang không giúp Google đoán ngôn ngữ. Theo tài liệu về bản địa hóa (cập nhật 21/09/2026), nó cho Google biết các trang là biến thể của cùng 1 nội dung, để chọn đúng bản cho từng người tìm.

Click Star gom nguyên nhân hiện nhầm trang thành 3 nhóm (cách gom của Click Star, mỗi nhóm có điều khoản tương ứng trong tài liệu Google):

  • 1 URL đổi ngôn ngữ theo cookie, IP hoặc trình duyệt, nên Google chỉ thấy 1 bản.
  • Thiếu hreflang, hoặc hreflang sai mã và không trỏ lẫn nhau.
  • Bản dịch nửa vời: chỉ dịch menu và chân trang, thân bài giữ nguyên.

Mỗi ngôn ngữ 1 địa chỉ riêng: chọn cấu trúc URL nào

Google khuyên dùng URL khác nhau cho từng bản ngôn ngữ (cập nhật 10/12/2025). Nếu đổi nội dung động, Google có thể không thu thập hết các bản, vì Googlebot thường xuất phát từ Mỹ và không gửi Accept-Language.

Cùng tài liệu nêu 4 cách đặt địa chỉ:

  • Tên miền quốc gia (example.de): nhắm quốc gia rõ, nhưng tốn kém và chỉ nhắm được 1 quốc gia.
  • Tên miền phụ (de.example.com): dễ cài, nhưng người dùng khó nhận ra đó là ngôn ngữ hay quốc gia.
  • Thư mục con (example.com/de/): dễ cài, chi phí duy trì thấp, nhưng tách bạch các site khó hơn.
  • Tham số URL (site.com?loc=de): Google không khuyến nghị.

Bảng 4 cách đặt địa chỉ cho bản ngôn ngữ: tên miền quốc gia, tên miền phụ, thư mục con và tham số URL, kèm ưu nhược điểm theo Google

Có 1 điểm dễ hiểu nhầm: chữ en hay de trong tên miền phụ không được Google dùng để xác định đối tượng của trang. Bạn phải khai báo rõ bằng hreflang.

hreflang: cách khai báo cho đúng

Theo Google, có 3 cách khai báo tương đương nhau: thẻ <link> trong <head>, tiêu đề HTTP Link (hữu ích cho tệp như PDF) và sơ đồ trang XML. Dùng cả 3 không có lợi gì thêm và khó quản lý hơn, nên hãy chọn 1.

Ví dụ minh họa với tên miền example.com. Mỗi bản của trang chứa cùng bộ thẻ này:

<link rel="alternate" hreflang="vi" href="https://example.com/dich-vu" />
<link rel="alternate" hreflang="en" href="https://example.com/en/services" />
<link rel="alternate" hreflang="x-default" href="https://example.com/dich-vu" />

Các quy tắc Google nêu:

  • Mỗi bản phải liệt kê chính nó và mọi bản khác, bằng URL đầy đủ gồm cả https.
  • Nếu 2 trang không trỏ lẫn nhau thì khai báo bị bỏ qua, để người ngoài không thể tự khai site của họ là bản dịch của trang bạn.
  • Thẻ phải nằm trong <head> hợp lệ.

Về mã: phần đầu là ngôn ngữ theo ISO 639-1, phần sau (tùy chọn) là vùng theo ISO 3166-1 Alpha 2. Danh sách mã của Thư viện Quốc hội Mỹ ghi tiếng Việt là vi, nên vi đúng còn vn (mã quốc gia) sai.

Không được dùng mã vùng đứng một mình, và UK không có tác dụng. Với 2 ngôn ngữ cùng nội dung, vi và en là đủ; chỉ thêm vùng như en-GB khi có bản khác theo nước.

Giá trị x-default dành cho người có ngôn ngữ không khớp bản nào; Google nói nó được thiết kế cho trang chọn ngôn ngữ.

Danh sách kiểm hreflang gồm 3 nhóm: nội dung mỗi trang, giá trị mã và cách khai báo

Canonical tự trỏ: vì sao mỗi bản phải tự nhận mình

Canonical (địa chỉ đại diện) là cách bạn nói "đây là URL chính của nội dung này". Theo Google, đó là gợi ý chứ không phải lệnh (cập nhật 20/08/2026).

Khi dùng hreflang, canonical phải là trang cùng ngôn ngữ, hoặc bản thay thế gần nhất nếu thiếu (cập nhật 10/07/2026). Trang /en có canonical trỏ về bản tiếng Việt là khai báo mâu thuẫn (suy ra từ quy tắc trên).

Các bản ngôn ngữ chỉ bị coi là trùng khi nội dung chính cùng ngôn ngữ. Nếu chỉ dịch đầu trang và chân trang, các trang bị gom thành 1.

Click Star đã có bài riêng về chuyển hướng 301, canonical, robots.txt và sơ đồ trang, nên phần này chỉ nêu điểm về ngôn ngữ.

Có nên tự chuyển ngôn ngữ theo IP hay trình duyệt

Không nên. Google khuyên tránh tự chuyển người dùng sang bản ngôn ngữ khác dựa trên điều bạn đoán về họ, vì người dùng và công cụ tìm kiếm có thể không xem được đủ các bản. Hãy thêm liên kết để họ tự chọn.

MDN (sửa đổi 04/07/2025) nói Accept-Language chỉ là gợi ý, và máy chủ không nên ghi đè lựa chọn rõ ràng của người dùng. Safari và chế độ ẩn danh của Chrome chỉ gửi 1 ngôn ngữ.

Một số khung dựng sẵn bật chuyển hướng như vậy. Tài liệu Next.js cho Pages Router (cập nhật 03/03/2026) nói khi người dùng vào /, Next.js đoán ngôn ngữ từ Accept-Language và chuyển hướng nếu khác mặc định. Tùy chọn localeDetection: false tắt hành vi này.

Cách làm Click Star đề xuất, không phải chuẩn của Google:

  • URL gốc phục vụ bản mặc định, không chuyển hướng.
  • Muốn gợi ý thì hiện thanh mời đổi ngôn ngữ để khách tự quyết.
  • Nút chuyển ngôn ngữ là thẻ <a href> dẫn tới đúng trang tương ứng, không chỉ về trang chủ.

Theo Google, chỉ liên kết là thẻ <a> kèm href mới chắc chắn được thu thập (cập nhật 10/12/2025).

Bản dịch chưa xong thì xử lý thế nào

Google cảnh báo rằng chỉ dịch phần khung trang trong khi thân bài giữ nguyên 1 ngôn ngữ có thể khiến cùng nội dung xuất hiện nhiều lần trong kết quả. Với App Router, tài liệu Next.js dùng notFound() để trả 404 khi ngôn ngữ trong URL không được hỗ trợ (cập nhật 10/06/2026); cách này áp dụng được cho bài chưa dịch (cách áp dụng của Click Star).

Click Star đề xuất 2 hướng (khung tham khảo của Click Star, không lấy từ nguồn ngoài):

  • Hướng A: chưa công bố URL tiếng Anh cho bài đó (trả 404), không liệt kê trong hreflang và ẩn nút chuyển ngôn ngữ ở trang tiếng Việt.
  • Hướng B: nếu URL buộc phải tồn tại, hiện thông báo bản dịch đang chuẩn bị, đặt noindex, canonical tự trỏ và loại khỏi hreflang.

Cách đặt noindex: thẻ <meta name="robots" content="noindex"> hoặc tiêu đề HTTP X-Robots-Tag: noindex. Trang không được bị chặn bởi robots.txt, nếu không Googlebot không thấy lệnh. Với trang ít quan trọng, Google thu thập lại có thể mất nhiều tháng.

Việc gỡ trang noindex khỏi hreflang là suy luận của Click Star: trang đã noindex sẽ không xuất hiện trong kết quả, nên khai báo nó chỉ làm bộ khai báo rối thêm. Khi bản dịch xong: bỏ noindex, thêm hreflang ở cả 2 phía và đưa URL vào sơ đồ trang.

Làm trên Next.js

Với App Router, tài liệu generateMetadata (cập nhật 19/08/2026) cho khai báo alternates.canonical và alternates.languages; Next.js sinh các thẻ canonical và hreflang tương ứng. Ví dụ minh họa cho trang tiếng Anh:

export const metadata = {
  alternates: {
    canonical: 'https://example.com/en/services',
    languages: {
      vi: 'https://example.com/dich-vu',
      en: 'https://example.com/en/services',
      'x-default': 'https://example.com/dich-vu',
    },
  },
}

Cẩn thận với layout. Cùng tài liệu nói metadata từ nhiều đoạn của cùng 1 route được gộp nông, khóa trùng bị thay theo thứ tự. Click Star suy ra: nếu đặt alternates ở layout gốc, trang nào không khai báo lại sẽ kế thừa canonical đó.

Cách kiểm tra website song ngữ

Google đã ngừng báo cáo Nhắm mục tiêu quốc tế trong Search Console nhưng vẫn dùng hreflang. Báo cáo Lập chỉ mục trang cũng ghi, ở mục "Alternate page with proper canonical tag", rằng trang ngôn ngữ thay thế không được Search Console phát hiện.

Click Star không thấy tài liệu nào của Google về một báo cáo hreflang riêng. Quy trình 5 bước của Click Star (khung tham khảo):

  1. Đọc HTML nguồn từng bản: có bộ hreflang đầy đủ, canonical tự trỏ, lang đúng.
  2. Kiểm 2 chiều: nếu A trỏ B thì B có trỏ lại A.
  3. Dùng công cụ Kiểm tra URL trên trang đã lập chỉ mục: so "User-declared canonical" với "Google-selected canonical" và xem HTML Google thu được. Bản kiểm tra trực tiếp không dự đoán được canonical.
  4. Xem báo cáo Lập chỉ mục trang và so số URL /en trong sơ đồ trang với số URL đã lập chỉ mục (cách đo của Click Star).
  5. Dùng công cụ ngoài kiểm hreflang. Tài liệu Google nêu tên 2 công cụ (của Aleyda Solis và Merkle) và nói Google không bảo trì hay kiểm chứng chúng. Click Star chưa dùng thử.

Quy trình 5 bước kiểm tra website song ngữ, từ đọc HTML nguồn đến công cụ ngoài

Ý nghĩa với doanh nghiệp Việt Nam

Trước tiên hãy hỏi: có cần bản tiếng Anh thật không? Chỉ nên có khi bạn dịch đầy đủ và có khách cần đọc, vì bản dịch mỏng tạo ra trang trùng.

Tên miền .vn là tên miền quốc gia. Theo Google, nó là tín hiệu mạnh rằng site nhắm vào nước đó. Nếu muốn phục vụ cả khách quốc tế trên cùng tên miền, thư mục con như /en/ là lựa chọn dễ duy trì.

Đánh giá của Click Star. Click Star cho rằng nhiều lỗi ở site song ngữ đến từ quy trình, không phải cú pháp: bài được công bố trước khi bản dịch xong, hoặc có thêm chuyển hướng tự động vì "tiện cho khách". Cả hai đều phá điều Google cần: mỗi bản có địa chỉ riêng, công khai và nhất quán.

Về lợi ích: Click Star làm dịch vụ thiết kế website chuẩn SEO, nên bài có thể nghiêng về giải pháp xây site đúng chuẩn. Hãy đối chiếu với tài liệu Google.

Lộ trình 5 ngày làm việc

Khung tham khảo của Click Star, không lấy từ nguồn ngoài:

  • Ngày 1: lập bảng 2 cột, URL tiếng Việt và tiếng Anh tương ứng, chỉ gồm trang đã dịch đầy đủ.
  • Ngày 2: chốt cấu trúc URL và chọn 1 cách khai báo hreflang.
  • Ngày 3: thêm canonical tự trỏ, hreflang đủ 2 chiều, x-default và lang đúng.
  • Ngày 4: bỏ chuyển hướng tự động, thêm nút chuyển ngôn ngữ bằng liên kết thật, xử lý trang chưa dịch theo hướng A hoặc B.
  • Ngày 5: chạy quy trình kiểm tra 5 bước, ghi lại số URL trong sơ đồ trang và số URL đã lập chỉ mục.

Những sai lầm thường gặp

  1. Dùng cookie hoặc IP để đổi ngôn ngữ trên cùng 1 URL, khiến Google chỉ thấy 1 bản.
  2. Khai hreflang một phía: trang A trỏ B nhưng B không trỏ lại A.
  3. Canonical của bản /en trỏ về bản tiếng Việt, hoặc đặt canonical ở layout làm mọi trang kế thừa.
  4. Dùng sai mã: vn thay cho vi, mã vùng đứng một mình, hoặc UK.
  5. Chỉ dịch menu và chân trang trong khi thân bài giữ nguyên.
  6. Để URL tiếng Anh công khai và cho lập chỉ mục khi chưa có nội dung.
  7. Làm nút chuyển ngôn ngữ bằng JavaScript không có href, hoặc luôn dẫn về trang chủ.

Điều chưa biết

Click Star không tìm thấy số liệu Google công bố về mức cải thiện nhờ hreflang, và không có số đo cho Việt Nam. Click Star cũng không tìm thấy tài liệu Google về trang noindex nằm trong bộ hreflang; khuyến nghị gỡ là của Click Star.

Click Star chưa mở được tài liệu chính thức của Bing, nên bài không nêu cách Bing xử lý hreflang. Thời gian Google cập nhật sau khi sửa cũng không có con số chung.

Chia sẻ bài viếtLinkedInFacebook

Cần tư vấn cụ thể cho doanh nghiệp?

Click Star giúp anh/chị xây dựng giải pháp phù hợp ngành nghề và quy mô. Trả lời mọi câu hỏi trong giờ làm việc.

Chat ZaloNhắn tin tư vấn ngayGọi Hotline0383 406 735