October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsWindows FixRecommendedWindows errors stealing your time? Find the fix fastScan stability, cleanup and performance issues.Fix NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk9 min

How to Take Weekly Screenshots of a WordPress Website Automatically

A weekly WordPress screenshot needs both a browser capture and a scheduler. Here’s how to choose between WP-Cron, server cron, GitHub Actions, Playwright, and ScreenshotNeo.

Free tools Windows power users keep installed

One-click scans. No signup required.

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

To save a WordPress screenshot every week, combine a browser capture with a weekly scheduler. Use Playwright when you want control over the browser and screenshot file; use WP-Cron for a simple site-integrated schedule, a real server cron or GitHub Actions when timing must not depend on site visits, or a screenshot API if you would rather not maintain a browser runtime. The right choice depends on your hosting access and how reliably the job needs to run.

How the weekly screenshot workflow works

There are two separate jobs: render and capture the page, then launch that capture on a weekly schedule. A scheduler does not take the screenshot by itself; it starts a script or calls a service that does.

As an Amazon Associate I earn from qualifying purchases.

  1. Choose what to capture: a page URL and whether you need the visible viewport, the full page, or one element.
  2. Choose a capture method: a browser automation script such as Playwright, or a managed screenshot service.
  3. Choose where and when to run it: WP-Cron, hosting-provider server cron, or an external workflow such as GitHub Actions.
  4. Save and verify: use a date or run timestamp in the filename, then confirm a scheduled run created the expected file.

For meaningful week-to-week comparisons, keep the URL, viewport, browser, and page state consistent. Responsive breakpoints, rotating content, login state, cookie banners, and delayed or lazy-loaded elements can all change what appears in a capture. Playwright’s screenshot documentation describes its capture options at playwright.dev/docs/screenshots.

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

Choose a scheduler that fits your hosting

Scheduler Reliability and timing Hosting access and upkeep Where the screenshot goes
WP-Cron Runs due events when WordPress receives requests, so low traffic can delay execution. Integrated with WordPress; requires a small plugin or theme-level code and a working site request. Where the capture code writes it, such as the server filesystem or remote storage.
Host server cron Can run on its configured schedule without waiting for a visitor request; exact behavior depends on the host. Requires hosting control-panel or shell access and a command that the host can run. Usually the host filesystem unless the script uploads it elsewhere.
GitHub Actions or another external scheduled workflow Runs from an external workflow scheduler; execution and timing depend on that platform and configuration. Requires a repository workflow and secure handling of secrets; browser dependencies must be installed by the workflow. The workflow environment by default; upload or publish artifacts if they need to persist or be accessed elsewhere.
Managed screenshot service The provider performs the capture when called; schedule it using an available scheduler or integration. Avoids maintaining a local browser runtime, but depends on the provider’s capabilities and terms. Often an API response or provider-defined storage and delivery path; check the chosen service’s current options.

WP-Cron: easiest when some timing drift is acceptable

WordPress’s wp_schedule_event() can register a recurring event with a timestamp, recurrence, hook, and optional arguments. The weekly recurrence is named weekly. The event’s callback can launch or request the capture process, but the screenshot logic still has to be implemented.

WP-Cron is request-triggered, not a continuously running system daemon. WordPress Developer Resources puts it plainly: “WP-Cron does not run constantly as the system cron does; it is only triggered on page load.” See WordPress: Introduction to WordPress Cron. On a quiet site, a due task may not run until a later request arrives. Do not treat its scheduled timestamp as a guaranteed execution time.

#1 Best Overall
Sale
Western Digital 8TB My Book Desktop External Hard Drive, USB 3.0, External HDD with Password Protection and Backup Software - WDBBGB0080HBK-NESN
  • Massive capacity, up to 22TB capacity. (1TB = one trillion bytes. Actual user capacity may be less depending on operating environment.).Specific uses: Personal
  • Includes software for device management and backup with password protection (Download and installation required. Terms and conditions apply. User account registration may be required.)
  • 256-bit AES hardware encryption
  • SuperSpeed USB (5 Gbps); USB 2.0 compatible
  • Trusted storage built with WD reliability

Server cron: better when the host gives you access

A real server cron job can start a script on its own schedule rather than waiting for a visitor to trigger WP-Cron. This is generally the better fit when the website has little traffic or the run should happen near a particular time. The exact UI, command environment, and minimum scheduling interval vary by hosting provider; use the host’s current documentation and test the command under the same account and environment as the scheduled job.

External workflow: useful when you do not control the web server

GitHub Actions can run browser workflows on a schedule, and the WordPress Playground guide documents this kind of workflow. It is a developer-friendly option if your capture script and dependencies live in a repository. You will need to decide how to install Playwright’s browser, provide any credentials securely, and retain or upload the output; repository setup and artifact storage depend on your environment. See WordPress Playground: Running in the browser and beyond.

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

WordPress.com server cron is plan-specific

WordPress.com documents separate server cron jobs with weekly scheduling for sites on the Business plan or higher. That availability statement applies to WordPress.com, not to self-hosted WordPress or other hosts. Check the current plan and account documentation before building around it: WordPress.com support: Cron jobs.

Capture with Playwright and schedule the script

The following Node.js example captures the full page to a PNG. It assumes Node.js and Playwright are installed in the environment that runs it, and that the target page is publicly accessible. It is an implementation pattern, not a turnkey WordPress plugin or a workflow validated for every host.

Install Playwright

npm init -y
npm install playwright
npx playwright install chromium

Create a capture script

Save as capture.mjs. The script uses a timestamped filename, waits for the page to load, and gives the page time to settle before capturing. Change the URL, viewport, wait condition, and screenshot type to suit the page. If a site needs authentication, do not put credentials directly in source code.

Rank #2
Transcend 2TB StoreJet 25M3 Rugged Portable HDD, One Touch Backup
  • USB 3.1 Gen 1 interface
  • Up to 2TB storage capacity
  • Three-stage shock protection system
  • One-touch auto backup button
  • Offers Transcend Elite data management software and RecoveRx data recovery software
import { chromium } from 'playwright';
import { mkdir } from 'node:fs/promises';

const targetUrl = process.env.TARGET_URL ?? 'https://example.com/';
const outputDir = process.env.OUTPUT_DIR ?? './screenshots';
const stamp = new Date().toISOString().replaceAll(':', '-');
const outputPath = `${outputDir}/wordpress-${stamp}.png`;

await mkdir(outputDir, { recursive: true });
const browser = await chromium.launch({ headless: true });
try {
  const page = await browser.newPage({
    viewport: { width: 1440, height: 1000 },
    deviceScaleFactor: 1,
  });
  await page.goto(targetUrl, { waitUntil: 'networkidle', timeout: 60000 });
  await page.screenshot({ path: outputPath, fullPage: true });
  console.log(`Saved ${outputPath}`);
} finally {
  await browser.close();
}

networkidle may not be suitable for pages with persistent network activity; if the navigation times out, use a more appropriate readiness signal, such as waiting for a known selector or using domcontentloaded followed by a targeted wait. To capture only the current viewport, omit fullPage: true. To capture one element, locate it and call its screenshot() method instead. Playwright’s official guide covers page and element screenshots at playwright.dev/docs/screenshots.

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

Schedule it weekly

Pick one scheduler, rather than stacking several schedules that might create duplicate files.

  • Server cron: configure the host’s cron UI or crontab to run the script’s Node.js command once per week. Use absolute paths for Node.js, the script, and the output directory; scheduled jobs often have a different working directory and environment from an interactive shell. Check your host’s instructions for the exact syntax and supported schedule.
  • GitHub Actions: add a workflow that checks out the repository, installs Node.js and Playwright with Chromium, runs capture.mjs, then uploads the screenshot as an artifact or sends it to storage you control. Configure a weekly schedule in the workflow. GitHub’s scheduler runs in UTC, and workflow execution may be delayed; choose the schedule with that in mind and check the current GitHub Actions documentation for syntax and artifact retention behavior.
  • WP-Cron: register a weekly event using wp_schedule_event() and attach a callback that starts the capture process or calls a capture endpoint. This requires an environment where launching that process is permitted. Avoid long-running browser work inside a normal page request; it can exceed request limits or interfere with site performance. For more dependable triggering, configure a host cron to invoke WordPress’s cron runner according to your host’s guidance.

WordPress’s API requires the first run timestamp, recurrence name, hook, and optional arguments. Register the event once, avoid scheduling duplicates, and clear it when the code or plugin is removed. The official function reference is wp_schedule_event().

Store and check the result

A scheduled job’s local disk may be temporary, especially in an external workflow. Decide whether files should remain on the web host, be uploaded to object storage, or be retained as workflow artifacts. Use a predictable directory and a timestamped name so a later run does not silently overwrite the previous week’s image. After the first scheduled execution, check the scheduler’s run log, the process exit status, and the destination file; also open the image to verify it is not a blank or partially loaded page.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request can return a PNG, JPEG, WebP, or PDF; pair the request with the weekly scheduler you choose. This Node.js example writes a screenshot response to a timestamped file. Create an API key and see the available parameters in the ScreenshotNeo documentation.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Caraele 750GB Ultra Slim Portable External Hard Drive USB3.0 HDD Storage Compatible for PC, Desktop, Laptop, MacBook, Chromebook, Xbox One, Xbox 360, PS4 (Black)
  • Ultra Slim and Sturdy Metal Design: Merely 0.47 inch thick. ABS Plastic+Aluminum external hard drive,with aluminum finish-style.shockproof, anti-pressure, ultra slim and portable
  • Ultra-fast Data Transfers: USB 3.0 Super speed 10Gbps transfer rate ultra slim and light weight Portable external hard drive.Runs straight from a usb 3.0 or usb 2.0 port no external power source needed
  • System Compatible: Compatible with Windows, Vista, Mac, Linux, Android, Chromebook, and TV, PC, Laptop, PS4, Xbox series consoles and so on
  • Plug and Play: With no software to install, just plug it in and the drive is ready to use.Ideal extra storage for your computer and game console
  • Package Contents: 1 x portable hard drive, 1 x USB 3.0 cable, 1 x USB to type C adapter, Gift-type shell packaging, shell packaging, three-year manufacturer's warranty and free technical support services
const targetUrl = 'https://example.com/';
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: targetUrl });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const bytes = Buffer.from(await res.arrayBuffer());
const stamp = new Date().toISOString().replaceAll(':', '-');
await import('node:fs/promises').then(({ writeFile }) =>
  writeFile(`wordpress-${stamp}.webp`, bytes)
);

ScreenshotNeo accepts cookie or consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Only clean shots are billed: bot checks or CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and response headers identify the page verdict and billing status. Its MCP server includes take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 shots. Sign up for ScreenshotNeo’s free plan.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot missed runs and bad captures

  • The WP-Cron event is late: WordPress checks due events on page loads, so low traffic can leave one waiting. Use a host cron or external scheduled workflow if that delay is unacceptable.
  • The script works manually but not on schedule: cron may use a different working directory, PATH, Node.js version, permissions, or environment variables. Use absolute paths, log standard output and errors, and confirm the scheduled account can access the script and output location.
  • The browser cannot launch: install the browser binaries required by Playwright in the execution environment and check that the host permits them. A serverless or restricted host may not support a local browser runtime; move capture to an external workflow or use an API.
  • The navigation times out: the site may never reach the chosen wait condition, or network activity may stay open. Increase the timeout only if appropriate; otherwise wait for a meaningful selector or a shorter lifecycle event and confirm the screenshot still captures the finished content.
  • The image is blank or incomplete: check whether the URL redirects, requires login, blocks automated browsers, or loads content after the capture. Wait for a visible page element or a suitable delay, and verify credentials and page state without exposing secrets in logs.
  • The output disappears or overwrites last week’s image: confirm the destination persists between runs and that each filename includes a timestamp. Upload the image to durable storage or configure artifact retention where the workflow runs.
  • The captures differ even though the page did not change: standardize viewport, browser, device scale, URL, authentication, consent state, and waits. Dynamic advertisements, timestamps, personalized content, and rotating modules can still vary.

Cost, performance, and access considerations

A local Playwright run has no per-capture service charge described here, but it uses compute, browser storage, and maintenance time; some hosting plans prohibit or constrain browser processes. Keep browser work out of a user-facing request where possible, use timeouts and logs, and remove old screenshots or send them to storage with an explicit retention policy. A hosted service reduces browser-runtime upkeep, but check the current response formats, limits, storage behavior, and terms before choosing one.

For private or authenticated pages, treat cookies, authorization headers, and API keys as secrets. Store them in the scheduler’s secret facility or protected environment variables, restrict access, and do not include them in source control, filenames, or routine logs. A screenshot can contain personal or confidential information, so protect the output destination as carefully as the credentials used to reach it.

Frequently Asked Questions

Can WP-Cron guarantee that a screenshot runs at the exact same time every week?

No. It checks scheduled events when WordPress gets a request, so a low-traffic site may run the event late.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

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

Can I use the same approach for a private WordPress page?

Yes, if the capture process can authenticate, but credentials and resulting screenshots need secure handling.

Quick Recap

SaleBestseller No. 1
Western Digital 8TB My Book Desktop External Hard Drive, USB 3.0, External HDD with Password Protection and Backup Software - WDBBGB0080HBK-NESN
Western Digital 8TB My Book Desktop External Hard Drive, USB 3.0, External HDD with Password Protection and Backup Software - WDBBGB0080HBK-NESN
256-bit AES hardware encryption; SuperSpeed USB (5 Gbps); USB 2.0 compatible; Trusted storage built with WD reliability
$329.99
Bestseller No. 2
Transcend 2TB StoreJet 25M3 Rugged Portable HDD, One Touch Backup
Transcend 2TB StoreJet 25M3 Rugged Portable HDD, One Touch Backup
USB 3.1 Gen 1 interface; Up to 2TB storage capacity; Three-stage shock protection system; One-touch auto backup button
$140.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.

Leave a Reply

Your email address will not be published. Required fields are marked *

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

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.