How to Download Images from Websites with a Chrome Extension
Learn how to install, use, troubleshoot, and safely choose a Chrome extension for downloading website images in batches.
To download images from a website in Chrome, install a trusted image-downloader extension from the Chrome Web Store, open the page, launch the extension from Chrome’s toolbar, filter the discovered images, and start the download. Review the extension’s permissions before installing, and download only images you are authorized to access and reuse.
What a Chrome image-downloader extension does
An image-downloader extension scans the active webpage for images exposed to the browser. Depending on the extension, you can filter by dimensions, file size, or URL; remove duplicates; preview results; select individual files; and download many files together. Some extensions also support subfolders, renaming, and background downloads.
Coverage depends on what the page has loaded. A result may be a thumbnail rather than the original file, and a carousel may expose only the currently loaded slides. Treat the extension as a way to collect images visible to the page, not as a guarantee that it can retrieve every asset stored by a site.
1. Install a trusted extension
- On desktop Chrome, open the Chrome Web Store.
- Search for an image-downloader extension from a publisher you trust. Compare its page coverage, filtering and deduplication controls, filename and folder handling, permission scope, privacy disclosure, and update history.
- Select Add to Chrome.
- Read the permission warning. Choose Add extension only when the requested access is appropriate for the job.
- After installation, open Chrome’s Extensions menu (the icon to the right of the address bar) and pin the extension if you use it often.
Chrome explains that extensions can request access to data on websites you visit. Broad access can allow an extension to read or modify information across pages, so install only a publisher you trust and remove the extension when you are finished.
2. Open the page and scan its images
- Navigate to the webpage containing the images.
- Wait for the page’s main content to load.
- Scroll through the page so lazy-loaded images have a chance to appear.
- For a gallery or carousel, advance through the slides you are allowed to download.
- Click Chrome’s Extensions icon and select the image-downloader extension.
The extension normally scans the active tab and lists the pictures currently exposed by that page. If the page changes after the scan, run the extension again.
3. Filter, preview, and select the right files
Large pages can expose icons, tracking pixels, avatars, thumbnails, and duplicate URLs along with the images you want. Narrow the result before downloading:
- Dimensions: set a minimum width or height to exclude tiny icons and placeholders.
- File size: use a minimum size when you need photographs rather than small UI assets.
- URL: filter by a path, filename pattern, or image host when the page uses several asset domains.
- Duplicate removal: deduplicate identical URLs or visually repeated entries where the extension provides that control.
- Preview: inspect candidates before saving so you do not download a low-resolution thumbnail by mistake.
- Individual selection: uncheck logos, decorative backgrounds, and images you do not need.
When both a thumbnail and a larger source appear, compare their dimensions and URL paths. A filename containing a size suffix such as a small width value often indicates a thumbnail, but confirm by previewing the file and checking that you have permission to use the larger source.
4. Download and organize the files
- Choose the selected images or use the extension’s select-all control after filtering.
- Choose the download action.
- If offered, set a subfolder and a filename pattern before confirming.
- For repeated jobs, configure Chrome’s default download directory or enable the option to ask where each file should be saved.
- Open Chrome’s Downloads page to monitor progress and locate the files.
Chrome’s download system supports relative paths under the Downloads directory and conflict actions such as generating a unique filename, overwriting an existing file, or prompting you. Use a predictable folder structure such as site-name/page-date/ when collecting assets from several pages.
5. Handle lazy loading, galleries, and thumbnails
Lazy-loaded images
Many pages request an image only after it approaches the viewport. Scroll from top to bottom, wait for images to render, then scan again. If the extension has a refresh or rescan button, use it after scrolling.
Carousels and galleries
A carousel may load only a few slides at once. Advance through the gallery, allow each slide to load, and rerun the extension. If the page has a separate gallery or “view original” link, use that link when you are authorized to access the full-size image.
Responsive sources
A page can select different files for different viewport widths with srcset or CSS. The extension may show one selected candidate rather than every source. Preview the result and inspect the available links if you need a specific resolution.
Images hidden behind interaction
Tabs, accordions, login screens, and consent dialogs can prevent an image from being exposed. Complete the permitted interaction first, then rescan. Do not use an extension to bypass a login, paywall, anti-bot check, or other access restriction.
Permissions, privacy, and safe use
Before installing, read the permission warning and the publisher’s privacy disclosure. Host permissions control which URL patterns an extension can access and may be needed for tab properties, content scripts, network requests, or cookies. File URLs and incognito pages require separate enablement in the extension’s details page.
- Prefer the narrowest site access that meets your task.
- Do not install an extension that requests unrelated access without a clear explanation.
- Disable or remove the extension when the collection task is complete.
- Do not enter credentials into an extension unless you independently trust its publisher and need that function.
- Remember that downloading a file does not grant permission to republish it.
Chrome Web Store policy prohibits products that facilitate unauthorized access to copyrighted content or media. Follow the site’s terms, copyright law, and any license attached to the image.
Or skip the browser setup
If you need a repeatable capture of a page rather than a manual extension workflow, ScreenshotNeo returns a PNG, JPEG, WebP, or PDF from one GET request. See the ScreenshotNeo API documentation for all parameters.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests; r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90); open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' }); const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo accepts cookie and consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each step can be turned off. Bot checks, 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. Its MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients. The Free plan includes 1,000 shots each month without a card; paid plans start at $5 for 3,000 shots.
Create a free ScreenshotNeo account and start with 1,000 screenshots a month at no charge.
Troubleshooting
| Problem | Likely cause | Fix |
|---|---|---|
| The extension icon is missing | It is installed but not pinned, or Chrome’s Extensions menu is collapsed. | Open the Extensions icon beside the address bar and pin the extension. |
| No images are listed | The page has not loaded images, the extension lacks host permission, or the content is inside a restricted frame. | Reload the page, scroll, check the extension’s site access, and run the scan again. |
| Only tiny images appear | The page exposed thumbnails or responsive low-resolution candidates. | Increase the dimension filter, preview candidates, and use an authorized original-image link when available. |
| Gallery images are missing | The carousel loads only a few slides at a time. | Advance through the gallery, wait for each slide, and rescan. |
| Downloads stop or fail | Chrome blocked repeated downloads, the destination has a conflict, or the site stopped serving the asset. | Check Chrome’s download permissions, choose a conflict action, verify available disk space, and retry a smaller batch. |
| The extension cannot access a file URL | File URL access is disabled. | Open the extension details page and enable file URL access only if you trust the extension and need it. |
| The extension does not run in Incognito | Incognito access is disabled by default. | Enable “Allow in Incognito” in the extension details page, then reopen the tab. |
| A login or paywall blocks the image | The asset requires authorization or the site intentionally restricts access. | Use the site’s normal access process. Do not attempt to bypass the restriction. |
| Duplicate files have different names | The page exposes the same image through different URLs or Chrome is using unique conflict names. | Use URL or duplicate filters before downloading and choose a consistent filename policy. |
Performance, reliability, and cost considerations
- Batch size: Large selections are more reliable when split into smaller batches, especially on pages with many high-resolution files.
- Network use: Full-size images consume considerably more bandwidth and disk space than thumbnails. Confirm dimensions before selecting all.
- Repeatability: Record the source URL, date, filter settings, and destination folder so another run produces an understandable collection.
- Browser limits: Chrome may throttle or prompt for multiple downloads. Keep the tab open until the download queue finishes.
- Extension trust: A free extension can still have broad access to pages you visit. Permission scope and publisher history are part of the operating cost.
- API alternative: ScreenshotNeo supports caching with a chosen TTL, async jobs with signed webhooks, bulk capture of up to 100 URLs per call, custom headers and cookies, and a usage API. Only clean shots are billed, while failed loads and cache hits cost nothing.
Checklist for a clean download
- Confirm you are authorized to download and reuse the images.
- Install a publisher you trust and review requested permissions.
- Load the page fully, scroll for lazy images, and advance relevant galleries.
- Filter by dimensions, size, and URL; remove duplicates; preview selections.
- Choose a destination folder and filename/conflict behavior.
- Check Chrome Downloads for failures and retry only the missing files.
- Remove or disable the extension when the task is complete.
FAQ
Can an extension download every image on a website?
No. It generally finds images exposed by the active page. Lazy content, carousel slides, thumbnails, restricted assets, and images behind interactions may require additional page actions or may not be available.
Why does the downloaded file look smaller than the image on the page?
The extension may have selected a thumbnail or a responsive candidate. Filter by dimensions and inspect the source URL before downloading.
Can I use an image downloader on a private account?
Only when you have permission to access and download the content, and only while following the account owner’s terms and the site’s rules.
Does Chrome ask before every download?
That depends on Chrome’s download settings and the extension. You can configure a default directory or choose a location for each download.
What should I use for scheduled page captures?
A repeatable API workflow is usually easier to automate than a browser extension. ScreenshotNeo provides a GET endpoint, async jobs, signed webhooks, bulk capture, and an MCP server for AI-agent workflows.


