Nhiệm vụ: Triển khai vi dữ liệu microdata
Triển khai vi dữ liệu microdata
Phát triển và triển khai đánh dấu Schema.org Person chính xác cùng với biểu đồ thực thể trang web liên quan, có tính đến các khuyến nghị của Google Search.
Mục tiêu
Triển khai vi dữ liệu của trang web sao cho các công cụ tìm kiếm có thể hiểu một cách rõ ràng hơn rằng trang web được liên kết với một cá nhân cụ thể, đồng thời liên kết thực thể này với các hồ sơ bên ngoài và các ấn phẩm đã được xác minh.
Bản thân việc đánh dấu không tạo ra thẩm quyền hoặc đảm bảo kết quả nhiều thành phần (rich result) trên Google, nhưng nó giúp mô tả rõ ràng các thực thể và mối quan hệ giữa chúng, đồng thời có thể tạo điều kiện thuận lợi cho việc so khớp các tín hiệu hiện có về cùng một con người.
Những điểm cần kiểm tra và thiết kế
Hiện tại, trang web đang có đánh dấu WebSite. Bạn cần thiết kế một biểu đồ Schema.org hoàn chỉnh, trong đó Person xuất hiện như một thực thể riêng biệt, và nếu cần thiết, các thực thể WebSite, WebPage / ProfilePage, bài viết và các thực thể khác sẽ trỏ đến nó thông qua @id ổn định.
Kiểm tra riêng xem trang chủ có phù hợp với ProfilePage hay không. Theo tài liệu của Google, ProfilePage phù hợp khi nội dung chính của trang tập trung vào một cá nhân hoặc tổ chức duy nhất. Nếu trang chủ không mang ý nghĩa là trang hồ sơ cá nhân, thì Person vẫn có thể được mô tả như một thực thể riêng biệt trong biểu đồ JSON-LD chung mà không cần biến trang đó thành ProfilePage.
Mục đích của Person
Person mô tả một con người cụ thể như một thực thể riêng biệt chứ không chỉ là một chuỗi văn bản chứa tên tác giả. Điều này cho phép:
- thiết lập định danh thực thể ổn định thông qua
@id; - liên kết tác giả với trang web, các trang, ấn phẩm và các thực thể khác;
- chỉ định tên thay thế / biệt hiệu;
- liên kết con người với các trang bên ngoài định danh rõ ràng cùng một cá nhân đó;
- giảm sự mơ hồ trong trường hợp trùng tên;
- hình thành một biểu đồ JSON-LD nhất quán thay vì một tập hợp các đoạn đánh dấu không liên kết.
Các trường của Person cần xem xét
Cơ bản
@type: "Person"— loại thực thể.@id— định danh URI ổn định bên trong biểu đồ, ví dụ: URL của trang web đi kèm với định danh fragment. Cần thiết để tham chiếu lặp lại đến cùng một thực thể từ các nút JSON-LD khác.name— tên chính của cá nhân. Google khuyến nghị sử dụng tên thật ở đây nếu biết.alternateName— tên thay thế, bút danh, biệt hiệu hoặc định danh ổn định khác.url— URL chuẩn (canonical URL) của trang/trang web liên kết với thực thể này.image— hình ảnh của cá nhân; có thể là URL hoặcImageObject.description— mô tả ngắn về thực thể.
Định danh và loại bỏ sự mơ hồ
sameAs— thuộc tính chính thức của Schema.org, nhận giá trị kiểuURL. Được sử dụng cho các liên kết trỏ đến các trang bên ngoài có nội dung chỉ định rõ ràng về cùng một thực thể. Google đặc biệt khuyến nghị trường này cho các liên kết đến các hồ sơ bên ngoài khác hoặc trang chủ hồ sơ.- Không nên thêm bất kỳ lượt nhắc đến, danh mục hoặc trang theo chủ đề nào vào
sameAs. Cần dùng chính xác các trang định danh một cách đáng tin cậy về cùng con người đó: hồ sơ đã xác minh, trang tác giả, Wikidata/Wikipedia và các nguồn tương tự nếu chúng thực sự tồn tại và thuộc về cùng một cá nhân. identifier— định danh bổ sung, nếu có định danh bên ngoài thực sự ổn định.mainEntityOfPage— có thể sử dụng khi một trang cụ thể chủ yếu mô tả về cá nhân này.disambiguatingDescription— chú thích ngắn gọn nếu cần thiết để phân biệt cá nhân đó với những người trùng tên.
Bối cảnh nghề nghiệp — Chỉ khi dữ liệu thực sự có mặt trên trang web
jobTitle— chức vụ / vai trò chuyên môn.worksFor— tổ chức nơi cá nhân đó làm việc.affiliation— tổ chức hoặc cộng đồng mà cá nhân đó có liên kết.knowsAbout— các lĩnh vực chuyên môn; sử dụng thận trọng và chỉ áp dụng cho thông tin có thể xác thực thực tế.
Không cần điền các trường chỉ để cho đủ bộ Schema.org. Đánh dấu phải phù hợp với nội dung hiển thị trên trang và dữ liệu thực tế.
Liên kết với ProfilePage
Google hỗ trợ dữ liệu có cấu trúc ProfilePage. Đối với trang này, đối tượng chính được thiết lập thông qua mainEntity có kiểu Person hoặc Organization.
Nếu trang web có hoặc sẽ có một trang "Giới thiệu" / hồ sơ tác giả riêng biệt, hãy xem xét cấu trúc:
{
"@context": "https://schema.org",
"@type": "ProfilePage",
"mainEntity": {
"@id": "#person",
"@type": "Person",
"name": "..."
}
}
Nếu trang chủ chứa nhiều thông tin không chỉ về một cá nhân, đừng sử dụng ProfilePage một cách máy móc chỉ vì mục đích SEO.
sameAs: Kết luận dựa trên tài liệu
Trường này tồn tại và là thuộc tính tiêu chuẩn của Schema.org (Thing.sameAs). Ý nghĩa của nó: URL của trang chỉ định rõ ràng về danh tính của cùng một thực thể.
Trong tài liệu về ProfilePage, Google cũng nêu sameAs là thuộc tính được khuyến nghị cho Person / Organization: URL của các hồ sơ bên ngoài khác hoặc trang chủ hồ sơ.
Nói cách khác, việc sử dụng sameAs cho các hồ sơ bên ngoài đã được xác minh là hoàn toàn chính xác. Tuy nhiên, cần phải kiểm tra kỹ từng URL trước khi thêm vào và không biến mảng này thành một danh sách chứa tất cả các liên kết bên ngoài nói về cá nhân đó.
Triển khai
- Chọn một
@idổn định choPerson. - Liên kết
WebSitehiện có với thực thểPersonở những nơi có ý nghĩa về mặt ngữ nghĩa. - Kiểm tra đánh dấu của các trang tác giả/bài viết và nếu có thể, hãy trỏ thuộc tính
authorcủa chúng về cùng một@id. - Không nhân bản một cá nhân thành các đối tượng
Personriêng biệt không liên kết trên các trang khác nhau. - Hình thành
@graphdạng JSON-LD nếu việc đó giúp đơn giản hóa các mối liên kết giữaWebSite,WebPage/ProfilePage,Person,Articlevà các thực thể khác. - Kiểm tra đánh dấu cuối cùng bằng công cụ Schema Markup Validator và Google Rich Results Test ở những nơi mà loại tương ứng được Google hỗ trợ.
- Đảm bảo rằng các giá trị dữ liệu có cấu trúc khớp với nội dung hiển thị trên trang và các yêu cầu chung của Google đối với dữ liệu có cấu trúc (structured data).
Ворклоги
Đã tìm kiếm thông qua AI agent của tôi. Đã gửi truy vấn:
Tìm tất cả các liên kết đến hồ sơ Nikolay Lanets aka Fi1osof trên tất cả các tài nguyên nổi tiếng và cho tôi danh sách này. Tôi cần điều này để soạn sameAs trong microdata Person
Nó đã cung cấp thông tin sau:
Danh sách đầy đủ các hồ sơ và liên kết cho sameAs microdata Person
Dưới đây là tất cả các liên kết hồ sơ được tìm thấy của Nikolay Lanets (Fi1osof):
Hồ sơ chính:
- Trang web cá nhân/portfolio: https://fi1osof.ru/
- Trang "Giới thiệu": https://fi1osof.ru/about
Phát triển và mã nguồn:
- GitHub (chính): https://github.com/Fi1osof
- GitHub (tên đăng nhập thay thế): https://github.com/fi1osof
- GitHub Gists: https://gist.github.com/Fi1osof
- NPM (npmx.dev): https://npmx.dev/~fi1osof
- Gói NPM: https://www.npmjs.com/package/@fi1osof/react-draft-wysiwyg
Mạng xã hội và cộng đồng:
- LinkedIn: https://www.linkedin.com/in/fi1osof
- Habr (tiếng Nga): https://habr.com/ru/users/Fi1osof/
- Habr (tiếng Anh): https://habr.com/en/users/Fi1osof/
- Pikabu: https://pikabu.ru/@Fi1osof
Nền tảng chuyên specialized:
- modx.pro (Cộng đồng MODX): https://modx.pro/users/real-fi1osof
- market.dev (Thư mục hệ sinh thái): https://explore.market.dev/experts/Fi1osof
Hồ sơ Web3:
- Lens Protocol (Web3.bio): https://web3.bio/fi1osof.lens
- Lens.dev: fi1osof.lens
Dự án:
- haih-net trên GitHub: https://github.com/haih-net/agent (người đóng góp chính)
- FreeCode.Academy: https://freecode.academy
- haih.net (mạng xã hội): https://haih.net
- KMS-Agent: https://kms-agent.ai/
Mã cho sameAs trong JSON-LD:
{
"@context": "https://schema.org",
"@type": "Person",
"name": "Nikolay Lanets",
"alternateName": "Fi1osof",
"url": "https://fi1osof.ru",
"sameAs": [
"https://fi1osof.ru",
"https://fi1osof.ru/about",
"https://github.com/Fi1osof",
"https://github.com/fi1osof",
"https://www.linkedin.com/in/fi1osof",
"https://habr.com/ru/users/Fi1osof/",
"https://habr.com/en/users/Fi1osof/",
"https://pikabu.ru/@Fi1osof",
"https://modx.pro/users/real-fi1osof",
"https://explore.market.dev/experts/Fi1osof",
"https://web3.bio/fi1osof.lens",
"https://gist.github.com/Fi1osof",
"https://npmx.dev/~fi1osof",
"https://freecode.academy",
"https://haih.net"
]
}
Lưu ý: Telegram và Twitter không tìm thấy trực tiếp, mặc dù trong hồ sơ có các liên kết đến chúng. Nếu có, chúng có thể được thêm riêng.
Khá tiện lợi :-)