To extract all the images from a website at once, crawl the whole site and download every image it actually references, together with each image’s URL and alt text. The mistake is relying on the WordPress media library, which only knows about images uploaded through it. Images hard-coded into a theme, generated by a page builder, pulled from an external source, or set in a custom field often never appear in the library, so a library-based export quietly leaves gaps. A crawl captures what renders on the pages, which is what you need. WPBuildAI extracts every image with its alt text and path as part of a migration, so nothing is left behind.
Capture the source files rather than whatever the page happens to serve, because sizing behaviour is changing: WordPress 7.1, due 19 August 2026, ships Enhanced Responsive Images as a feature plugin that computes more accurate sizes values, so what a browser downloads today may not match the original.
Why crawl instead of using the library
The library is an upload log, not a map of what your pages show. It records images added through the WordPress media uploader, and nothing else. The 2024 Web Almanac reports how many images a typical page carries and how varied their sources are, themes, builders, CDNs, embeds, and only some of those ever touch the media library. So the library and the set of images actually displayed on your site are two different lists that overlap but do not match. Crawling the rendered pages is the only way to be sure you have captured every image that actually appears, which is the difference between a complete migration and a site full of broken images discovered weeks after launch. The crawl reads the pages as a visitor sees them, so what it captures is, by definition, what your site shows.
Where images hide that the library misses
It helps to know the usual hiding places, because they are exactly the images that break after a careless move. Theme images, logos, backgrounds, decorative graphics, are often shipped in the theme’s own folders, never uploaded through the library. Page builders like Elementor frequently store or reference images in their own structures. Custom fields and plugins can point at images by URL without registering them in the library. External embeds and CDN-hosted images live off-site entirely. And background images set in CSS never appear in the library at all. Each of these renders fine on the live site, so they look like part of your content, but a library export does not see them. A crawl does, because it reads the rendered page and follows every image reference regardless of where the file lives or how it was added.
Keep the alt text and the paths
An image is more than a file, and the metadata around it is easy to lose. Its alt text is an accessibility feature and an image-search signal, and its dimensions affect layout stability and Largest Contentful Paint, which is often driven by the main image on a page. Portent’s study of site speed and conversion shows how much that load time is worth in revenue, so the images are not just content to preserve but performance to protect. Capture each image with its alt text and its path so the new site can re-link it and keep the description. Losing alt text in the export quietly weakens accessibility and image search on the rebuilt site, a loss nobody notices until traffic or an audit reveals it. Extracting the file without its alt text is only half the job.
A worked example: the 300 images the library forgot
Picture a site whose media library lists 900 images, which seems like the full set, until a crawl of the rendered pages turns up 1,200. The extra 300 are the theme’s background graphics, a batch of images a page builder referenced from its own store, some product photos pulled from an external CDN, and a few set in custom fields. A library-based export would have migrated 900 images and left 300 to 404 the moment the old site was retired, scattering broken images across the rebuilt site, often on exactly the pages, the homepage, the key landing pages, where they matter most. The crawl-based extraction captured all 1,200 with their alt text and paths, so every image re-hosted cleanly. The 300-image gap was invisible until the crawl exposed it, which is the whole reason to extract from the rendered pages rather than the upload log.
Re-link cleanly on the new site
Extraction is only half the task; the images have to be re-hosted and re-referenced, or they break. After capturing every image, re-host them all on the new site (or its CDN) and update each reference so none point back at the old media URLs, which will eventually 404 when the old site comes down. Keep stable paths where you can, so the references are predictable, and carry the alt text into the new markup. This is the image half of a clean move, covered alongside the rest in migrating images without broken links, and it follows the same complete-crawl logic as mapping a site’s structure and Google’s site move guidance. The recovery version, for a broken or hacked site, is in extracting data from a hacked WordPress site. The point is that hotlinking the old site is a delayed failure: the images work until the old site is gone, then vanish.
Handling responsive variants
Modern sites rarely serve one file per image; they serve several sizes through srcset for responsive layouts, plus formats like WebP. This matters for a complete extraction in two ways. First, you do not need to capture every generated thumbnail size, since the new platform will create its own responsive variants from the original, so the priority is the original, full-size file for each image. Second, you must make sure you capture that original, not just the small thumbnail that happened to render on the page you crawled. A good extraction resolves each image to its source file and grabs that, so the new site can regenerate the responsive set itself. Knowing this keeps you from either hoarding dozens of redundant thumbnail variants or, worse, migrating only a small rendered size and losing the full-resolution original.
Content images versus decorative images
Not every image carries the same weight, and a complete extraction still benefits from this distinction at the re-link stage. Content images, product photos, diagrams, in-article illustrations, carry SEO and accessibility value through their alt text and are often what image search surfaces, so their alt text and quality must be preserved exactly. Decorative images, background textures, dividers, ornamental graphics, carry no informational value and ideally have empty alt text so screen readers skip them. Capturing both is part of completeness, but treating them identically at re-link is a mistake: preserve real alt text on content images, keep decorative images decorative. This is also a chance to fix images that had missing or poor alt text on the old site, since you are touching every reference anyway. The extraction grabs everything; the re-link is where you apply the right treatment to each kind.
Common mistakes extracting images
The recurring errors all stem from trusting the wrong source or dropping metadata. Exporting from the media library alone misses theme, builder, CDN, custom-field, and CSS-background images, which then 404 after the move. Capturing files without their alt text silently weakens accessibility and image search. Grabbing only the rendered thumbnail instead of the full-resolution original leaves the new site unable to generate proper responsive variants. Leaving images referenced on the old domain hotlinks a site you are about to retire, so they break later. And re-hosting everything without distinguishing content from decorative images carries over bad alt text instead of fixing it. Each is avoided by a crawl-based extraction that captures every rendered image at full resolution with its alt text, followed by a re-host that re-references everything on the new site.
Key points to remember
Extract all images from a website by crawling the rendered pages, not the media library, because the library misses images from themes, page builders, CDNs, custom fields, and CSS backgrounds, which is where the gaps that cause broken images come from. Capture each image at its full-resolution original with its alt text and path, so the new platform can regenerate responsive variants and the descriptions survive for accessibility and image search. Re-host every image on the new site and update the references rather than hotlinking the old domain, which 404s once the old site is down, and treat content and decorative images appropriately at re-link. WPBuildAI extracts every image, re-hosts it, and rewrites the references during a migration, so the new site has no broken images or missing alt text; send your site URL for a fixed quote.
Not affiliated with WordPress or Lovable.