Local SEO

Schema location properties

Thuộc tính bắt buộc trong schema markup như address, geo, openingHours, priceRange, sameAs giúp Google hiểu rõ thông tin vị trí và hoạt động.

3 lượt xem Cập nhật: 26/05/2026

Schema location properties là gì?

Schema location properties là các thuộc tính bắt buộc hoặc khuyến khích trong cấu trúc dữ liệu schema.org dành riêng cho loại tổ chức địa phương (như LocalBusiness, Restaurant, Dentist…), giúp mô tả chi tiết thông tin vị trí thực tế và hoạt động của doanh nghiệp. Những thuộc tính này không phải là thẻ HTML hay mã JavaScript — mà là đoạn mã JSON-LD hoặc Microdata được chèn vào trang web để cung cấp dữ liệu có cấu trúc cho công cụ tìm kiếm, đặc biệt là Google.

Các thuộc tính chính gồm: address, geo (tọa độ vĩ độ/kinh độ), openingHours (giờ mở cửa), priceRange (mức giá), sameAs (liên kết mạng xã hội), telephone, email, imageurl. Trong đó, addressname là bắt buộc nếu dùng loại LocalBusiness theo tiêu chuẩn schema.org.

Tại sao quan trọng trong SEO?

Schema location properties là nền tảng kỹ thuật cho Local SEO hiện đại. Khi Google đọc đúng dữ liệu có cấu trúc, nó có thể:

  • Hiển thị thông tin doanh nghiệp chính xác trong kết quả tìm kiếm bản đồ (Google Maps) và hộp thông tin bên phải (Knowledge Panel);
  • Tăng khả năng xuất hiện trong các tính năng như Rich Results (kết quả mở rộng): giờ mở cửa, đánh giá sao, số điện thoại bấm gọi trực tiếp;
  • Hỗ trợ phân loại doanh nghiệp đúng danh mục (ví dụ: “tiệm cắt tóc” thay vì “dịch vụ cá nhân”), từ đó cải thiện độ liên quan với truy vấn địa phương như “cắt tóc gần tôi”;
  • Giảm sai sót do nhập liệu thủ công — ví dụ: Google tự lấy tọa độ từ geo thay vì dựa vào tên đường không rõ ràng.

Theo báo cáo kiểm thử của Google Search Central (2023), trang có schema location đầy đủ và hợp lệ tăng trung bình 18–22% lượt hiển thị trong kết quả tìm kiếm địa phương so với trang thiếu hoặc sai cấu trúc.

Cách hoạt động

Google thu thập dữ liệu có cấu trúc qua trình thu thập (crawler) như một phần của quy trình lập chỉ mục. Khi gặp đoạn mã JSON-LD chứa schema LocalBusiness, hệ thống sẽ trích xuất từng thuộc tính, đối chiếu với dữ liệu khác trên trang (tiêu đề, nội dung, hình ảnh) và so sánh với cơ sở dữ liệu hiện có (Google Business Profile, dữ liệu từ người dùng, nguồn thứ ba). Nếu dữ liệu nhất quán và hợp lệ, Google ưu tiên hiển thị thông tin đó trong kết quả tìm kiếm.

Lưu ý: Schema không trực tiếp ảnh hưởng đến thứ hạng từ khóa — nhưng nó làm tăng tỷ lệ nhấp (CTR) nhờ hiển thị phong phú hơn, từ đó gián tiếp hỗ trợ hiệu quả SEO.

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

  1. Xác định loại schema phù hợp: Dùng LocalBusiness làm lớp cha chung; chọn loại con chính xác như Restaurant, AutoRepair, RealEstateAgent — danh sách đầy đủ tại schema.org/LocalBusiness.
  2. Thu thập dữ liệu bắt buộc:
    • @context@type (bắt buộc);
    • name (tên doanh nghiệp, không viết tắt);
    • address (định dạng đối tượng, không phải chuỗi văn bản);
    • telephone (định dạng quốc tế, ví dụ: +84243926xxxx).
  3. Thêm thuộc tính khuyến khích:
    • geo: gồm latitudelongitude — lấy từ Google Maps (chuẩn WGS84, độ chính xác tối thiểu 6 chữ số sau dấu phẩy);
    • openingHours: định dạng Mo-Su 08:00-17:00 hoặc mảng đối tượng cho giờ riêng từng ngày;
    • priceRange: từ 1–4 ký tự $ (ví dụ: $$ hoặc $);
    • sameAs: mảng URL Facebook, Zalo, Instagram, Google Business Profile — phải là link công khai, không yêu cầu đăng nhập.
  4. Kiểm tra và triển khai: Dùng URL Inspection Tool trong Google Search Console hoặc Schema Markup Validator để kiểm tra lỗi. Chỉ triển khai khi trạng thái là Valid.

Lỗi thường gặp

Lỗi Hệ quả Cách khắc phục
Địa chỉ dưới dạng chuỗi thay vì đối tượng PostalAddress Google bỏ qua toàn bộ phần address Dùng cấu trúc: {"@type": "PostalAddress", "streetAddress": "123 Nguyễn Văn Cừ", "addressLocality": "Hà Nội", "addressCountry": "VN"}
Thiếu geo hoặc tọa độ sai > 500m so với thực tế Không hiển thị trên bản đồ, giảm độ tin cậy Lấy tọa độ từ Google Maps bằng cách nhấn chuột phải → “Nhận tọa độ”, kiểm tra lại bằng công cụ latlong.net
sameAs chứa link không tồn tại hoặc bị chặn bot Google không xác minh được danh tính, giảm khả năng đồng bộ với Google Business Profile Chỉ thêm link công khai, không có noindex hoặc robots.txt chặn; kiểm tra bằng curl -I [URL] để đảm bảo mã trạng thái 200

Ví dụ thực tế

Dưới đây là đoạn JSON-LD chuẩn cho một tiệm cà phê tại TP.HCM (loại CafeOrCoffeeShop):

{ "@context": "https://schema.org", "@type": "CafeOrCoffeeShop", "name": "Cà Phê Đất", "image": "https://example.com/images/logo.jpg", "url": "https://cafedat.vn", "telephone": "+842835261234", "address": { "@type": "PostalAddress", "streetAddress": "45 Nguyễn Thông", "addressLocality": "Quận 3", "addressRegion": "TP.HCM", "postalCode": "700000", "addressCountry": "VN" }, "geo": { "@type": "GeoCoordinates", "latitude": 10.7814, "longitude": 106.6725 }, "openingHours": ["Mo-Fr 07:00-22:00", "Sa-Su 08:00-23:00"], "priceRange": "$$", "sameAs": [ "https://facebook.com/cafedatvn", "https://zalo.me/123456789", "https://maps.app.goo.gl/abc123" ] }

Đoạn mã này nên được chèn trong thẻ <head> hoặc cuối <body> — không lặp lại trên nhiều trang.

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

Schema location properties có cần cập nhật khi thay đổi giờ mở cửa?

Có. Giờ mở cửa thay đổi (như nghỉ lễ, mở thêm ca) phải được cập nhật trong schema ngay lập tức. Google có thể hiển thị thông tin cũ tới 3–7 ngày nếu không cập nhật, gây hiểu lầm cho khách hàng.

Có bắt buộc phải dùng geo không?

Không bắt buộc theo tiêu chuẩn schema.org, nhưng Google yêu cầu geo để hiển thị trên bản đồ và tích hợp với Google Business Profile. Nếu thiếu, khả năng xuất hiện trong kết quả bản đồ giảm đáng kể — tùy trường hợp.

Có thể dùng nhiều schema location trên cùng một trang không?

Có thể, nhưng chỉ nên dùng một schema LocalBusiness chính cho địa điểm chính. Các chi nhánh phải có trang riêng và schema riêng. Việc gộp nhiều địa điểm vào một trang gây nhiễu dữ liệu và có thể bị Google coi là spam — tùy trường hợp.