/ JSON Checker Fixes / Schema Images

How to Fix Schema Image Errors

Schema images are what Google uses for rich result thumbnails, news carousels, recipe cards, and the visual element of most enhanced search features. Get them wrong and your content shows without a thumbnail — losing click-through to competitors who got it right. Errors typically cluster around: bare URLs instead of ImageObject, missing dimensions, relative paths, and images too small for Google's minimums. This guide covers the format, requirements, and tooling for getting it right consistently.

1. Audit current image schema

Step 1
Run the JSON Checker
Findings categorise as: image is a bare URL string (limits rich results), missing width/height (fails Article rich result), URL is relative (Google can't resolve), URL returns 404 or non-image content (broken).
Step 2
Test with Rich Results Test
Google's Rich Results Test reports image-specific issues: "Image dimensions too small", "Cannot fetch image", "Missing field image". The error messages here are specific and actionable.

2. Use ImageObject not bare URLs

Bare URL (limited)

{
  "@type": "Article",
  "image": "https://yoursite.com/article-hero.jpg"
}

Works for basic structured data. Doesn't qualify for Article rich results, which need explicit dimensions.

ImageObject (full)

{
  "@type": "Article",
  "image": {
    "@type": "ImageObject",
    "url": "https://yoursite.com/article-hero.jpg",
    "width": 1200,
    "height": 675,
    "caption": "Optional caption text"
  }
}

Multiple ImageObjects (best for Articles)

{
  "@type": "Article",
  "image": [
    {
      "@type": "ImageObject",
      "url": "https://yoursite.com/article-hero-16x9.jpg",
      "width": 1200,
      "height": 675
    },
    {
      "@type": "ImageObject",
      "url": "https://yoursite.com/article-hero-4x3.jpg",
      "width": 1200,
      "height": 900
    },
    {
      "@type": "ImageObject",
      "url": "https://yoursite.com/article-hero-1x1.jpg",
      "width": 1200,
      "height": 1200
    }
  ]
}

Google picks the right aspect ratio for each surface. Article rich results in different layouts use different ratios; providing all three maximises placement.

3. Meet Google's dimension requirements

Article rich results

Product images

Recipe images

4. Use absolute URLs

⚠️ Schema image URLs must be absolute. Relative paths break — Google doesn't resolve them against the page's base URL.
// WRONG
"url": "/images/article-hero.jpg"
"url": "//cdn.example.com/image.jpg"  // protocol-relative also fails

// RIGHT
"url": "https://yoursite.com/images/article-hero.jpg"
"url": "https://cdn.example.com/image.jpg"

In templates, prepend the canonical domain:

// WordPress
"url": "<?php echo esc_url(get_the_post_thumbnail_url($post, 'large')); ?>"

// Next.js
"url": `https://yoursite.com${image.url}`

5. Verify accessibility

Google needs to fetch the image. Common reasons fetching fails:

Test image URLs

# Verify Googlebot can fetch
curl -A "Mozilla/5.0 (compatible; Googlebot/2.1)" \
     -I https://yoursite.com/images/article-hero.jpg

# Expect: 200 OK, Content-Type: image/...

6. Logo schema for Organization

Organization.logo has stricter requirements than article images:

{
  "@type": "Organization",
  "@id": "https://yoursite.com/#organization",
  "name": "Acme Co",
  "url": "https://yoursite.com",
  "logo": {
    "@type": "ImageObject",
    "url": "https://yoursite.com/logo.png",
    "width": 600,
    "height": 60
  }
}

Logo specifics

7. Build image schema correctly

WordPress

$thumb_id = get_post_thumbnail_id($post);
$meta = wp_get_attachment_metadata($thumb_id);
$url = wp_get_attachment_url($thumb_id);

$image_object = [
  '@type' => 'ImageObject',
  'url' => $url,
  'width' => $meta['width'],
  'height' => $meta['height']
];

Next.js with Sharp or similar

import sharp from 'sharp';

async function getImageDimensions(filePath) {
  const meta = await sharp(filePath).metadata();
  return { width: meta.width, height: meta.height };
}

// At build or request time
const { width, height } = await getImageDimensions(article.imagePath);
const imageObject = {
  '@type': 'ImageObject',
  url: `https://yoursite.com${article.image}`,
  width,
  height
};

8. Verify

Step 1
Rich Results Test per page
Paste URL into Rich Results Test. Image section should show "Valid" with no errors. Preview thumbnail shows what Google would display in a rich result.
Step 2
Search Console enhancements
Wait 2-7 days after deployment. Search Console → Enhancements → Articles (or relevant type) should show "Valid items" counts rising and "Invalid items" dropping as Google re-processes.
💡 The "Articles" Search Console enhancement report is your scoreboard. Errors there mean you're losing rich-result placements. A clean Articles report with growing Valid count over time is the goal.

📋 Re-run the JSON Checker

Verify image schema findings are cleared.

Run JSON Checker →
Related Guides: JSON Checker Fixes  ·  Rich Snippets Guide  ·  Image Optimisation Fixes  ·  JSON Checker Guide
💬 Got a problem?