Tarotas Bởi Inithouse: Quản lý 5 ngôn ngữ trên một tên miền duy nhất
Chúng tôi xây dựng các công cụ tại Inithouse. Một trong những sản phẩm của chúng tôi là Tarotas, một ứng dụng bài tarot. Chúng tôi cung cấp nội dung bằng năm ngôn ngữ: tiếng Séc, tiếng Anh, tiếng Ba Lan, tiếng Slovak và tiếng Đức. Tất cả đều nằm trên một tên miền duy nhất.
Chúng tôi phải lựa chọn một cấu trúc cho thiết lập đa ngôn ngữ của mình. Chúng tôi đã xem xét ba phương án:
- TLD theo mã quốc gia (example.cz)
- Subdomain (cs.example.com)
- Thư mục con (example.com/cs/)
Chúng tôi đã chọn thư mục con. Đây là lý do tại sao.
Thư mục con giúp giữ mọi thứ ở cùng một nơi. Bạn chỉ cần một lần triển khai (deployment), một chứng chỉ SSL và một thuộc tính Search Console. Bạn cũng giữ được toàn bộ sức mạnh liên kết (link authority) trong cùng một "giỏ". Điều này rất quan trọng đối với các sản phẩm đang ở giai đoạn đầu.
Các phương án khác có chi phí cao:
- TLD cung cấp khả năng nhắm mục tiêu địa lý (geo-targeting) mạnh mẽ. Nhưng bạn phải quản lý nhiều tên miền và các bản ghi DNS. Điều này tạo ra gánh nặng vận hành rất lớn.
- Subdomain hoạt động như các trang web bán độc lập. Điều này làm phân tán sức mạnh liên kết của bạn. Bạn cũng cần các thuộc tính Search Console riêng biệt cho từng cái.
Stack kỹ thuật của chúng tôi cũng ảnh hưởng đến lựa chọn này. Tarotas sử dụng React. Thư mục con thực chất chỉ là các route. Bộ định tuyến (router) của chúng tôi xử lý chúng rất dễ dàng. Trong khi đó, subdomain sẽ yêu cầu những thay đổi phức tạp về DNS và triển khai.
Để vận hành việc này, chúng tôi sử dụng các thẻ hreflang. Các thẻ này thông báo cho các công cụ tìm kiếm biết nên hiển thị ngôn ngữ nào. Tuy nhiên, việc triển khai khá phức tạp.
Những sai lầm phổ biến làm hỏng SEO đa ngôn ngữ:
- Thiếu liên kết hai chiều. Nếu trang A liên kết đến trang B, trang B phải liên kết ngược lại trang A.
- Sai thẻ canonical. Mỗi trang ngôn ngữ phải tự trỏ về chính nó dưới dạng URL canonical. Nếu bạn trỏ tất cả các ngôn ngữ về một URL tiếng Anh duy nhất, Google sẽ gỡ chỉ mục (de-index) các ngôn ngữ khác của bạn.
- Tiêm mã ở phía client (Client-side injection). Các công cụ tìm kiếm có thể không thấy các thẻ nếu bạn chỉ chèn chúng bằng JavaScript. Bạn phải đảm bảo các thẻ meta xuất hiện ngay trong mã HTML ban đầu.
- Quên x-default. Bạn cần một ngôn ngữ dự phòng (fallback) cho những người dùng không khớp với bất kỳ ngôn ngữ nào.
Lời khuyên của chúng tôi dành cho sản phẩm đa ngôn ngữ của bạn:
- Sử dụng thư mục con nếu bạn muốn sự đơn giản và chia sẻ sức mạnh liên kết.
- Sử dụng TLD nếu việc nhắm mục tiêu địa lý và giá cả tại địa phương quan trọng hơn ngôn ngữ.
- Đảm bảo các URL canonical của bạn là tự tham chiếu (self-referencing) cho mọi ngôn ngữ.
- Sử dụng các thẻ chỉ chứa ngôn ngữ nếu nội dung của bạn có thể áp dụng xuyên biên giới.
- Theo dõi Google Search Console để kiểm tra các cảnh báo về nội dung trùng lặp.
- Hãy kiên nhẫn chờ đợi kết quả trong vài tuần. Google xử lý các tín hiệu này khá chậm.
Nếu lưu lượng truy cập quốc tế của bạn có vẻ thấp, hãy kiểm tra các thẻ canonical trước. Đó thường là nơi phát sinh lỗi.
