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

To bulk screenshot WordPress pages, collect the page URLs from the site’s sitemap, filter them to the pages you actually want, then use browser automation to visit each URL and save a screenshot. A sitemap is a starting list—not a guarantee that every entry is unique, current, or in scope. The workflow below uses Playwright and records failures so you can review the whole run.

Find the WordPress sitemap and collect its URLs

Locate the sitemap

For WordPress.com, try adding /sitemap.xml to the site address, such as https://example.com/sitemap.xml. WordPress.com documents that path for its generated XML sitemap in its sitemap guide. Self-hosted WordPress sites can have different sitemap configuration, so inspect the site rather than assuming the same URL or structure. WordPress core provides sitemap functionality, but the actual site may expose an index with child sitemap files.

Open the sitemap URL in a browser or fetch it with a script. If it is a sitemap index, follow the listed child sitemap URLs and collect their page-location entries. The WordPress developer references describe the core sitemap implementation and index: sitemap source file and WP_Sitemaps class.

Choose and normalize the targets

Before capturing, decide what “all pages” means for this job. A sitemap can include posts, pages, archives, or other content types; those are not automatically all useful screenshot targets. Keep URLs for the intended content, check that each belongs to the expected site, and deduplicate equivalent addresses. Where the same content is reachable through multiple URLs, prefer the canonical URL used for search. Google recommends including preferred canonical URLs in a sitemap: Google’s sitemap guidance.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
#1 Best Overall
Sale
Kodak PIXPRO FZ45 Digital Camera, 16MP Point & Shoot (Black)
  • 16MP Sensor: Captures detailed photos with a CMOS sensor for everyday shooting
  • Optical Zoom: 4x optical zoom with a 27mm wide angle lens for flexible framing indoors or outdoors
  • Full HD Video: Records 1080p video for travel clips, family moments, or simple vlogging
  • Memory Support: Works with Class 10 SD, SDHC, or SDXC cards up to 512GB
  • LCD Screen and Battery: 2.7in LCD screen with 2 AA alkaline batteries for convenient on-the-go use
  • Exclude attachment pages, feeds, or unwanted post types if they are outside the review scope.
  • Decide how to handle query strings, trailing slashes, redirects, and alternate hostnames; do not normalize them blindly if they identify different content.
  • Keep a manifest containing each selected URL and its eventual filename. It makes failures, reruns, and review easier to manage.

Set up a repeatable Playwright screenshot run

Install the browser automation dependency

Use a Node.js project with Playwright installed and its browser available. In an existing project, install the package with npm install playwright, then install Chromium with npx playwright install chromium. The example below assumes you save it as an ES module, for example capture.mjs. It expects a text file named urls.txt, with one selected URL per line, and creates a screenshots directory.

Runnable batch example

This script loads the URL list, creates predictable numbered filenames, captures full pages, and writes a CSV manifest with success or failure for each URL. It is a practical starting point: tune readiness, authentication, and filtering to the site being captured.

import { chromium } from 'playwright';
import { mkdir, readFile, writeFile } from 'node:fs/promises';

const urls = (await readFile('urls.txt', 'utf8'))
  .split(/r?n/)
  .map((line) => line.trim())
  .filter(Boolean);

await mkdir('screenshots', { recursive: true });
const browser = await chromium.launch();
const page = await browser.newPage({ viewport: { width: 1440, height: 900 } });
const results = [['number', 'url', 'file', 'status', 'error']];

for (let i = 0; i < urls.length; i++) {
  const url = urls[i];
  const number = String(i + 1).padStart(4, '0');
  const file = `screenshots/${number}.png`;
  try {
    const response = await page.goto(url, {
      waitUntil: 'domcontentloaded',
      timeout: 30000
    });
    if (!response || !response.ok()) {
      throw new Error(`Navigation returned ${response?.status() ?? 'no response'}`);
    }
    await page.screenshot({ path: file, fullPage: true });
    results.push([number, url, file, 'ok', '']);
  } catch (error) {
    results.push([number, url, file, 'failed', String(error)]);
    console.error(`Screenshot failed for ${url}:`, error);
  }
}

await browser.close();
const csv = results
  .map((row) => row.map((value) => `"${String(value).replaceAll('"', '""')}"`).join(','))
  .join('n');
await writeFile('screenshots/manifest.csv', csv, 'utf8');

Run it with node capture.mjs. Playwright’s screenshot API accepts a file path, and the extension determines the image format; its full-page option captures the full scrollable page rather than only the current viewport. See the Playwright screenshot guide and Page API.

Rank #2
Sale
Kodak PIXPRO FZ55-BK 16MP CMOS Sensor Camera 5X Optical Zoom 28mm Wide
  • 16MP Sensor: Captures detailed photos with a CMOS sensor for everyday shooting
  • Optical Zoom: 5x optical zoom with a 28mm wide angle lens for flexible framing indoors or outdoors
  • Full HD Video: Records 1080p video for travel clips, family moments, or simple vlogging
  • Memory Support: Works with Class 10 SD, SDHC, or SDXC cards up to 512GB
  • LCD Screen and Battery: 2.7in LCD screen and a rechargeable lithium-ion battery for on-the-go use

The CSV records status and errors, but not every site-specific detail. If a site redirects pages or returns an HTTP error page that still renders, decide whether those should count as successful captures and extend the manifest to record the final URL, response status, and title.

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

Choose capture settings for useful comparisons

Viewport or full page

A standard screenshot captures the visible viewport. Use fullPage: true when you need the entire scrollable page in one image. Full-page captures are useful for content review, but long pages can produce very tall images that are harder to inspect and larger to store. Choose viewport shots when comparing above-the-fold layout or when full-page files would be unwieldy.

CSS pixels or device scale

Playwright can capture at CSS-pixel scale or device-pixel scale. CSS scale produces one output pixel per CSS pixel and is generally more compact; device scale preserves the browser’s device-pixel ratio and can create larger, more detailed images. Set the scale deliberately so images from separate runs remain comparable. The screenshot options are documented in the Page API.

Rank #3
Sale
Digital Camera, Latest FHD 1080P Digital Camera for Teens with SD Card Anti Shake Point and Shoot Cameras Portable 16X Zoom Compact Small Cameras for Kids Boys Girls Seniors with Wrist Strap
  • Latest Digital Camera Built-in Fill Light : This compact digital camera is paired with a powerful CMOS processor and image stabilization to help you take & record the most exciting moments in 44 MP quality images & FHD 1080P quality videos anywhere, anytime. Plus, there is also a built-in fill light to help you take high quality pictures even in low light&dark settings, making this the perfect camera for all indoors/outdoors situations.
  • Long-Lasting Battery Life & 16X Digital Zoom :This point and shoot camera will retain its battery charge even after long use. The controls and functions are easy to operate making this the perfect choice for children, teens and younger. This kids camera supports 16x digital zoom, you can zoom in or out the subject by pressing the W/T button for taking still photos to zoom in or out on distant objects and capture all the details you need.
  • Multifunctional & Portable Digital Camera: This cheap digital camera is slim enough to fit in your pocket. You'll easily be able to take it with you on all your indoor/outdoor activities and adventures and ideal for beginners, children and teenagers. This kids digital camera is equipped with 20 filters, anti-shaking, self-timer, continuous shooting, date stamp, time-lapse recording, smile capture, internal MIC and speaker (recording sound videos), great for your daily photography needs.
  • WEBCAM & PAUSE FUNCTION : More than just a FHD 1080p digital camera, it also works as a webcam for video calls and vlogging. Connect the camera to the computer, press shutter and power button at the same time and the camera will automatically turn on webcam mode for all your video calling and live streaming needs. The pause function allows you to pause when seeing playback videos.
  • A Must Have Photography Device : This digital camera with SD card made from high-quality materials, this retro camera is safe and durable. Perfect for all ages to develop & improve their photographic abilities and observation skills. Our dedicated and experienced 24/7 support team is available for all after purchase troubleshooting, questions and technical help.

Other useful screenshot options

  • File path and type: use explicit extensions such as .png, .jpeg, or .webp where supported by the API, and keep the extension consistent across the batch.
  • Element capture: use a locator’s screenshot method when you need one component rather than the whole page.
  • Masking and styling: masks or screenshot-specific styles can obscure volatile elements or make output more consistent where the page supports suitable selectors.
  • Viewport: set a fixed viewport when comparing layouts. Responsive sites may need separate runs at each target viewport.

Handle readiness, login, and changing page content

Wait for the page state that matters

waitUntil: 'domcontentloaded' means the initial document was parsed; it does not guarantee that asynchronous page content, fonts, or lazy-loaded images have finished. Choose a readiness condition that reflects the site: for example, wait for a known content selector, a short bounded delay after navigation, or network idle when the site’s requests eventually settle. Use a timeout and log failures rather than allowing one stalled page to stop the entire run.

Lazy-loaded images may not appear until they approach the viewport. For long pages, test representative pages and inspect the result; if necessary, scroll through the page before capturing and wait for image loads. This behavior is site-specific, so avoid assuming a single wait setting works for every WordPress site.

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

Authentication and consent

Private or member-only pages require an authenticated browser context. Use a saved Playwright storage state or sign in through the site before navigating to the URL list. Keep credentials and session files out of source control. Decide whether screenshots should include or dismiss a consent banner; the banner’s behavior and required interactions vary by site. Likewise, popups, chat widgets, rotating promotions, and timestamps can make otherwise identical captures differ.

Control dynamic content

For visual regression or repeatable review, stabilize the environment where possible: use the same viewport, browser version, locale, timezone, and logged-in state. Consider masking selectors for content that changes on each load, or use screenshot styling to hide nonessential elements. A mask improves comparability but should not conceal defects you intend to inspect.

Rank #4
Kodak PIXPRO FZ55-RD 16MP Camera 5X Optical Zoom 28mm Wide Angle 1080p
  • 16MP Sensor: Captures detailed photos with a CMOS sensor for everyday shooting
  • Optical Zoom: 5x optical zoom with a 28mm wide angle lens for flexible framing indoors or outdoors
  • Full HD Video: Records 1080p video for travel clips, family moments, or simple vlogging
  • Memory Support: Works with Class 10 SD, SDHC, or SDXC cards up to 512GB
  • LCD Screen and Battery: 2.7in LCD screen and a rechargeable lithium-ion battery for on-the-go use
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Scale the batch safely and troubleshoot failures

Start small, then increase the run

  1. Run a handful of URLs, including one long page, one page with images below the fold, and any page requiring a login.
  2. Open the screenshots and manifest. Check filenames, page completeness, redirects, and whether the chosen readiness behavior works.
  3. Run the remaining URLs after correcting issues. For a large list, process a limited number of pages at a time rather than launching an unbounded number of browsers or tabs.
  4. Rerun only failed or intentionally updated URLs using the manifest, preserving stable filenames if downstream review depends on them.

Common problems and fixes

  • The sitemap URL returns a 404: the site may use a different sitemap path, disable sitemaps, or expose an index elsewhere. Inspect the site’s published sitemap links and configuration rather than assuming /sitemap.xml works on every installation.
  • Some URLs are missing from the captured set: the sitemap may be an index rather than the final URL list. Follow child sitemaps and verify that your parser reads every location entry.
  • Duplicate or unexpected screenshots: filter the sitemap entries to the target content type, deduplicate equivalent URLs, and record redirect destinations to identify alternate paths to the same page.
  • Navigation times out: the server may be slow, the page may never reach the selected readiness condition, or a request may be blocked. Increase the timeout only when justified, prefer a more appropriate readiness signal, and keep the failure in the manifest.
  • Screenshot is blank or incomplete: check whether navigation succeeded, whether the page needs authentication, and whether client-side content or lazy images need additional waiting or scrolling.
  • One failure stops later pages: keep navigation and screenshot work inside a per-URL try/catch, as in the example, and close the browser in a finally block in production code so cleanup still happens after an unexpected error.
  • Files are too large or hard to review: choose viewport captures instead of full-page captures where appropriate, use CSS scale for compact output, or select a compressed image format supported by the capture API.

Or skip the browser setup

ScreenshotNeo takes a screenshot or PDF through one API request, so you can send your sitemap URLs to a small script without installing and managing a local browser. Its API supports PNG, JPEG, or WebP screenshots, and the same parameter names used by other screenshot APIs also work, which can ease a switch.

For example, this cURL request captures a target URL as WebP. Replace the URL with one of the filtered sitemap entries and supply your API key. See the ScreenshotNeo documentation for the available options and setup details.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://example.com/page -o shot.webp
  • Cookie and consent banners, newsletter popups, and chat widgets are removed before capture; each cleanup step can be turned off.
  • Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed. The response includes X-Page-Verdict and X-Billed headers to indicate the result and billing status.
  • An 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 per month with no card; paid plans start at $5 for 3,000 shots. Yearly billing gives two months free.

Sign up for ScreenshotNeo’s free plan to try the API with 1,000 screenshots a month and no card.

Frequently Asked Questions

Does a sitemap include every page on a WordPress site?

No. It lists URLs exposed by that sitemap configuration, and may omit pages or include content that is not part of your screenshot scope. Inspect sitemap indexes and filter the entries you need.

Can I save the batch as PDFs instead of images?

Yes. Playwright supports PDF output through its page PDF API in Chromium, but the example here is configured for image screenshots. Set up a separate PDF workflow if you need document output.

Quick Recap

SaleBestseller No. 1
Kodak PIXPRO FZ45 Digital Camera, 16MP Point & Shoot (Black)
Kodak PIXPRO FZ45 Digital Camera, 16MP Point & Shoot (Black)
16MP Sensor: Captures detailed photos with a CMOS sensor for everyday shooting; Full HD Video: Records 1080p video for travel clips, family moments, or simple vlogging
$99.99
SaleBestseller No. 2
Kodak PIXPRO FZ55-BK 16MP CMOS Sensor Camera 5X Optical Zoom 28mm Wide
Kodak PIXPRO FZ55-BK 16MP CMOS Sensor Camera 5X Optical Zoom 28mm Wide
16MP Sensor: Captures detailed photos with a CMOS sensor for everyday shooting; Full HD Video: Records 1080p video for travel clips, family moments, or simple vlogging
$139.99
Bestseller No. 4
Kodak PIXPRO FZ55-RD 16MP Camera 5X Optical Zoom 28mm Wide Angle 1080p
Kodak PIXPRO FZ55-RD 16MP Camera 5X Optical Zoom 28mm Wide Angle 1080p
16MP Sensor: Captures detailed photos with a CMOS sensor for everyday shooting; Full HD Video: Records 1080p video for travel clips, family moments, or simple vlogging
$139.99

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.

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