The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →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
- Edit the affected content. Confirm a Featured Image is selected and click Update or Publish again.
- Check the view that is failing. An archive, search result, single post, page, and custom-post-type template can all use different markup.
- Identify the requested size. The Media settings “thumbnail” size and a theme’s
post-thumbnailsize are separate names and can have different dimensions. - 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.
#1 Best Overall
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:
Rank #2
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.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problemsRank #3
- 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.
Dashboard workflow
- Save the intended values in Settings > Media and ensure the custom size is registered by the active theme or plugin.
- Back up the site and database before processing a large library.
- Install the Regenerate Thumbnails plugin only after checking its current compatibility, maintenance status, and settings on its WordPress.org listing.
- Run the plugin’s regeneration action and allow it to finish. Large libraries can take substantial time and server resources.
- 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.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallIsolate 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.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.
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-deletewhen 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.
Quick Recap
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.

