Đánh dấu hreflang trong mã trang là một chuyện, còn những gì thực sự nhận được từ người dùng ở Đức, Ba Lan hoặc Brazil lại là chuyện khác. Google có thể bỏ qua các thẻ, CDN có thể chuyển hướng không đúng, và máy chủ có thể trả về phiên bản sai theo IP. Cách duy nhất để đảm bảo mọi thứ hoạt động là kiểm tra trang web "trực tiếp" từ các quốc gia khác nhau, chứ không chỉ tin vào đánh dấu trên giấy.
Hreflang là gì và tại sao chỉ có thẻ trong mã là không đủ
Hreflang là một thuộc tính thông báo cho các công cụ tìm kiếm phiên bản ngôn ngữ hoặc khu vực nào của trang được dành cho người dùng nào. Về mặt kỹ thuật, điều này xuất hiện như một tập hợp các liên kết trong <head> hoặc trong sitemap.xml, nơi mỗi trang liên kết đến các phiên bản thay thế của nó: ru-RU, en-US, de-DE và nhiều hơn nữa.
Vấn đề là, kiểm tra qua các công cụ xác thực mã (Screaming Frog, Ahrefs, Semrush) chỉ cho thấy những gì được viết trong đánh dấu. Nó không trả lời câu hỏi chính: điều gì thực sự xảy ra khi một người sống từ Warsaw hoặc Madrid mở trang web của bạn? Có xảy ra chuyển hướng đến địa phương cần thiết không? CDN có chuyển hướng người dùng đến phiên bản tiếng Anh do bộ nhớ cache không? Geo-IP có xác định đúng quốc gia không nếu người dùng truy cập qua nhà mạng di động?
Đối với các nhà tiếp thị và chuyên gia SEO, những người thử nghiệm các trang web đa khu vực, các trang đích cho các khu vực khác nhau hoặc các chiến dịch quảng cáo trên Google Ads và Facebook Ads cho các quốc gia cụ thể, điều này là rất quan trọng. Nếu hreflang được cấu hình sai, người dùng từ quốc gia cần thiết có thể thấy phiên bản không đúng của trang web, mất chuyển đổi, và công cụ tìm kiếm có thể lập chỉ mục URL sai trong kết quả của quốc gia đó.
Tại sao hreflang "nói dối": 5 lý do điển hình
Trong thực tế, sự khác biệt giữa đánh dấu và hành vi thực tế của trang web xảy ra vì một số lý do, và hầu hết trong số đó không thể phát hiện chỉ bằng cách nhìn vào mã trang.
- Chuyển hướng Geo-IP ghi đè lên hreflang. Máy chủ xác định quốc gia theo IP và cưỡng chế chuyển hướng đến địa phương, ngay cả khi người dùng rõ ràng đã mở một phiên bản ngôn ngữ khác qua liên kết trực tiếp.
- CDN lưu trữ trả về phiên bản lỗi thời. Cloudflare hoặc CDN khác có thể lưu trữ HTML mà không xem xét quốc gia yêu cầu, và tất cả người dùng nhận được cùng một phiên bản bất kể khu vực.
- Sự không khớp giữa mã ngôn ngữ và khu vực. Trong đánh dấu có ghi
en, trong khi cần phải làen-GBvàen-USriêng biệt — kết quả là người dùng từ Anh và Mỹ thấy một phiên bản. - Thiếu thẻ tự tham chiếu. Trang không liên kết đến chính nó trong danh sách hreflang, do đó Google có thể không coi đánh dấu là hợp lệ.
- Các biến thể URL khác nhau với www và không, http và https. Các thẻ chỉ định một giao thức, trong khi máy chủ thực tế trả về chuyển hướng đến giao thức khác, điều này làm hỏng chuỗi kiểm tra.
Tất cả những vấn đề này chỉ xuất hiện khi truy cập thực tế từ IP của quốc gia cần thiết. Do đó, cách duy nhất đáng tin cậy để thử nghiệm là mô phỏng một người truy cập từ mỗi quốc gia mục tiêu và xem trang web thực sự trả về cái gì.
Cần gì để kiểm tra từ 10 quốc gia
Để kiểm tra hreflang "trực tiếp", cần phải có được địa chỉ IP từ mỗi quốc gia mục tiêu một cách vật lý hoặc lập trình và xem phiên bản nào của trang web mà máy chủ trả về cho IP đó. Có ba cách làm việc:
- Các máy chủ proxy với gắn kết địa lý đến quốc gia cần thiết — cách linh hoạt và có thể mở rộng nhất, phù hợp cho cả kiểm tra thủ công và tự động hóa.
- Trình duyệt chống phát hiện (Dolphin Anty, AdsPower, Multilogin, GoLogin, Octo Browser) — tiện lợi khi cần lưu các hồ sơ trình duyệt riêng cho mỗi quốc gia và so sánh một cách trực quan, không bị nhầm lẫn trong cookies và bộ nhớ cache.
- Các công cụ dòng lệnh (curl, httpie) với proxy — để kiểm tra nhanh các tiêu đề HTTP, chuyển hướng và phản hồi từ máy chủ mà không cần tải giao diện.
Để thử nghiệm hreflang từ 10 quốc gia, proxy dân cư là lựa chọn tốt nhất — chúng sử dụng IP của người dùng thực từ quốc gia cụ thể, vì vậy các dịch vụ geo-IP và CDN xác định chúng giống như một người truy cập thông thường. Proxy từ trung tâm dữ liệu đôi khi bị đưa vào danh sách đen bởi các dịch vụ địa lý và có thể cho kết quả sai, khi máy chủ xác định chúng không theo quốc gia đã khai báo mà như "trung tâm dữ liệu, quốc gia không xác định".
Cài đặt proxy trong trình duyệt chống phát hiện
Cách thực tiễn nhất cho các nhà tiếp thị không có kỹ năng lập trình là tạo các hồ sơ riêng trong trình duyệt chống phát hiện cho mỗi trong 10 quốc gia mục tiêu và thực hiện kiểm tra hreflang qua đó một cách trực quan.
Các bước trong Dolphin Anty hoặc AdsPower như sau:
- Tạo một hồ sơ trình duyệt mới, đặt tên theo quốc gia, ví dụ "hreflang-DE" cho Đức.
- Trong cài đặt hồ sơ, mở phần "Proxy" và chọn loại
HTTP/SOCKS5. - Nhập thông tin proxy gắn kết địa lý đến Đức: IP hoặc host, cổng, tên đăng nhập và mật khẩu.
- Lưu hồ sơ và chờ kiểm tra — trình duyệt chống phát hiện sẽ hiển thị vị trí địa lý cụ thể, múi giờ và IP.
- Khởi động hồ sơ và mở trang web của bạn qua URL trực tiếp, không chuyển từ tìm kiếm.
- Kiểm tra phiên bản nào đã mở: URL trong thanh địa chỉ, ngôn ngữ nội dung, giá trị hreflang qua "Xem mã trang".
- Lặp lại cho mỗi trong 10 quốc gia mục tiêu, tạo hồ sơ riêng cho mỗi quốc gia.
Cách tiếp cận này thuận tiện vì các hồ sơ được lưu lại, và bạn có thể quay lại chúng sau một tuần hoặc một tháng để kiểm tra xem hành vi của trang web có thay đổi sau khi cập nhật CDN hoặc triển khai phiên bản mới hay không. Đối với nhiệm vụ này, proxy dân cư gắn kết với thành phố cụ thể, thay vì chỉ với quốc gia — điều này cung cấp mô phỏng chính xác hơn cho người truy cập thực tế.
Kiểm tra qua dòng lệnh và curl
Nếu cần kiểm tra nhanh không phải phiên bản trực quan, mà chính xác là các tiêu đề HTTP, chuyển hướng và phản hồi từ máy chủ, trình duyệt không phải lúc nào cũng cung cấp bức tranh đầy đủ — một phần logic bị ẩn trong các tiêu đề phản hồi. Để làm điều này, sử dụng curl với proxy là rất tiện lợi.
Kiểm tra cơ bản qua proxy gắn kết đến quốc gia cần thiết:
curl -x http://login:password@proxy-host:port \
-I https://example.com/ \
-H "Accept-Language: de-DE"
Cờ -I chỉ hiển thị các tiêu đề phản hồi, không có nội dung của trang. Điều này cho phép nhanh chóng thấy mã chuyển hướng (301 hoặc 302), tiêu đề Location, chỉ ra nơi máy chủ chuyển hướng đến, và tiêu đề Vary, cho biết liệu Accept-Language có được xem xét trong bộ nhớ cache hay không.
Để lấy HTML và tìm các thẻ hreflang trong phản hồi của máy chủ, hãy bỏ cờ -I và lọc đầu ra:
curl -x http://login:password@proxy-host:port \
-s https://example.com/ | grep -i hreflang
Yêu cầu này sẽ lấy tất cả các dòng có đề cập đến hreflang trực tiếp từ HTML được máy chủ trả về, chứ không phải từ những gì được mong đợi theo tài liệu. Nếu kết quả khác nhau tùy thuộc vào proxy của quốc gia nào gửi yêu cầu, có nghĩa là máy chủ thực sự thay đổi nội dung theo IP, chứ không chỉ tuyên bố điều này trong đánh dấu tĩnh.
Để tự động hóa việc kiểm tra tất cả 10 quốc gia, bạn có thể viết một script đơn giản, lặp qua danh sách proxy và lưu phản hồi của mỗi yêu cầu vào một tệp riêng để so sánh:
for country in de fr es it pl nl br mx jp kr; do
curl -x "http://login:password@${country}.proxy-host:port" \
-s https://example.com/ | grep -i hreflang > "result_${country}.txt"
done
Sau khi thực hiện script, bạn chỉ cần so sánh các tệp — nếu tất cả đều có cùng một tập hợp thẻ hreflang, có nghĩa là máy chủ không thay đổi đánh dấu theo địa lý, điều này có thể là hành vi mong đợi (đánh dấu tĩnh và phổ quát) hoặc một vấn đề (nếu mong đợi có sự chuẩn hóa khác nhau cho các khu vực khác nhau).
Kiểm tra qua trình duyệt và DevTools
Để kiểm tra trực quan và phân tích trải nghiệm người dùng, tiện hơn khi sử dụng trình duyệt thông thường với proxy đã được cài đặt và công cụ phát triển mở. Điều này không yêu cầu mã và phù hợp với các nhà tiếp thị muốn thấy bằng mắt mình những gì người dùng thấy.
Các bước thực hiện:
- Cài đặt proxy trong trình duyệt qua tiện ích mở rộng (ví dụ: FoxyProxy) hoặc qua cài đặt mạng hệ thống, chỉ định IP của quốc gia kiểm tra.
- Mở trang web và ngay lập tức nhấn F12 để mở DevTools, sau đó chuyển đến tab "Network".
- Tải lại trang và tìm yêu cầu tài liệu đầu tiên (thường có tên giống như miền của trang web).
- Trong bảng bên phải, mở tab "Headers" và kiểm tra phần "Response Headers" để tìm chuyển hướng và giá trị
Content-Language. - Mở tab "Elements" và qua Ctrl+F tìm tất cả các trường hợp
hreflangtrong mã nguồn của trang. - So sánh URL trong thanh địa chỉ với URL mà bạn mong đợi thấy cho quốc gia này.
Phương pháp này đặc biệt hữu ích khi cần kiểm tra đồng thời tính chính xác kỹ thuật của đánh dấu và hiển thị nội dung — ví dụ, liệu tiền tệ, định dạng ngày hoặc banner được địa phương hóa có được hiển thị đúng cho quốc gia cụ thể hay không.
Chọn proxy nào cho bài kiểm tra nhắm mục tiêu địa lý
Không phải tất cả các loại proxy đều phù hợp cho việc kiểm tra hreflang. Sự khác biệt nằm ở cách các dịch vụ xác định địa lý nhận diện IP và mức độ ổn định của proxy giữ gắn kết với quốc gia đã khai báo.
| Loại proxy | Độ chính xác geo-IP | Khi nào sử dụng |
|---|---|---|
| Proxy dân cư | Cao, IP của nhà cung cấp thực | Mô phỏng chính xác người truy cập sống từ quốc gia và thành phố |
| Proxy di động | Cao, IP của các nhà mạng | Kiểm tra hành vi cho lưu lượng di động và các phiên bản AMP |
| Proxy từ trung tâm dữ liệu | Thấp hơn, đôi khi được đánh dấu là trung tâm dữ liệu | Kiểm tra nhanh các tiêu đề và chuyển hướng qua curl, nơi độ chính xác địa lý không quan trọng |
Để kiểm tra cuối cùng trước khi ra mắt trang web đa ngôn ngữ hoặc chiến dịch quảng cáo quốc tế trên Google Ads, tốt nhất là sử dụng proxy dân cư hoặc di động — chính chúng mang lại kết quả gần nhất với những gì người dùng thực tế từ quốc gia mục tiêu sẽ thấy.
Danh sách kiểm tra hreflang cho 10 quốc gia
Để không bỏ lỡ điều gì trong quá trình kiểm tra hàng loạt, hãy sử dụng danh sách sau cho mỗi trong 10 quốc gia:
- Đã kết nối proxy với IP của chính quốc gia này, vị trí địa lý đã được xác nhận qua IP-checker.
- Mở URL trực tiếp của trang web (không chuyển từ tìm kiếm và không có referrer).
- Kiểm tra URL cuối cùng sau tất cả các chuyển hướng — có trùng khớp với địa phương mong đợi không.
- Trong mã trang có thẻ hreflang tự tham chiếu đến chính nó.
- Trong danh sách hreflang có tất cả 9 phiên bản ngôn ngữ khác mà không bỏ sót.
- Mã ngôn ngữ và khu vực phải tuân theo tiêu chuẩn ISO (ví dụ,
pt-BR, chứ không chỉpt, nếu cần phân biệt Brazil và Bồ Đào Nha). - Tiêu đề
Vary: Accept-Languagecó mặt, nếu nội dung phụ thuộc vào ngôn ngữ của trình duyệt. - Nội dung của trang (tiền tệ, giá cả, banner) phải tương ứng với khu vực đã khai báo.
- Thẻ canonical
rel="canonical"chỉ đến chính nó, không phải đến một địa phương khác. - Kiểm tra lại sau một tuần — sau khi cập nhật bộ nhớ cache của CDN, kết quả không thay đổi một cách bất ngờ.
Những lỗi thường gặp khi thử nghiệm
Khi kiểm tra hreflang thủ công qua proxy, các nhà tiếp thị thường mắc phải một số lỗi lặp đi lặp lại, làm sai lệch kết quả của bài kiểm tra.
Thứ nhất, kiểm tra được thực hiện từ tài khoản đã đăng nhập hoặc với phiên đã lưu — trong trường hợp này, máy chủ có thể hiển thị nội dung cá nhân hóa, không phải những gì một người truy cập mới sẽ thấy. Luôn kiểm tra ở chế độ ẩn danh hoặc trong hồ sơ sạch của trình duyệt chống phát hiện mà không có lịch sử.
Thứ hai, quên xóa bộ nhớ cache DNS và bộ nhớ cache của trình duyệt giữa các lần chuyển đổi proxy, do đó phiên bản cũ của trang vẫn tiếp tục hiển thị, mặc dù IP đã thay đổi. Sử dụng tải lại cứng trang (Ctrl+Shift+R) mỗi khi thay đổi khu vực.
Thứ ba, chỉ kiểm tra trang chính, bỏ qua các phần nội bộ và thẻ sản phẩm — chính nơi đó thường xuyên gặp sự cố với đánh dấu hreflang do việc tạo URL động trên đường đi.
Thứ tư, sử dụng cùng một proxy cho tất cả 10 quốc gia, chỉ thay đổi tiêu đề Accept-Language — điều này không tương đương với geo-IP thực tế và có thể cho kết quả dương tính giả, nếu máy chủ dựa vào IP mà không phải ngôn ngữ của trình duyệt.
Kết luận
Kiểm tra hreflang qua mã trang chỉ cung cấp một nửa bức tranh. Để hiểu những gì thực sự nhận được từ người dùng ở một quốc gia cụ thể, cần phải mô phỏng chuyến thăm của họ qua IP của quốc gia đó — bằng cách sử dụng proxy, trình duyệt chống phát hiện hoặc một yêu cầu curl đơn giản. Cách tiếp cận này phát hiện các vấn đề mà không thể tìm thấy trong một cuộc kiểm toán tĩnh: chuyển hướng geo-IP, bộ nhớ cache CDN không xem xét khu vực, sự không khớp giữa mã ngôn ngữ và các thẻ tự tham chiếu bị hỏng.
Nếu bạn thường xuyên thử nghiệm các trang web đa ngôn ngữ hoặc chuẩn bị các chiến dịch quảng cáo cho 10 quốc gia trở lên, chúng tôi khuyên bạn nên thử proxy dân cư — chúng cung cấp mô phỏng chính xác nhất cho người truy cập thực tế cho mỗi quốc gia mục tiêu và cho phép kiểm tra hreflang như cách mà người dùng thực sự thấy, không phải như một robot tìm kiếm.