Image SEO

Image schema markup

Cấu trúc dữ liệu JSON-LD hoặc Microdata mô tả hình ảnh (ví dụ: license, caption, creator) để nâng cao rich result.

2 lượt xem Cập nhật: 29/05/2026

Image schema markup là gì?

Image schema markup là đoạn mã cấu trúc dữ liệu (thường ở định dạng JSON-LD hoặc Microdata) được chèn vào HTML trang web để mô tả chi tiết về một hình ảnh — như tên tác giả, giấy phép sử dụng, chú thích, ngày tạo, nguồn gốc, hoặc quyền sở hữu. Đây là cách giúp công cụ tìm kiếm (đặc biệt là Google) hiểu sâu hơn nội dung và ngữ cảnh của hình ảnh, thay vì chỉ dựa vào tên tệp, thẻ alt, hoặc vị trí trên trang.

Schema markup cho hình ảnh không phải là một loại schema riêng biệt trong schema.org, mà là việc sử dụng các thuộc tính từ các loại schema liên quan — chủ yếu là ImageObject, kết hợp với các lớp cha như CreativeWork, MediaObject, hoặc Photograph. Các thuộc tính phổ biến bao gồm: caption, license, creator, datePublished, contentUrl, thumbnailUrl, và encodingFormat.

Tại sao quan trọng trong SEO?

Image schema markup hỗ trợ Image SEO theo ba hướng chính:

  • Nâng cao khả năng hiển thị rich result: Khi dữ liệu đầy đủ và hợp lệ, Google có thể hiển thị thêm thông tin (như tên người sáng tạo hoặc giấy phép) trong kết quả tìm kiếm hình ảnh — tăng độ tin cậy và tỷ lệ nhấp (CTR).
  • Cải thiện ngữ nghĩa cho thuật toán: Giúp công cụ tìm kiếm phân biệt rõ hình ảnh minh họa, ảnh sản phẩm, ảnh báo chí hay ảnh bản quyền — từ đó xếp hạng phù hợp hơn trong các truy vấn liên quan đến nguồn, tác giả hoặc chứng nhận.
  • Hỗ trợ lập chỉ mục chính xác hơn: Dữ liệu cấu trúc làm rõ mối liên hệ giữa hình ảnh và nội dung xung quanh (ví dụ: ảnh trong bài báo về biến đổi khí hậu có thể được gắn thẻ about = "biến đổi khí hậu"), giảm sai sót khi lập chỉ mục.

Lưu ý: Image schema markup không trực tiếp cải thiện thứ hạng — nhưng là yếu tố hỗ trợ gián tiếp qua trải nghiệm người dùng và độ tin cậy tín hiệu.

Cách hoạt động

Khi Googlebot thu thập trang web, nó đọc cả HTML và phần dữ liệu cấu trúc. Nếu phát hiện schema markup hợp lệ cho hình ảnh, công cụ tìm kiếm sẽ trích xuất các thuộc tính đã khai báo và so sánh chúng với các tiêu chí hiển thị rich result (ví dụ: yêu cầu license phải là URL hợp lệ, creator phải là đối tượng Person hoặc Organization).

Google chỉ sử dụng dữ liệu này nếu hình ảnh đáp ứng đủ điều kiện về chất lượng (độ phân giải tối thiểu ~200x200 px), khả năng truy cập (không bị chặn bởi robots.txt hoặc noindex), và tính nhất quán với nội dung trang.

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

  1. Xác định hình ảnh cần đánh dấu: Ưu tiên ảnh chính (ảnh đại diện bài viết, ảnh sản phẩm nổi bật, ảnh báo chí có nguồn rõ ràng).
  2. Chọn định dạng markup: JSON-LD là lựa chọn được khuyến nghị (dễ triển khai, ít gây lỗi render, hỗ trợ đầy đủ trên mọi nền tảng). Tránh Microdata nếu không bắt buộc tương thích với hệ thống cũ.
  3. Khai báo đúng loại schema: Dùng @type: "ImageObject" làm lớp cơ bản. Nếu ảnh là tác phẩm nghệ thuật hoặc ảnh báo chí, kết hợp với isBasedOn, provider, hoặc accountablePerson.
  4. Điền thuộc tính bắt buộc & đề xuất:
    • Bắt buộc: contentUrl (URL tuyệt đối của ảnh), @type
    • Khuyến nghị: caption, license, creator, datePublished, description
  5. Thử nghiệm và xác minh: Dùng Google Rich Results Test hoặc Schema Markup Validator để kiểm tra lỗi cú pháp và khả năng hiển thị.

Lỗi thường gặp

Lỗi Nguyên nhân Cách khắc phục
Giá trị license không phải URL Nhập văn bản như "CC BY-SA 4.0" thay vì link tới trang cấp phép Dùng URL hợp lệ từ creativecommons.org hoặc trang chính thức của giấy phép
contentUrl là đường dẫn tương đối Mã markup chứa "contentUrl": "/images/photo.jpg" Chuyển thành URL tuyệt đối: "contentUrl": "https://example.com/images/photo.jpg"
Thiếu @context hoặc sai định dạng JSON Quên khai báo @context: "https://schema.org" hoặc dùng dấu phẩy thừa Sử dụng trình kiểm tra JSON (như JSONLint) trước khi triển khai; luôn đặt markup trong thẻ <script type=\"application/ld+json\">

Ví dụ thực tế

Dưới đây là đoạn JSON-LD markup cho một ảnh chụp rừng ngập mặn do nhà báo Nguyễn Văn A cung cấp, được cấp phép CC BY 4.0:

{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "contentUrl": "https://example.com/images/rung-ngap-man-2024.jpg",
  "thumbnailUrl": "https://example.com/images/rung-ngap-man-2024-thumb.jpg",
  "caption": "Rừng ngập mặn tại Cần Giờ, TP.HCM – tháng 4/2024",
  "description": "Ảnh ghi nhận sự phục hồi hệ sinh thái rừng ngập mặn sau 10 năm trồng mới.",
  "license": "https://creativecommons.org/licenses/by/4.0/",
  "creator": {
    "@type": "Person",
    "name": "Nguyễn Văn A"
  },
  "datePublished": "2024-04-15",
  "encodingFormat": "image/jpeg"
}

Markup này nên được chèn trong thẻ <head> hoặc ngay trước thẻ </body> — không đặt bên trong thẻ <img>.

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

Image schema markup có làm tăng lượt hiển thị hình ảnh trên Google Images?

Không đảm bảo tăng lượt hiển thị, nhưng giúp Google hiểu đúng ngữ cảnh — từ đó cải thiện khả năng xuất hiện trong các truy vấn liên quan đến tác giả, giấy phép hoặc chủ đề cụ thể. Tỷ lệ cải thiện phụ thuộc vào chất lượng tổng thể của hình ảnh và trang.

Có cần áp dụng markup cho mọi hình ảnh trên trang?

Không. Chỉ nên triển khai cho ảnh có giá trị nội dung cao (ảnh minh họa chính, ảnh sản phẩm, ảnh báo chí, ảnh nghiên cứu). Áp dụng đại trà dễ gây nhiễu dữ liệu và làm chậm tải trang — đặc biệt với hàng chục ảnh nhỏ.

Google có hỗ trợ tất cả thuộc tính của ImageObject không?

Google chỉ sử dụng một tập con thuộc tính để hiển thị rich result. Các thuộc tính như exifData, subjectOf, hay video chưa được hỗ trợ hiển thị trong kết quả tìm kiếm. Danh sách thuộc tính được hỗ trợ có thể thay đổi — nên theo dõi tài liệu chính thức tại Google Developers.