Schema & Structured Data

VirtualLocation Schema

Schema mô tả vị trí ảo (ví dụ: phòng họp trực tuyến, sự kiện trực tuyến), dùng thay cho Place Schema trong ngữ cảnh kỹ thuật số.

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

VirtualLocation Schema là gì?

VirtualLocation Schema là một loại schema.org markup dùng để mô tả vị trí ảo — tức là nơi không tồn tại về mặt vật lý, mà chỉ hiện diện trong môi trường kỹ thuật số. Ví dụ điển hình gồm: phòng họp trực tuyến (Zoom, Google Meet), lớp học ảo, sự kiện livestream, hội thảo trên nền tảng Webex hoặc Microsoft Teams.

Schema này thuộc nhóm Place trong hệ thống schema.org, nhưng được thiết kế riêng để thay thế Place hoặc Organization khi thực tế không có địa chỉ thực. Nó không phải là schema do Google tự tạo — mà là phần mở rộng chính thức của schema.org từ phiên bản v14.0 (tháng 5/2023), và đã được hỗ trợ bởi các công cụ tìm kiếm lớn như Google, Bing và Yandex.

Tại sao quan trọng trong SEO?

VirtualLocation Schema giúp công cụ tìm kiếm hiểu đúng ngữ cảnh kỹ thuật số của nội dung — đặc biệt với các trang sự kiện, lịch trình đào tạo, đăng ký hội thảo hay trang sản phẩm dịch vụ trực tuyến. Khi đánh dấu đúng, trang có thể xuất hiện trong các kết quả nâng cao như Rich Results (kết quả phong phú), hiển thị thời gian, liên kết tham gia, nền tảng sử dụng — tăng tỷ lệ nhấp (CTR) lên đến 30% so với kết quả chuẩn (theo báo cáo Ahrefs 2024, dựa trên mẫu 12.700 trang sự kiện).

Nó còn hỗ trợ khả năng lập chỉ mục cho nội dung phi địa lý — điều mà Place truyền thống không làm được. Nếu bạn dùng Place cho một buổi họp Zoom với địa chỉ 'Online', Google sẽ bỏ qua hoặc cảnh báo lỗi vì thiếu thuộc tính bắt buộc như address hoặc geo. VirtualLocation giải quyết vấn đề này một cách hợp lệ.

Cách hoạt động

VirtualLocation hoạt động như một lớp con của Place, thừa kế tất cả thuộc tính cha (như name, description, url) và bổ sung các thuộc tính riêng để mô tả môi trường ảo:

  • eventAttendanceMode: giá trị bắt buộc, luôn là https://schema.org/OnlineEventAttendanceMode
  • video: liên kết trực tiếp tới video livestream hoặc bản ghi
  • accessModeaccessModeSufficient: mô tả cách người dùng truy cập (ví dụ: 'textual', 'auditory')
  • service: tham chiếu tới Service hoặc WebAPI nếu có tích hợp nền tảng bên ngoài

Google không yêu cầu tất cả thuộc tính — nhưng ít nhất phải có @type, name, eventAttendanceModeurl để đạt trạng thái hợp lệ trong Structured Data Testing Tool.

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

  1. Xác định ngữ cảnh phù hợp: Chỉ dùng khi sự kiện/khóa học/phòng họp hoàn toàn không có địa điểm vật lý. Nếu có cả offline và online, nên dùng Event với hai location (một Place, một VirtualLocation).
  2. Chọn định dạng markup: JSON-LD là lựa chọn ưu tiên (hỗ trợ đầy đủ, dễ kiểm tra, không can thiệp DOM). Tránh Microdata hoặc RDFa trừ khi bắt buộc theo hệ thống CMS.
  3. Điền thuộc tính bắt buộc:
    • @context: "https://schema.org"
    • @type: "VirtualLocation"
    • name: tên phòng họp / sự kiện (vd: "Phòng họp Ban Giám đốc – Zoom")
    • eventAttendanceMode: "https://schema.org/OnlineEventAttendanceMode"
    • url: liên kết trực tiếp tới phòng họp hoặc trang đăng ký
  4. Bổ sung thuộc tính khuyến nghị:
    • description: mô tả ngắn (tối đa 500 ký tự)
    • video: URL video MP4 hoặc embed (nếu có)
    • accessMode: "textual" hoặc "auditory" (tùy hình thức tương tác)
    • sameAs: URL profile nền tảng (vd: link phòng họp trên Zoom.us)
  5. Kiểm tra và triển khai: Dùng URL Inspection Tool trong Google Search Console hoặc Schema Markup Validator. Đợi 3–7 ngày để dữ liệu xuất hiện trong báo cáo Rich Results.

Lỗi thường gặp

Lỗi Nguyên nhân Cách khắc phục
Missing mandatory property "eventAttendanceMode" Quên khai báo hoặc gõ sai giá trị (vd: viết "Online" thay vì URI chuẩn) Dán đúng giá trị: "https://schema.org/OnlineEventAttendanceMode"
Invalid type: "VirtualLocation" not recognized Dùng phiên bản schema cũ (< v14.0) hoặc sai cú pháp JSON (thiếu dấu phẩy, ngoặc) Kiểm tra lại @context; đảm bảo không có lỗi cú pháp bằng trình validator
url is not a valid URL Liên kết thiếu http:// hoặc https://, hoặc chứa ký tự đặc biệt chưa được encode Dùng hàm encodeURIComponent() cho tham số URL; kiểm tra bằng công cụ kiểm tra URL
Conflicting location types in Event Dùng đồng thời VirtualLocationPlace trong cùng một Event mà không phân biệt rõ vai trò Sử dụng mảng location với hai phần tử riêng biệt, mỗi phần tử có @type rõ ràng

Ví dụ thực tế

Dưới đây là đoạn JSON-LD chuẩn cho một buổi tư vấn nghề nghiệp trực tuyến:

{ "@context": "https://schema.org", "@type": "VirtualLocation", "name": "Buổi tư vấn nghề nghiệp – Phòng 3A", "description": "Tư vấn 1-1 với chuyên gia phát triển sự nghiệp qua Google Meet.", "url": "https://meet.google.com/abc-defg-hij", "eventAttendanceMode": "https://schema.org/OnlineEventAttendanceMode", "video": "https://example.com/recording-20240515.mp4", "accessMode": "auditory", "accessModeSufficient": "textual", "sameAs": "https://zoom.us/j/987654321" }

Đoạn mã này được chèn trong thẻ <head> hoặc trước thẻ </body>. Khi Google lập chỉ mục, nó có thể hiển thị thêm nút "Tham gia ngay" trong kết quả tìm kiếm nếu trang đủ độ tin cậy và nội dung phù hợp.

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

VirtualLocation Schema có thay thế hoàn toàn Place Schema không?

Không. VirtualLocation chỉ dùng khi không có vị trí vật lý. Nếu sự kiện vừa tổ chức tại văn phòng vừa phát trực tuyến, bạn nên khai báo cả hai loại location trong một Event — không dùng VirtualLocation làm thay thế chung.

Google có hiển thị Rich Result cho VirtualLocation không?

Có — nhưng chỉ trong bối cảnh Event hoặc Course. Hiện tại Google chưa hỗ trợ Rich Result riêng cho VirtualLocation khi đứng độc lập. Kết quả nâng cao xuất hiện khi VirtualLocation là giá trị của thuộc tính location trong một Event hợp lệ.

Có cần xác minh VirtualLocation trong Google Search Console không?

Không. Không có quy trình xác minh riêng. Việc đánh dấu chỉ cần đúng định dạng và được Google phát hiện qua crawl. Tuy nhiên, bạn nên theo dõi báo cáo Enhancements > Events trong Search Console để kiểm tra tình trạng lập chỉ mục.