AEO Saigon
How-to

ImageObject Schema and Alt Text for AI: Optimizing Images So AI Understands and Cites Them

Table of contents

Images account for 50-70% of page bandwidth — but most Vietnamese websites treat images as "decoration" rather than structured data sources. AI search is increasingly able to read images, but clear alt text and ImageObject schema remain the most reliable ways to ensure AI correctly understands your image content.

How AI processes images

Data sourceAI can read?ReliabilityNotes
Alt text (alt="")✅ AlwaysVery highRequired for AEO
Caption (figcaption)✅ AlwaysHighRecommended for important images
Surrounding text✅ AlwaysMediumAI uses for context
ImageObject schema✅ AlwaysHighFor complete metadata
Image file name✅ AlwaysLowSecondary signal
Pixel content of image⚠️ Model-dependentLow-MediumNot fully reliable

ImageObject schema inside Article

{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Hướng dẫn JSON-LD cho người mới bắt đầu",
  "image": [
    {
      "@type": "ImageObject",
      "url": "https://example.vn/images/json-ld-guide-1200x630.jpg",
      "contentUrl": "https://example.vn/images/json-ld-guide-1200x630.jpg",
      "thumbnailUrl": "https://example.vn/images/json-ld-guide-400x210.jpg",
      "width": 1200,
      "height": 630,
      "caption": "Sơ đồ cấu trúc JSON-LD cho Article schema với các trường bắt buộc và tùy chọn",
      "author": {
        "@type": "Organization",
        "name": "AEO Saigon"
      },
      "license": "https://creativecommons.org/licenses/by/4.0/",
      "acquireLicensePage": "https://example.vn/license"
    },
    {
      "@type": "ImageObject",
      "url": "https://example.vn/images/json-ld-result-1200x630.jpg",
      "width": 1200,
      "height": 630,
      "caption": "Screenshot kết quả Rich Results Test sau khi triển khai Article schema"
    }
  ]
}

ImageObject inside Product schema

{
  "@context": "https://schema.org",
  "@type": "Product",
  "name": "Áo Polo Nam Cotton Premium",
  "image": [
    {
      "@type": "ImageObject",
      "url": "https://shop.example.vn/images/ao-polo-nam-navy-front.jpg",
      "contentUrl": "https://shop.example.vn/images/ao-polo-nam-navy-front.jpg",
      "width": 1200,
      "height": 1200,
      "caption": "Áo polo nam màu navy nhìn từ phía trước — cotton 100% dệt pique"
    },
    {
      "@type": "ImageObject",
      "url": "https://shop.example.vn/images/ao-polo-nam-navy-back.jpg",
      "width": 1200,
      "height": 1200,
      "caption": "Áo polo nam màu navy nhìn từ phía sau — cổ bẻ 3 nút"
    },
    {
      "@type": "ImageObject",
      "url": "https://shop.example.vn/images/ao-polo-nam-navy-detail.jpg",
      "width": 800,
      "height": 800,
      "caption": "Chi tiết chất vải cotton pique 220GSM, đường may phẳng"
    }
  ]
}

Next.js: alt text and automatic ImageObject

// components/blog/ArticleImage.tsx
import Image from "next/image";

interface ArticleImageProps {
  src: string;
  alt: string;
  caption?: string;
  width: number;
  height: number;
  priority?: boolean;
}

export function ArticleImage({
  src,
  alt,
  caption,
  width,
  height,
  priority = false,
}: ArticleImageProps) {
  return (
    <figure className="my-8">
      <Image
        src={src}
        alt={alt}
        width={width}
        height={height}
        priority={priority}
        className="rounded-lg w-full h-auto"
      />
      {caption && (
        <figcaption className="mt-2 text-sm text-center text-muted-foreground">
          {caption}
        </figcaption>
      )}
    </figure>
  );
}

// Hàm generate ImageObject từ danh sách ảnh
export function generateImageObjects(
  images: Array<{ url: string; width: number; height: number; caption?: string }>
) {
  return images.map((img) => ({
    "@type": "ImageObject",
    url: img.url,
    contentUrl: img.url,
    width: img.width,
    height: img.height,
    ...(img.caption && { caption: img.caption }),
  }));
}

Image optimization checklist for AI

  • Each image has alt text describing its actual content (no keyword stuffing)
  • Alt text 10-120 characters, a complete sentence, not starting with "Image of"
  • Meaningful file names: kebab-case, not IMG_0042.jpg
  • ImageObject schema in Article/Product with url, width, height, caption
  • Featured image: 1200x630px (OG), 1200x1200px (Product square)
  • figcaption for infographics and information-dense images
  • Stable image URLs — don't change after publishing
  • AI-generated images: clearly note in caption and alt text
  • Multiple product angles = multiple ImageObjects in the image array
  • Text version of infographic (table/list) below the image so AI can read the data

Properly optimized images not only help AI understand your content better — they also improve accessibility (screen readers), increase traffic from Google Image Search, and serve as an E-E-A-T signal when images have clear author and license information.

Frequently asked questions

How do AI crawlers read images when crawling a website?

AI crawlers read images through 3 sources: (1) The img tag's alt text — the most important, it is the text description of the image, (2) Surrounding text (captions, nearby headings, surrounding paragraphs) — AI uses this to understand context, (3) ImageObject schema in JSON-LD — enables declaring full metadata (name, description, author, license, dimensions). Many current AI models have vision capability and can 'see' images — but alt text and ImageObject remain more reliable data since they don't depend on the model version. Missing alt text means AI must guess the image content, which produces inaccurate information.

How should alt text be written for AEO?

Good alt text for AEO: describes the actual image content (no keyword stuffing), 10-120 characters, with context. Bad example: 'schema.org json-ld seo'. Good example: 'JSON-LD code snippet for Product schema with priceRange and aggregateRating'. For product images: '[Product name] — [color/style] — [key feature]'. For infographics: 'Infographic: [infographic title] — [main data point or insight]'. For real photos: describe the person, action, and location. Don't repeat the same alt text for multiple images.

What does ImageObject schema add over just having alt text?

ImageObject schema allows declaring additional information: author (who photographed or created the image — important for E-E-A-T), license (usage rights), contentUrl vs thumbnailUrl (separate URLs for the original and thumbnail), width/height (dimensions), dateCreated, caption (a more detailed description than alt text). For Google Image Search: ImageObject helps images appear with author and license information. For AI: the caption in ImageObject can be longer than alt text — a 1-3 sentence description — and AI uses it to understand image context. Important: contentUrl must be the actual image file URL, not the page containing the image.

How should e-commerce product images be optimized?

E-commerce product images: (1) Alt text = '[Product name] [color/size/key feature]' — example: "Men's navy polo shirt size L 100% cotton", (2) ImageObject schema inside Product schema — Google displays product images in Shopping rich results, (3) Multiple angles = multiple ImageObjects in the Product's image array, (4) Images must meet standards: white or neutral background, minimum 1200x1200px resolution, 1:1 ratio for thumbnails, (5) Meaningful file names: 'mens-polo-navy-size-l.jpg' instead of 'IMG_0042.jpg'. Google Shopping and AI both use all of these signals.

Do infographics and diagrams need their own schema?

Yes — but not purely ImageObject. Infographics are typically images carrying information that AI cannot read just by looking at the image. Solution: (1) Alt text describes the main insight of the infographic (not the visual elements themselves), (2) Below the infographic, include a text version of the data (table or bullet list) — AI can read text, (3) Caption describes the data source and update date, (4) If the infographic contains a lot of numerical data: consider combining Dataset schema. Goal: AI can cite information from the infographic via the text version, not just link to the image.

AEO Saigon

An Answer Engine Optimization agency in Ho Chi Minh City — helping business websites get cited by AI. About AEO Saigon →

Want your website to be cited by AI like this?

Free Audit