Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If a WordPress thumbnail or featured image is missing, first check that the image is assigned to the post, then confirm that the active theme supports and outputs post thumbnails. If the theme or its registered image sizes changed, regenerate derivatives. Only after those checks should you investigate the block template, CSS, or a theme/plugin interaction.

This guide follows that order so you can identify whether the problem is an assignment, an unavailable image size, or a rendering failure.

Start with a three-minute diagnosis

  1. Edit the affected content. Confirm a Featured Image is selected and click Update or Publish again.
  2. Check the view that is failing. An archive, search result, single post, page, and custom-post-type template can all use different markup.
  3. Identify the requested size. The Media settings “thumbnail” size and a theme’s post-thumbnail size are separate names and can have different dimensions.
  4. Regenerate after size or theme changes. Regeneration creates missing derivatives for sizes currently registered by the active theme and Media settings; it does not assign an image or repair a template that never outputs one.

That sequence prevents a common mistake: repeatedly regenerating files when the post has no assigned image, or when CSS is hiding an image that already exists.

Confirm a Featured Image is assigned

Open the post, page, or custom post type in the WordPress editor. In the editor sidebar, look for Featured image, select an item from the Media Library (or upload one), and save the content. A post thumbnail is simply an image assigned to that content; it is not created automatically by uploading an image to the Media Library.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

If the Featured image panel is absent, check the editor’s Options or Preferences and the screen options available for that content type. The post type and the active theme must expose support for featured images. WordPress states: “Themes must declare support for the Featured Image function before the Featured Image interface will appear on the Edit screen.” See the WordPress Featured Images & Post Thumbnails documentation.

For a custom post type, its registration must also support thumbnails. If you manage the code, verify that the post type’s supports array includes thumbnail; otherwise the editor cannot store a featured-image assignment for that type.

Verify that the active theme supports and renders thumbnails

Having an assigned image does not guarantee that it appears on every screen. The active theme must declare thumbnail support and the relevant template must print the image. WordPress provides has_post_thumbnail() to test an assignment and the_post_thumbnail() to output it.

Classic-theme support

A classic theme normally enables support in its setup code:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
add_action( 'after_setup_theme', function () {
    add_theme_support( 'post-thumbnails' );
} );

A loop can then conditionally output the image:

if ( has_post_thumbnail() ) {
    the_post_thumbnail( 'post-thumbnail' );
}

These are implementation examples from WordPress documentation, not a drop-in fix for every theme. Put changes in a child theme or a site-specific plugin so a parent-theme update does not overwrite them.

Block themes and template parts

In a block theme, open Appearance > Editor and inspect the template or template part used by the failing view. A Query Loop may include a Post Featured Image block while the single-post template does not. Add the block to the appropriate template, set its link and dimensions, and save the template. Editing an archive template will not change the single-post template.

Check the exact view

Test one post directly, an archive page, a category or tag archive, and a search result. If only one view fails, focus on that view’s template rather than regenerating the entire media library. A theme can intentionally omit thumbnails from single posts while showing them in archives.

Check the image size the template requests

WordPress has standard sizes configured under Settings > Media, while themes and plugins can register additional names. The dashboard’s “Thumbnail” setting is not the same thing as the theme’s post-thumbnail output size. A template can request a custom name even when the Media settings page looks correct.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Mark Twain Note Taking Workbook, Critical Thinking Books Covering Study Skills, Research, Resources, Speed Reading, Time Management, and More, Grades 4 and Up
  • Handy note taking workbook for students
  • Use to improve research skills and test scores
  • Offers effective strategies and reference section
  • Apply to textbooks, novels, research, on-line resources and class lectures
  • Illustrates Venn diagrams, webs, tables, lists, summaries and more
Size or setting What it means What to verify
Thumbnail (Media settings) A standard generated size; WordPress documentation gives 150 × 150 pixels as a default example. Confirm the current width, height, and crop setting under Settings > Media.
Medium A standard size; 300 × 300 pixels is a documented default example. Check whether the template actually asks for medium.
Medium Large A standard size with a documented 768-pixel maximum-width example. Remember that installations can configure different values.
Large A standard size with a documented 1024 × 1024 example. Verify the generated file exists for the attachment.
post-thumbnail or a custom name A theme- or plugin-registered output size, distinct from the Media settings label “Thumbnail.” Find the name and dimensions in the active theme or plugin code.

The figures above are documented defaults or examples, not universal requirements. Your theme can register a different width, height, or crop mode.

Find custom registrations and crop behavior

Custom sizes are declared with add_image_size(). For example:

add_image_size( 'category-thumb', 300, 9999 );

The third and fourth arguments control the requested dimensions; a hard crop can change composition and may cut off the subject. WordPress documents the function at add_image_size(). Confirm that the size name used by the template is registered before you regenerate files.

Regenerate derivatives after a theme or size change

When you switch themes or alter registered sizes, older uploads still contain derivatives made for the previous configuration. Regeneration creates copies for the sizes that are registered now. It does not select a Featured Image, add thumbnail support, or make a template render an image.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Dashboard workflow

  1. Save the intended values in Settings > Media and ensure the custom size is registered by the active theme or plugin.
  2. Back up the site and database before processing a large library.
  3. Install the Regenerate Thumbnails plugin only after checking its current compatibility, maintenance status, and settings on its WordPress.org listing.
  4. Run the plugin’s regeneration action and allow it to finish. Large libraries can take substantial time and server resources.
  5. Retest the original post and the view that was failing. If the image is still absent, return to template and CSS checks; regeneration cannot fix missing output.

WP-CLI workflow

With shell access and a working WP-CLI installation, run the command from the WordPress directory. The official reference is wp media regenerate.

# Regenerate all attachment sizes
wp media regenerate

# Regenerate one or more attachment IDs
wp media regenerate 123 456

# Regenerate one named size
wp media regenerate --image_size=post-thumbnail

# Generate only sizes that are missing
wp media regenerate --only-missing

# Preserve old generated files while regenerating
wp media regenerate --skip-delete

Replace the example IDs and size name with values from your site. --skip-delete keeps old generated thumbnails, which is useful if another system still references those files; it also consumes more storage. Run bulk jobs during a low-traffic period and monitor disk space and PHP or web-server limits.

If the file exists but the image is still invisible

Inspect the rendered HTML

Use your browser’s developer tools on the failing page. A working result normally includes an img element (or a background image) with a source URL and dimensions. If no image element is present, the template or block does not output it. If the element exists, open its source URL directly and check the Network panel for a 404, permission error, or an unexpected format.

Look for CSS and layout rules

Check for display: none, visibility: hidden, zero height, an overflowing parent, transparent opacity, or a container covered by another element. Responsive rules can hide a thumbnail only at a particular viewport width. Temporarily disable suspect rules in developer tools; make the permanent change in the child theme or block styles after confirming the cause.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Isolate theme and plugin behavior safely

If the problem began immediately after a theme or plugin change, reproduce it on staging or from a current backup. Switch to a default theme and disable nonessential plugins one at a time, recording each result. Restore the production configuration after the test. There is no single universal cache-clearing or plugin-conflict fix: the responsible template, filter, CSS rule, or extension must be identified on the affected site.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshooting by symptom

Symptom Most likely area Next action
No Featured image control in the editor Theme or post-type support Check editor options, post-type supports, and add_theme_support( 'post-thumbnails' ).
Featured image is selected, but no img appears Template or block output Inspect the exact archive, single, or custom template and add the appropriate featured-image output.
An img appears but its URL returns 404 Missing derivative or incorrect size name Confirm the registered size, then regenerate that size and retest the URL.
Archives work but single posts do not Different templates Inspect the single-post template or template part rather than regenerating every attachment.
Images disappear only on mobile or one browser width Responsive CSS or layout Use developer tools at the failing width and inspect visibility, dimensions, and overflow rules.
Issue started after changing themes New registered sizes or markup Identify the new size, register it, regenerate older attachments, and inspect the new template.

Or skip the browser setup

If you need a clean, repeatable screenshot of the WordPress page while diagnosing the result, ScreenshotNeo is a website screenshot API and MCP server. It accepts a URL and can return PNG, JPEG, WebP, or PDF. Before capture it can accept cookie or consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and the response identifies the result with X-Page-Verdict and X-Billed headers.

One GET request is enough to capture a page (replace the URL with the post or archive you are testing). See the ScreenshotNeo documentation for all options.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://example.com"}, timeout=90)
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://example.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

ScreenshotNeo also offers an MCP server with take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. Every feature is available on every plan: 1,000 screenshots per month are free with no card, and paid plans start at $5 for 3,000 shots. Create a free ScreenshotNeo account to try the capture without a card.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Operational notes before you regenerate a library

  • Back up first: bulk image work can consume CPU, memory, storage, and execution time.
  • Register before regenerating: the command can only create sizes that WordPress currently knows about.
  • Use a targeted run when possible: regenerate affected attachment IDs or one size instead of the entire library.
  • Keep old files deliberately: use --skip-delete when legacy URLs may still be referenced, and plan storage cleanup separately.
  • Validate the actual page: confirm the image element, source URL, and layout in the same view and viewport where readers reported the problem.

Frequently Asked Questions

Is “post-thumbnail” a separate image assignment?

No. It is a size name that a template can request when outputting an already assigned Featured Image. The assignment and the generated derivative are separate concerns.

Can regeneration run while visitors are on the site?

It can, but a large library may compete for server resources. A backup and an off-peak or staging run reduce the risk of timeouts and performance impact.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.