Schema & Structured Data

OpeningHoursSpecification Schema

Schema mô tả giờ mở cửa theo ngày, bao gồm ngày trong tuần, giờ bắt đầu/kết thúc, và ngày nghỉ đặc biệt.

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

OpeningHoursSpecification Schema là gì?

OpeningHoursSpecification là một loại schema markup (dữ liệu có cấu trúc) thuộc chuẩn schema.org, dùng để mô tả chi tiết giờ mở cửa của doanh nghiệp theo ngày trong tuần, ca làm việc cụ thể và các ngày nghỉ đặc biệt như lễ, Tết hoặc đóng cửa tạm thời.

Schema này không thay thế thông tin giờ mở cửa hiển thị trên trang web — mà bổ sung thêm lớp dữ liệu máy đọc được, giúp công cụ tìm kiếm (như Google) hiểu rõ hơn về thời gian hoạt động thực tế của cơ sở. Nó thường được triển khai cùng với các loại schema khác như LocalBusiness, Restaurant, Store hoặc MedicalOrganization.

Tại sao quan trọng trong SEO?

OpeningHoursSpecification giúp cải thiện khả năng xuất hiện trong các kết quả tìm kiếm có tính ngữ cảnh cao — đặc biệt là trên thiết bị di động và khi người dùng tìm kiếm theo thời điểm (ví dụ: “quán cà phê gần tôi đang mở lúc 8h tối”).

Khi được triển khai đúng, schema này hỗ trợ:

  • Hiển thị giờ mở cửa trực tiếp trong Rich Result (kết quả mở rộng) trên Google Search và Google Maps;
  • Tăng độ tin cậy và tính minh bạch với người dùng — từ đó cải thiện tỷ lệ nhấp (CTR);
  • Hỗ trợ thuật toán Google đánh giá mức độ cập nhật và độ chính xác của thông tin doanh nghiệp;
  • Cải thiện trải nghiệm người dùng khi tích hợp với trợ lý giọng nói (Google Assistant, Siri) — ví dụ: “Hey Google, cửa hàng X mở lúc mấy giờ hôm nay?”.

Lưu ý: Việc triển khai schema không trực tiếp nâng thứ hạng, nhưng gián tiếp ảnh hưởng đến hiệu suất SEO thông qua CTR, thời gian ở lại trang và tỷ lệ chuyển đổi.

Cách hoạt động

OpeningHoursSpecification hoạt động bằng cách gắn các thuộc tính có cấu trúc vào mã HTML hoặc JSON-LD của trang web. Công cụ tìm kiếm thu thập, phân tích và so khớp các giá trị như dayOfWeek, opens, closes, validFrom, validThrough để xác định thời gian hoạt động chính xác.

Google ưu tiên dữ liệu từ schema nếu nó nhất quán với nội dung hiển thị trên trang (visible content). Nếu mâu thuẫn — ví dụ: schema ghi “mở 7h–22h” nhưng trang web viết “mở 8h–21h” — Google có thể bỏ qua toàn bộ phần schema hoặc hiển thị cảnh báo trong Search Console.

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

Dưới đây là các bước triển khai chuẩn cho website tiếng Việt:

  1. Xác định loại doanh nghiệp phù hợp: Kiểm tra xem schema cha nào đang được dùng (ví dụ: Restaurant hoặc LocalBusiness). OpeningHoursSpecification luôn là thuộc tính con của schema cha.
  2. Chuẩn bị dữ liệu giờ mở cửa: Ghi rõ từng ngày trong tuần (theo định dạng https://schema.org/Monday…), giờ bắt đầu/kết thúc (định dạng HH:MM), và các ngày nghỉ đặc biệt (nếu có).
  3. Chọn định dạng triển khai: Khuyến khích dùng JSON-LD vì dễ bảo trì, ít gây lỗi và được Google ưu tiên. Đặt đoạn mã trong thẻ <head> hoặc cuối <body>.
  4. Viết mã: Mỗi ca làm việc cần một đối tượng OpeningHoursSpecification. Nếu có nhiều ca/ngày (ví dụ: 7h–11h & 14h–19h), phải tạo riêng từng đối tượng.
  5. Kiểm tra và xác minh: Dùng Google Search Console → Báo cáo ‘Hiệu suất’ → tab ‘Dữ liệu có cấu trúc’, hoặc công cụ Rich Results Test (đã ngừng hoạt động từ 2023) / thay thế bằng URL Inspection Tool.

Lỗi thường gặp

Dưới đây là những sai lầm phổ biến và cách khắc phục:

Lỗi Mô tả Cách sửa
Sai định dạng ngày trong tuần Dùng “Thứ Hai”, “Mon” hoặc “Monday” không đúng chuẩn schema.org Dùng đúng URI: https://schema.org/Monday, https://schema.org/Tuesday
Giờ không đúng định dạng 24h Ghi “7:00 AM”, “7g”, hoặc thiếu số 0 đứng đầu (ví dụ: “8:00” thay vì “08:00”) Dùng chuẩn HH:MM (2 ký tự giờ, 2 ký tự phút): "opens": "07:00", "closes": "22:00"
Thiếu thuộc tính bắt buộc Bỏ sót dayOfWeek, opens hoặc closes Cả 3 thuộc tính đều bắt buộc trong mỗi đối tượng OpeningHoursSpecification
Mâu thuẫn giữa schema và nội dung hiển thị Schema ghi “nghỉ Chủ Nhật”, nhưng trang web viết “mở cả Chủ Nhật” Cập nhật đồng bộ cả hai nguồn — schema và nội dung người đọc được

Ví dụ thực tế

Dưới đây là đoạn JSON-LD mẫu cho một tiệm bánh ở Hà Nội, mở từ thứ Hai đến thứ Bảy, nghỉ Chủ Nhật, và đóng cửa ngày 30/4:

{ "@context": "https://schema.org", "@type": "Bakery", "name": "Bánh Ngon Hà Nội", "openingHoursSpecification": [ { "@type": "OpeningHoursSpecification", "dayOfWeek": [ "https://schema.org/Monday", "https://schema.org/Tuesday", "https://schema.org/Wednesday", "https://schema.org/Thursday", "https://schema.org/Friday", "https://schema.org/Saturday" ], "opens": "07:00", "closes": "21:00" }, { "@type": "OpeningHoursSpecification", "dayOfWeek": "https://schema.org/Sunday", "opens": "00:00", "closes": "00:00", "description": "Nghỉ cố định" }, { "@type": "OpeningHoursSpecification", "validFrom": "2025-04-30", "validThrough": "2025-04-30", "opens": "00:00", "closes": "00:00", "description": "Nghỉ lễ 30/4" } ] }

Lưu ý: Thuộc tính description không bắt buộc nhưng nên dùng để làm rõ lý do đóng cửa — hữu ích cho cả người đọc và hệ thống.

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

OpeningHoursSpecification có hỗ trợ múi giờ không?

Có, nhưng chỉ qua thuộc tính timeZone (ví dụ: "timeZone": "Asia/Ho_Chi_Minh"). Tuy nhiên, Google hiện chưa sử dụng thuộc tính này để hiển thị giờ — nên giờ vẫn phải nhập theo múi giờ địa phương đã quy định. Việc khai báo timeZone là tùy trường hợp và không bắt buộc.

Có thể dùng OpeningHoursSpecification cho nhiều chi nhánh không?

Có. Mỗi chi nhánh cần có schema riêng, gắn vào trang chi tiết tương ứng (ví dụ: domain.com/chinhanh-hanoi). Không gộp chung tất cả giờ mở cửa vào một trang chủ — điều này gây nhiễu dữ liệu và có thể bị Google bỏ qua.

Schema này có áp dụng cho website thương mại điện tử không?

Không áp dụng trực tiếp, vì OpeningHoursSpecification dành riêng cho thực thể có địa điểm vật lý và giờ mở cửa thực tế. Với website bán hàng online thuần túy (không có cửa hàng), nên dùng Organization hoặc WebSite thay vì schema liên quan đến giờ mở cửa. Trường hợp vừa có website vừa có showroom — thì áp dụng bình thường cho trang giới thiệu địa điểm.