@context
Thuộc tính JSON-LD khai báo không gian tên schema.org (thường là "https://schema.org").
@context là gì?
@context là thuộc tính bắt buộc trong đoạn mã JSON-LD dùng để khai báo không gian tên (namespace) cho các từ vựng cấu trúc dữ liệu. Trong thực tế, giá trị phổ biến nhất của @context là "https://schema.org". Đây là địa chỉ gốc chứa toàn bộ định nghĩa các loại schema như Article, Organization, Product… giúp công cụ tìm kiếm hiểu đúng ý nghĩa của từng thuộc tính bạn khai báo.
Không phải là một thẻ HTML hay phần tử hiển thị — @context chỉ tồn tại trong mã JSON-LD và không ảnh hưởng đến giao diện trang. Nó hoạt động như một "bản đồ tham chiếu" để máy móc biết rằng "name" trong mã của bạn tương ứng với schema.org/name, chứ không phải một trường tên tùy ý do người lập trình đặt ra.
Tại sao quan trọng trong SEO?
@context là điều kiện tiên quyết để Google và các công cụ tìm kiếm khác có thể giải mã chính xác dữ liệu có cấu trúc. Nếu thiếu hoặc sai @context, toàn bộ khối JSON-LD sẽ bị bỏ qua — dù nội dung bên trong có đúng đến đâu.
Theo tài liệu chính thức của Google (cập nhật tháng 6/2024), hơn 92% lỗi triển khai Schema đều bắt nguồn từ việc thiếu, sai định dạng hoặc trùng lặp @context. Khi @context hợp lệ, dữ liệu có cấu trúc mới được đưa vào quy trình xử lý Rich Results — từ đó tăng khả năng xuất hiện trong kết quả mở rộng như snippet đánh sao, hộp thông tin doanh nghiệp, hoặc kết quả sản phẩm trực tiếp.
Ngoài ra, @context còn hỗ trợ tích hợp đa nền tảng: cùng một khối JSON-LD có thể được đọc bởi Google, Bing, Yandex và các hệ thống quản lý nội dung (CMS) nếu tuân thủ chuẩn W3C về JSON-LD.
Cách hoạt động
Khi trình duyệt hoặc bot tìm kiếm đọc một đoạn JSON-LD, nó đầu tiên kiểm tra giá trị của @context để xác định nơi tra cứu định nghĩa các từ khóa như "@type", "name", "url"… Sau đó, nó ánh xạ từng thuộc tính sang sơ đồ chuẩn đã khai báo — ví dụ:
{"@context": "https://schema.org", "@type": "Organization", "name": "Công ty ABC"}
→ Hệ thống hiểu "name" ở đây là https://schema.org/name, không phải một trường tên chung chung.
@context cũng cho phép khai báo nhiều không gian tên cùng lúc (tùy trường hợp), nhưng với schema.org thì luôn dùng duy nhất một giá trị chuẩn.
Hướng dẫn thực hiện
- Chọn đúng giá trị: Luôn dùng
"https://schema.org"(không có dấu gạch chéo cuối, không viết hoa sai, không dùng http). - Đặt đúng vị trí: @context phải là thuộc tính đầu tiên trong đối tượng JSON-LD cấp cao nhất — ngay sau dấu mở ngoặc nhọn
{. - Kiểm tra tính duy nhất: Mỗi khối JSON-LD chỉ được có một @context. Không lồng @context trong các đối tượng con.
- Sử dụng đúng cú pháp: Giá trị @context phải là chuỗi (string), không phải mảng hay đối tượng — trừ khi dùng đa namespace (ít phổ biến).
- Xác minh sau triển khai: Dùng Google Rich Results Test hoặc Schema Markup Validator để kiểm tra trạng thái.
Lỗi thường gặp
- Thiếu @context hoàn toàn: Khối JSON-LD không có thuộc tính này → dữ liệu bị bỏ qua. Cách khắc phục: Thêm dòng
"@context": "https://schema.org"ngay đầu khối. - Sai định dạng URL: Dùng
http://schema.org,https://schema.org/(có gạch chéo cuối) hoặc viết hoa sai (Https://Schema.Org) → Google không nhận diện. Cách khắc phục: Chỉ dùng chính xác"https://schema.org". - @context bị lặp: Xuất hiện hai lần trong cùng một khối JSON-LD → gây lỗi cú pháp. Cách khắc phục: Kiểm tra kỹ toàn bộ khối, giữ lại duy nhất một lần khai báo ở đầu.
- Đặt sai vị trí: Đặt @context bên trong một đối tượng con (ví dụ trong
"address") → vô hiệu lực. Cách khắc phục: Di chuyển lên cấp cao nhất, ngay sau{.
Ví dụ thực tế
Dưới đây là khối JSON-LD đúng cho một bài viết tin tức, kèm chú thích rõ ràng:
{
"@context": "https://schema.org",
"@type": "NewsArticle",
"headline": "Cách tối ưu schema cho website tiếng Việt",
"datePublished": "2024-07-15T08:30:00+07:00",
"dateModified": "2024-07-15T09:15:00+07:00",
"author": {
"@type": "Person",
"name": "Nguyễn Văn A"
}
}
Bảng so sánh nhanh các trường hợp @context đúng – sai:
| Trường hợp | @context sử dụng | Kết quả | Ghi chú |
|---|---|---|---|
| Đúng chuẩn | "https://schema.org" |
✅ Nhận diện thành công | Giá trị khuyến nghị chính thức |
| Sai giao thức | "http://schema.org" |
❌ Bị bỏ qua | Google yêu cầu HTTPS bắt buộc |
| Thừa ký tự | "https://schema.org/" |
❌ Lỗi cú pháp | Gạch chéo cuối không hợp lệ |
| Viết hoa sai | "HTTPS://SCHEMA.ORG" |
❌ Không nhận diện | URL phân biệt chữ hoa/thường |
Câu hỏi thường gặp
@context có bắt buộc với mọi loại schema không?
Có. Theo tiêu chuẩn JSON-LD 1.1 và hướng dẫn của Google, @context là thuộc tính bắt buộc cho mọi khối JSON-LD dùng để khai báo schema.org — kể cả khi chỉ dùng một vài thuộc tính đơn giản.
Có thể dùng nhiều @context trong một trang không?
Có thể — nhưng mỗi khối JSON-LD chỉ được có một @context. Một trang có thể chứa nhiều khối JSON-LD riêng biệt (ví dụ: một cho Organization, một cho Article), và mỗi khối đều cần @context riêng. Không được gộp chung hoặc dùng mảng @context trừ khi áp dụng namespace mở rộng ngoài schema.org (tùy trường hợp).
@context ảnh hưởng đến tốc độ tải trang không?
Không. @context chỉ là một chuỗi văn bản ngắn (30 ký tự), nằm trong thẻ <script type="application/ld+json">. Kích thước tổng khối JSON-LD thường dưới 5 KB — không đáng kể so với tài nguyên khác như hình ảnh hay CSS. Việc thêm @context không làm chậm trang.