Do WordPress's generated image sizes cause duplicate content?
No. The extra files WordPress creates for each upload, such as photo-300x200.jpg and photo-1024x683.jpg, are alternate resolutions of one image. They are offered to browsers through the srcset attribute so each device downloads a suitable size. Duplicate content concerns pages with the same text at different URLs, which these files are not.
Where the sizes come from
Each upload is resized into every registered size smaller than the original. Core registers thumbnail (150 square, cropped), medium (300), medium large (768), large (1024) and two larger sizes at 1536 and 2048 pixels. Themes and plugins register more; a shop plugin or a magazine theme can add half a dozen. A single photo therefore commonly produces eight to fifteen files.
When an image is printed, core builds a srcset listing the copies that share the image's aspect ratio, up to 2048 pixels wide, and a sizes hint:
<img src="https://example.com/wp-content/uploads/2026/05/photo-1024x683.jpg"
srcset="https://example.com/wp-content/uploads/2026/05/photo-1024x683.jpg 1024w,
https://example.com/wp-content/uploads/2026/05/photo-300x200.jpg 300w,
https://example.com/wp-content/uploads/2026/05/photo-768x512.jpg 768w,
https://example.com/wp-content/uploads/2026/05/photo-1536x1024.jpg 1536w"
sizes="(max-width: 1024px) 100vw, 1024px" alt="..." />
The browser picks one. Cropped sizes with a different shape, like the square thumbnail, are left out of the list because they are not the same picture.
Why this is not duplication
They are image files, not pages. Duplicate content, as search engines use the term, is about documents: the same article reachable at several addresses. A JPEG has no text to duplicate.
Responsive images are a web standard that Google documents and supports. Its image guidance describes srcset and recommends always including a fallback src, which WordPress does. Google understands the listed files as versions of one image belonging to the page that embeds it.
Image results are tied to the host page. An image appears in Google Images as part of a page. Several resolutions of the same picture on one page do not produce several competing results for it.
So there is nothing to canonicalise and nothing to block. In particular, do not disallow /wp-content/uploads/ or size-suffixed files in robots.txt. That prevents Google from fetching your images at all and can stop them appearing in image search.
The duplication that images can cause
There are two real, separate issues nearby.
Attachment pages. Older WordPress sites create a page for every uploaded file, containing little more than the image. Those are thin pages, and hundreds of them are a quality problem. New installs since version 6.4 have them switched off. On older sites, redirect them: Hydrogen SEO's Redirect Attachment Pages setting does it in one switch, described in attachment page redirects, and the reasoning is in our guide to redirecting attachment pages.
The same image uploaded many times. Uploading logo.png on five occasions creates five separate attachments with different URLs. It is wasteful and makes later replacement harder, though it is still not a search problem. Reuse the existing library item instead.
The actual cost of many sizes
Sizes cost storage. A library of 5,000 photos at twelve sizes each is 60,000 files. That slows backups and migrations and can hit hosting file-count limits. It does not slow page loads, because only the chosen size is downloaded.
If you want fewer:
- Find out what is registered. With WP-CLI,
wp media image-sizelists every size and its dimensions. - Remove sizes you never use. Setting a size's width and height to 0 under Settings → Media stops thumbnail, medium or large being generated. Sizes added by a theme or plugin need a small filter:
add_filter( 'intermediate_image_sizes_advanced', function ( $sizes ) {
unset( $sizes['1536x1536'], $sizes['2048x2048'] );
return $sizes;
} );
- Think before removing the large ones. The 1536 and 2048 sizes exist for high-density screens. Removing them saves disk space and makes images softer on those displays.
- Clean up old files after changing sizes with
wp media regenerate --yes, which rebuilds the set and removes files for sizes that no longer exist.
Changing the set only affects future uploads until you regenerate.
Sitemaps and structured data
When images are listed in an XML sitemap or named in schema, each picture should appear once, by one URL, normally the full-size file. A sitemap that lists every resized copy as a separate image adds noise without benefit. Hydrogen SEO's image entries, covered in XML sitemaps, list images found in the content of each post. For og:image and Article schema, use a single large image of at least 1200 pixels wide, not a thumbnail.
Common questions
Will Google index every size of my images?
It may fetch several, but it treats them as versions of one image on the embedding page. They do not appear as separate competing results.
Should I block resized images in robots.txt?
No. Blocking uploads stops search engines fetching your images and harms image search visibility. There is no duplication to prevent.
Why does WordPress create so many copies of each image?
So that browsers can download a size suited to the screen. Core registers several sizes, and themes and plugins add their own.
Does deleting unused sizes speed up my site?
Not for visitors. It reduces disk usage and backup size. Page speed depends on which size is served, not how many exist.