International SEO

local schema.org markup

Sử dụng schema.org với thuộc tính địa phương như addressCountry, availableLanguage, currency để tăng khả năng hiển thị trong tìm kiếm địa phương.

2 lượt xem Cập nhật: 29/05/2026

local schema.org markup là gì?

Local schema.org markup là cách thêm dữ liệu có cấu trúc (structured data) vào mã nguồn trang web bằng các thuộc tính schema.org chuyên biệt cho yếu tố địa phương — như addressCountry, availableLanguage, currency, areaServed, openingHoursSpecification hoặc sameAs với liên kết mạng xã hội địa phương. Đây không phải là một loại schema riêng, mà là việc áp dụng đúng các thuộc tính từ các loại schema chuẩn (như Organization, LocalBusiness, WebSite) để mô tả rõ vị trí, ngôn ngữ hỗ trợ và đơn vị tiền tệ phù hợp với từng thị trường quốc tế.

Tại sao quan trọng trong SEO?

Khi triển khai đúng, local schema giúp công cụ tìm kiếm hiểu chính xác: trang web này phục vụ ai, ở đâu, bằng ngôn ngữ nào và chấp nhận thanh toán ra sao. Điều này hỗ trợ trực tiếp cho International SEO — đặc biệt khi bạn vận hành nhiều phiên bản ngôn ngữ/vùng miền (ví dụ: vi-vn, en-us, ja-jp). Google không dùng schema để xếp hạng trực tiếp, nhưng dữ liệu rõ ràng giúp:

  • Tăng khả năng xuất hiện trong kết quả tìm kiếm địa phương (local search results), đặc biệt trên thiết bị di động;
  • Hỗ trợ hiển thị rich snippet chính xác hơn (ví dụ: giá hiển thị theo VND thay vì USD);
  • Cải thiện độ tin cậy của phiên bản ngôn ngữ — giảm rủi ro trùng lặp nội dung (duplicate content) giữa các trang quốc tế;
  • Hỗ trợ hệ thống phát hiện và phân bổ đúng phiên bản trang cho người dùng dựa trên vị trí và cài đặt trình duyệt.

Cách hoạt động

Local schema hoạt động bằng cách gắn thẻ dữ liệu có cấu trúc vào HTML (thường dưới dạng JSON-LD trong thẻ <head>). Khi Googlebot thu thập trang, nó đọc các thuộc tính như addressCountry hoặc availableLanguage để xác minh tính nhất quán giữa nội dung trang và thông tin địa phương được khai báo. Nếu dữ liệu khớp với tín hiệu khác (hreflang, URL cấu trúc, nội dung thực tế), Google ưu tiên hiển thị phiên bản phù hợp cho người dùng tại khu vực đó.

Lưu ý: Local schema không thay thế hreflang hay cấu trúc URL quốc tế — nó là lớp dữ liệu bổ sung để làm rõ ngữ cảnh.

Hướng dẫn thực hiện

Dưới đây là các bước triển khai an toàn và hiệu quả:

  1. Xác định đối tượng schema phù hợp: Dùng LocalBusiness nếu có mặt bằng thực (cửa hàng, văn phòng); dùng Organization nếu chỉ là website đa ngôn ngữ không có địa chỉ vật lý.
  2. Chọn thuộc tính địa phương cần thiết: Chỉ khai báo những thuộc tính có thật và kiểm soát được (không điền giả). Các thuộc tính phổ biến:
    • addressCountry: Mã quốc gia theo chuẩn ISO 3166-1 alpha-2 (ví dụ: "VN", "US");
    • availableLanguage: Mảng các mã ngôn ngữ theo chuẩn BCP 47 (ví dụ: ["vi", "en"]);
    • currency: Mã tiền tệ theo chuẩn ISO 4217 (ví dụ: "VND", "USD");
    • areaServed: Có thể là Place hoặc AdministrativeArea (ví dụ: {"@type": "Country", "name": "Vietnam"});
    • sameAs: Liên kết đến trang Facebook/Google Business địa phương (nếu có).
  3. Đặt JSON-LD trong thẻ <head>: Không chèn vào <body> hoặc dùng Microdata/RDFa trừ khi bắt buộc.
  4. Kiểm tra bằng công cụ chính thức: Dùng Google Rich Results Test hoặc Schema Markup Validator. Đảm bảo không có lỗi “critical”.
  5. Đồng bộ với hreflang và cấu trúc URL: Ví dụ: Trang https://example.com/vi/ nên có availableLanguage: ["vi"]addressCountry: "VN", đồng thời có thẻ link rel="alternate" hreflang="vi-vn".

Lỗi thường gặp

Lỗi Hệ quả Cách khắc phục
Khai báo addressCountry sai (ví dụ: "Vietnam" thay vì "VN") Google bỏ qua toàn bộ schema hoặc cảnh báo “invalid value” Dùng mã quốc gia chuẩn ISO 3166-1 alpha-2 — tra cứu tại iso.org
Đặt availableLanguage không khớp với ngôn ngữ thực tế của trang Gây mâu thuẫn tín hiệu — ảnh hưởng đến khả năng hiển thị phiên bản đúng Chỉ liệt kê ngôn ngữ đang được sử dụng trên trang đó (không liệt kê tất cả ngôn ngữ của toàn bộ site)
Sử dụng currency mà không có sản phẩm/giá trên trang Không gây lỗi kỹ thuật, nhưng làm giảm độ tin cậy dữ liệu Chỉ khai báo currency khi trang chứa thông tin giá, giỏ hàng hoặc thanh toán

Ví dụ thực tế

Dưới đây là đoạn JSON-LD mẫu cho một doanh nghiệp giáo dục tiếng Nhật tại TP.HCM, có phiên bản tiếng Việt và tiếng Nhật:

{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Trung tâm Nhật Ngữ Sakura",
  "address": {
    "@type": "PostalAddress",
    "addressCountry": "VN",
    "addressLocality": "Thành phố Hồ Chí Minh"
  },
  "availableLanguage": ["vi", "ja"],
  "currency": "VND",
  "areaServed": {
    "@type": "Country",
    "name": "Vietnam"
  },
  "sameAs": [
    "https://facebook.com/sakura.vn",
    "https://maps.app.goo.gl/abc123"
  ]
}

Lưu ý: Không dùng dấu ngoặc kép kép trong giá trị (ví dụ: "addressCountry": ""VN"") — đây là lỗi cú pháp nghiêm trọng.

Câu hỏi thường gặp

local schema.org markup có thay thế hreflang không?

Không. Hreflang là tín hiệu bắt buộc để Google hiểu mối quan hệ giữa các phiên bản ngôn ngữ/vùng miền. Local schema chỉ là dữ liệu bổ sung — không thể thay thế hreflang. Cả hai nên được dùng song song.

Có cần khai báo local schema cho mọi trang con?

Không bắt buộc. Chỉ cần triển khai ở trang chủ và các trang quan trọng như trang giới thiệu, trang dịch vụ, trang liên hệ — nơi có thông tin địa phương rõ ràng. Các trang blog hoặc danh mục sản phẩm thường không cần addressCountry nếu không liên quan trực tiếp đến vị trí.

Google có sử dụng local schema để xếp hạng không?

Theo tài liệu chính thức của Google (cập nhật tháng 06/2024), schema không phải là yếu tố xếp hạng. Tuy nhiên, dữ liệu địa phương chính xác giúp cải thiện trải nghiệm người dùng và độ liên quan trong tìm kiếm — từ đó gián tiếp hỗ trợ hiệu quả SEO quốc tế. Việc thiếu schema không gây phạt, nhưng thiếu dữ liệu rõ ràng có thể khiến Google chọn sai phiên bản trang để hiển thị.