Nhiều shop nhỏ nghe "làm entity" rồi mua gói 50–100 hồ sơ mạng xã hội. Phần máy đọc được trên website thường bị bỏ qua: schema Organization và Person hoặc thiếu, hoặc lệch tên/địa chỉ so với trang Giới thiệu và Google Business Profile.
Bài này chỉ nói phần HTML: hai kiểu schema đó viết thế nào, đặt ở đâu, và sai gì hay gặp khi review code. Mục tiêu không phải "lên Knowledge Panel", mà là làm cho Google và bot AI đọc được một thực thể nhất quán từ HTML ban đầu.
Entity trên web là gì (nhìn từ code)
Một thực thể (entity) là thứ có thể phân biệt được: công ty, người đứng sau, địa điểm. Google và các hệ thống AI không chỉ khớp chuỗi chữ; chúng cố nối website, hồ sơ chính thức và chỗ được nhắc tới về cùng một thực thể.
Trên trang, phần máy đọc được gồm:
- Đoạn chữ người đọc thấy (tên, địa chỉ, lĩnh vực) trong HTML server trả về lần đầu.
- JSON-LD
Organization/LocalBusiness/Personkhớp với đoạn đó. -
sameAstrỏ tới vài hồ sơ chính thức thật sự thuộc về bạn.
Không có schema thì Google vẫn có thể đoán từ chữ. Có schema sai thì dễ mâu thuẫn hơn là không có.
Organization: một khối, một tên, một địa chỉ
Đặt trên trang chủ hoặc trang Giới thiệu / Liên hệ — nơi đã viết rõ doanh nghiệp là ai. Ví dụ rút gọn (tên và địa chỉ giả định):
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Cửa hàng ABC Phụ kiện",
"url": "https://example.com/",
"logo": "https://example.com/logo.png",
"telephone": "+84-24-1234-5678",
"address": {
"@type": "PostalAddress",
"streetAddress": "12 Phố X, Quận Y",
"addressLocality": "Hà Nội",
"addressCountry": "VN"
},
"sameAs": [
"https://www.facebook.com/abcphukien",
"https://maps.google.com/?cid=1234567890"
]
}
</script>
Ba quy tắc mình giữ khi review:
-
name,telephone,addressphải khớp gần như từng chữ với footer / trang Liên hệ / NAP trên Maps. Schema viết "Công ty TNHH ABC" trong khi trang viết "ABC Shop" là lỗi hay gặp. -
sameAschỉ liệt kê hồ sơ bạn kiểm soát và còn sống. Không nhét 30 link mạng xã hội bỏ hoang. - JSON-LD phải nằm trong HTML ban đầu (
curlra được), không chỉ inject sau khi React hydrate.
Shop có địa điểm phục vụ khách tại chỗ có thể dùng LocalBusiness (hoặc subtype phù hợp) thay vì Organization thuần — vẫn cùng nguyên tắc khớp NAP.
Person: khi cần nối người đứng sau với thương hiệu
Person hữu ích khi trang Giới thiệu hoặc trang tác giả nói rõ ai đứng sau công ty, và bạn muốn nối người đó với bài viết / hồ sơ LinkedIn / trang About. Ví dụ rút gọn:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Nguyễn Văn A",
"jobTitle": "Founder",
"worksFor": {
"@type": "Organization",
"name": "Cửa hàng ABC Phụ kiện",
"url": "https://example.com/"
},
"url": "https://example.com/gioi-thieu",
"sameAs": [
"https://www.linkedin.com/in/nguyenvana-example"
]
}
</script>
Đừng tạo Person nếu trang không hề nhắc tên người đó. Schema "đầy đủ" nhưng HTML trống tên là markup giả.
Có thể gộp bằng @graph khi một trang vừa mô tả tổ chức vừa mô tả founder — miễn là các @id / quan hệ worksFor khớp nhau và khớp chữ trên trang.
Checklist 5 phút trước khi merge
# 1. Schema có trong HTML thô không?
curl -sL https://example.com/ | grep -o 'application/ld+json' | head
# 2. Tên trong JSON-LD có khớp footer không?
curl -sL https://example.com/ | tr '\n' ' ' | grep -oE '"name"\s*:\s*"[^"]+"' | head -5
# 3. Rich Results / Schema validator: hợp lệ kiểu Organization/Person, không chỉ "có JSON"
Thêm bước tay: mở trang Giới thiệu và Google Business Profile, đối chiếu từng trường name / SĐT / địa chỉ với schema. Lệch một dấu gạch ngang cũng nên sửa cho đồng bộ.
Schema không thay chỗ nào khác nhắc tới bạn
Organization/Person chỉ là lớp máy đọc trên website. Entity còn cần vài hồ sơ chính thức thống nhất và chỗ bên ngoài nhắc đúng tên/lĩnh vực. Gói 100 hồ sơ bỏ hoang không bù được một trang About + schema khớp + hai hồ sơ NAP đúng.
Nếu muốn đọc phần khái niệm và thứ tự ưu tiên (website → hồ sơ chính thức → nơi được nhắc), có thể xem bài SEO Entity là gì trên blog Mạnh Digital.
Hai góc kỹ thuật liên quan khi bạn đang sửa phần máy đọc được: Schema FAQPage và HowTo viết JSON-LD khớp HTML trên DEV.to, và Thử hỏi 3 AI về cùng một shop: ghi chỗ sai và chỗ đúng trên Hashnode.
Một buổi chiều đủ để thêm hoặc sửa Organization/Person cho trang chủ và About. Làm trước khi mua thêm hồ sơ mạng xã hội sẽ giúp bạn biết đang thiếu dữ kiện trên web hay chỉ đang nghe lời hứa "xây entity".
Top comments (0)