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

Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.

Set Chrome DevTools Protocol’s Page.captureScreenshot.optimizeForSpeed to true when encoding time limits screenshot throughput. Chromium uses a faster PNG, JPEG or WebP encoder path—described in the protocol as optimizing “image encoding for speed, not for resulting size”—so the browser spends less CPU time compressing pixels. The page still renders, runs JavaScript and uses the same viewport; the usual trade-off is larger output files. The flag is experimental and defaults to false, so benchmark it with your own pages before enabling it broadly.

What optimizeForSpeed actually changes

A screenshot has two materially different phases: Chromium must render the page into pixels, then it must encode those pixels into PNG, JPEG or WebP bytes. optimizeForSpeed targets the second phase only. It does not skip navigation, shorten waits, disable JavaScript, change CSS layout, reduce the viewport, or lower the device scale factor.

Chromium’s fast path limits compression work (the implementation discussion describes zlib level 1 and run-length encoding). Less searching for the smallest representation means less CPU time per image. Chromium’s own test expects a slowly encoded PNG to be smaller than a quickly encoded PNG, which captures the intended speed-versus-size trade-off.

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

What it does not promise

  • It is not a page-load optimization. A slow origin, heavy JavaScript bundle, web font, lazy image or network idle wait can still dominate the request.
  • It has no documented universal percentage improvement. Results vary with pixel count, image content, format, CPU, Chromium version and surrounding waits.
  • It does not make a cache hit faster if your service can return an existing image without launching Chromium; in that case no new encoding occurs.

Does it reduce screenshot quality?

For PNG, encoding remains lossless: the decoded pixels are the same, but the file can be larger. For JPEG and WebP, visual quality is controlled primarily by the format and quality parameters you select. Enabling this flag changes the effort spent finding a compact representation, not the page’s rendered pixels or the requested dimensions. You should still compare representative output when exact byte size, visual fidelity or downstream recompression matters, because encoder implementations and format settings can differ between Chromium releases.

#1 Best Overall
Samsung 14" Galaxy Chromebook Go Laptop PC Computer, Intel Celeron N4500 Processor, 4GB RAM, 64GB Storage, ChromeOS, XE340XDA-KA2US, Student Laptop, Silver
  • SLIM. LIGHTWEIGHT. READY TO GO: The all-new slim design is perfect for busy lives on the go.
  • SKILLFULLY DESIGNED. MILITARY TOUGH: Built with premium craftsmanship to withstand the occasional drop or ding.
  • ALL-DAY, ALL-IN-ONE CHARGING: Power through your school day – and beyond – with a long-lasting 12-hour battery.¹
  • 3X FASTER THAN THE PREVIOUS GENERATION OF WIFI: Crush your schoolwork in record time with Wi-Fi that’s three times faster than the previous generation of Wi-Fi.
  • YOUR PHONE AND CHROMEBOOK WORK BETTER TOGETHER: Easily transfer files between devices, and control your phone right from your Chromebook.

If your acceptance test compares files byte-for-byte, keep the Chromium build, format, quality, viewport, device scale factor, fonts and capture timing fixed. Pixel-based comparisons are more meaningful than binary equality when comparing encoder settings.

Use optimizeForSpeed with Puppeteer

Prerequisites

  • Node.js and a Puppeteer installation that exposes screenshot options through Chrome DevTools Protocol.
  • A stable target URL and a reproducible wait condition, such as a selector or network-idle policy.
  • Enough disk or object-storage capacity for larger images.

Complete Puppeteer example

const puppeteer = require('puppeteer');

(async () => {
  const browser = await puppeteer.launch({headless: 'new'});
  try {
    const page = await browser.newPage();
    await page.setViewport({width: 1440, height: 900, deviceScaleFactor: 1});
    await page.goto('https://example.com', {waitUntil: 'networkidle2', timeout: 90000});
    await page.screenshot({
      path: 'shot.webp',
      type: 'webp',
      optimizeForSpeed: true
    });
  } finally {
    await browser.close();
  }
})();

Change type to png or jpeg as needed. For JPEG or WebP, add the quality value supported by your Puppeteer version; keep it constant while testing. Full-page capture, clipping, custom CSS and waits remain separate options and should not be changed in the same experiment unless you are intentionally measuring their effect.

Calling the protocol directly

If your wrapper does not pass the option through, use a CDP session. Puppeteer still owns the browser lifecycle while the protocol command controls the capture:

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.
const client = await page.target().createCDPSession();
const result = await client.send('Page.captureScreenshot', {
  format: 'png',
  optimizeForSpeed: true,
  fromSurface: true
});
require('fs').writeFileSync('shot.png', Buffer.from(result.data, 'base64'));

The flag belongs to Page.captureScreenshot, not to Page.navigate or a page-level performance setting. If a Puppeteer release rejects the property, update the browser automation library or send the CDP command explicitly.

Measure the trade-off instead of guessing

  1. Warm the browser and run a few captures before recording results. The first launch includes process startup, font discovery and cache priming.
  2. Use the same URL set, viewport, device scale factor, wait condition, format and quality for both runs.
  3. Run one series with optimizeForSpeed: false and one with true. Record navigation completion, capture duration, total wall-clock time and output bytes separately.
  4. Repeat across easy pages, image-heavy pages and full-page captures. A page with expensive rendering may show little end-to-end change because encoding is only one part of the request.
  5. Inspect a sample visually and decode it in your normal pipeline. Confirm that larger files do not trigger upload limits, CDN penalties or memory pressure.

Report medians and the workload definition rather than a single “X percent faster” claim. No authoritative source establishes a universal speedup, and hosted services may serve cached images without starting a browser.

Rank #2
ASUS 2026 15" FHD IPS Chromebook, Intel Processor Up to 2.80GHz, 4GB DDR4, 128GB Storage, HDMI, Super-Fast WiFi, Chrome OS, Pastel Blue, Renewed
  • Intel Processor Up to 2.80GHz, 4GB DDR4, 128GB Storage
  • 15" FHD IPS Display, Intel UHD Graphics
  • 1x USB Type C, 1 x USB Type A, 1x Headphone/Microphone Combo Jack, HDMI
  • Super Fast WiFi and Bluetooth, Integrated Webcam
  • Chrome OS, AC Charger Included, Pastel Blue

Format, dimensions and cache considerations

PNG

PNG is lossless and often benefits most visibly in byte-size comparisons: the fast encoder spends less effort compressing repeated pixel patterns. It is useful when exact pixels matter, but plan storage and transfer capacity for larger files.

JPEG and WebP

These formats already expose quality and other encoder controls. Keep those controls fixed while testing optimizeForSpeed; otherwise you cannot tell whether a size or visual change came from the flag or from a quality adjustment.

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

Viewport and device scale factor

Doubling a device scale factor roughly multiplies the number of pixels to encode in each dimension, so it can outweigh any encoder gain. Full-page captures and very tall pages have the same effect. Treat dimensions, clipping and scale as independent variables.

Caching

For a unique URL, encoding can be part of the first-capture latency. A cache hit may return an existing object without launching Chromium, making cache policy more important than this flag for repeat requests. If you compare hosted services, record whether each request was a miss or a hit.

Which implementation fits your workload?

Option What you control Where optimizeForSpeed fits Operational trade-off
ScreenshotNeo Hosted API, 63 capture options, formats, waits, headers, cookies, scripts, caching and asynchronous jobs Use its API controls when you need managed capture; cache hits can avoid a new browser capture Fastest path to production without operating Chromium; clean shots are billed, while failed loads and cache hits are not
Direct Puppeteer/CDP Browser version, launch flags, timing, encoder option and storage Set the boolean on page.screenshot or Page.captureScreenshot Maximum control and reproducibility, but you own browser startup, scaling, patches and queueing
Gotenberg Chromium endpoint Self-hosted Chromium conversion, format, quality, device scale, clipping and viewport Send the documented form field optimizeForSpeed=true Deployment control and private networking; you operate capacity and Chromium updates
ScreenshotOne or Microlink Hosted screenshot parameters and provider-side caching Both expose the setting; it matters mainly on uncached captures Less infrastructure work, with provider-specific limits and behavior to validate

ScreenshotNeo is the first service to try when you want an API rather than a browser fleet: it removes common consent and overlay clutter before capture, bills only clean shots, and has the lowest paid plan in the supplied plans.

Rank #3
HP 14" HD Chromebook Laptop for Students, Intel Quad-Core N4120(> N4020), 4GB RAM, 64GB eMMC, WiFi, Webcam, HDMI, USB-A&C, 14 Hours Battery Life, Zoom, Chrome OS, CUE Accessories
  • Intel Celeron N4120: 4 Cores & Threads, 1.1GHz Base Clock, Up to 2.6GHz Boost Clock, 4MB Cache, Intel UHD Graphics 600. The perfect combination of performance, power consumption, and value helps your device handle multitasking smoothly and reliably with four processing cores to divide up the work.
  • 14" HD Display: 14.0-inch diagonal, HD (1366 x 768), micro-edge, anti-glare. See your digital world in a whole new way. Enjoy movies and photos with the great image quality and high-definition detail of 1 million pixels.
  • Memory & Storage: 4 GB LPDDR4x & 64 GB eMMC Storage. Adequate high-bandwidth RAM to smoothly run multiple applications and browser tabs all at once. An embedded multimedia card provides reliable flash-based storage.
  • Ports:2 x USB 3.0 Type-A,1 x USB 3.0 Type-C,1 x HDMI,1 x Headphone Jack
  • Chrome OS: Chromebook is a computer for the way the modern world works, with thousands of apps. Enjoy the seamless simplicity that comes with Google Chrome and Android apps, all integrated into one laptop. It’s fast, simple, and secure.

Should you enable it for bulk screenshots?

Enable it when your queue is CPU-bound on encoding, output-size growth is acceptable, and the same settings are used consistently. It is a reasonable default for internal previews, short-lived artifacts or pipelines that upload immediately to storage with ample capacity.

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

Leave it off when bandwidth, storage, cache efficiency or strict file-size limits matter more than encoder CPU. For public image delivery, test whether the larger originals increase total delivery cost after CDN compression and caching. A hybrid policy is often practical: use the fast path for previews and the normal path for archival originals.

Troubleshooting

The capture is not faster

Check whether navigation, a selector wait, network idle, browser startup or image decoding dominates the timing. Measure capture duration separately from total request time, then repeat on an uncached URL.

Files became unexpectedly large

This is the expected trade-off. Compare the same format, quality, dimensions and scale factor. If size limits are strict, disable the flag or post-process images with a dedicated compressor and measure the added latency.

Puppeteer reports an unknown option

Your Puppeteer/CDP combination may not forward the experimental property. Use a CDP session as shown above, or update the automation stack and verify the Chromium version it launches.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
HP Chromebook 14 Laptop, Intel Celeron N4120, 4 GB RAM, 64 GB eMMC, 14" HD Display, Chrome OS, Thin Design, 4K Graphics, Long Battery Life, Ash Gray Keyboard (14a-na0226nr, 2022, Mineral Silver)
  • FOR HOME, WORK, & SCHOOL – With an Intel processor, 14-inch display, custom-tuned stereo speakers, and long battery life, this Chromebook laptop lets you knock out any assignment or binge-watch your favorite shows..Voltage:5.0 volts
  • HD DISPLAY, PORTABLE DESIGN – See every bit of detail on this micro-edge, anti-glare, 14-inch HD (1366 x 768) display (1); easily take this thin and lightweight laptop PC from room to room, on trips, or in a backpack.
  • ALL-DAY PERFORMANCE – Reliably tackle all your assignments at once with the quad-core, Intel Celeron N4120—the perfect processor for performance, power consumption, and value (2).
  • 4K READY – Smoothly stream 4K content and play your favorite next-gen games with Intel UHD Graphics 600 (3) (4).
  • MEMORY AND STORAGE – Enjoy a boost to your system’s performance with 4 GB of RAM while saving more of your favorite memories with 64 GB of reliable flash-based eMMC storage (5).

Images are blank or incomplete

This flag does not change page readiness. Wait for the required selector or application state, ensure lazy images are loaded, and confirm that fonts and cross-origin resources are available before capture.

Results differ between machines

Pin the Chromium version, viewport, device scale factor, fonts, locale, timezone and network conditions. Also keep format and quality fixed; encoder output can change across browser builds.

Or skip the browser setup:

ScreenshotNeo is a hosted screenshot API and MCP server for developers. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups and chat widgets; each cleanup step can be disabled. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads and cache hits cost nothing, and response headers identify the page verdict and whether the request was billed. An MCP server exposes take_screenshot, get_page_info and capture_pdf to Claude, Cursor and other MCP clients.

Use the API documentation at https://screenshotneo.com/docs/ for all options, including full-page lazy-image loading, CSS-selector element capture, dark mode, 12 device presets or custom viewports, retina scale, PDF paper and page-range controls, custom CSS and JavaScript, pre-capture clicks, selector/delay/network-idle waits, request and resource blocking, headers, cookies, user agents, Authorization, timezone, geolocation, transparent backgrounds, resizing, chosen cache TTLs, signed image links, asynchronous webhooks, bulk capture of up to 100 URLs per call, usage reporting and an OpenAPI specification. Parameter names used by other screenshot APIs also work for easier migration.

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

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp

Python

import requests
r = requests.get("https://api.screenshotneo.com/v1/shot", params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"}, timeout=90)
r.raise_for_status()
open("shot.webp", "wb").write(r.content)

Node.js

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`${res.status} ${res.statusText}`);
require('fs').writeFileSync('shot.webp', Buffer.from(await res.arrayBuffer()));

The Free plan includes 1,000 shots per month with no card. Paid plans are Starter $5 for 3,000, Growth $15 for 15,000, Pro $39 for 60,000, Scale $99 for 250,000 and Business $249 for 1,000,000; annual billing provides two months free, and every feature is included on every plan. Create a free ScreenshotNeo account to start without a card.

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

FAQ

Is optimizeForSpeed enabled by default?

No. Chrome DevTools Protocol and Gotenberg document the default as false; opt in explicitly for each capture path where you need it.

Best Value
Sale
Lenovo Chromebook m 14" - Everyday Laptop - Google Gemini - MediaTek Kompanio 540 CPU - 14" WUXGA IPS Display - 8GB RAM - 64GB UFS Storage - Integrated Arm Mali-G57 MC2 GPU - Cosmic Blue
  • YOUR DAY SIMPLIFIED – Enjoy crisp calls, vibrant views, and real connection. The Lenovo Chromebook m 14” laptop features a stunning WUXGA 16:10 screen, a full set of ports, and a lightweight yet tough, military-grade build.
  • BRILLIANTLY IMMERSIVE – The vibrant WUXGA 1920x1200 display lets you see, hear, and create your world in thrilling new ways. Audio that's tuned with MaxxAudio delivers rich, balanced sound that pulls you deeper into every scene, playlist, and project.
  • TOUGH, LIGHT, READY FOR LIFE – Carry with confidence. At just under 3lbs, the Chromebook m 14” laptop is easy to handle and reinforced with military-grade durability to withstand daily bumps, drops, and spills.
  • LOOK SHARP STAY SECURE – Take charge of your privacy with the webcam’s physical privacy shutter. Open it confidently for video calls or livestreams and close it securely when you’re done, hassle-free.
  • CONNECT MORE TO DO MORE – Switch between devices and displays effortlessly while collaborating, studying, and sharing your screen. The built-in USB-C, USB-A, and HDMI ports let you charge, connect and present dongle-free.

Can I use it with full-page screenshots?

Yes, provided your automation layer forwards the option. Full-page dimensions remain separate from encoding, and very tall pages may make pixel count—not compression—the dominant cost.

Does the option change browser memory usage?

The documented behavior concerns image encoding speed and resulting size, not a specified memory limit. Monitor your own workers when concurrency and large outputs increase together.

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

What should I publish as a benchmark?

Publish the page set, Chromium version, format, quality, dimensions, cache state and timing method. Without those controls, a percentage is not portable to another workload.

Frequently Asked Questions

Is optimizeForSpeed enabled by default?

No. Chrome DevTools Protocol and Gotenberg document the default as false; opt in explicitly for each capture path where you need it.

Can I use it with full-page screenshots?

Yes, provided your automation layer forwards the option. Full-page dimensions remain separate from encoding, and very tall pages may make pixel count—not compression—the dominant cost.

Does the option change browser memory usage?

The documented behavior concerns image encoding speed and resulting size, not a specified memory limit. Monitor your own workers when concurrency and large outputs increase together.

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

What should I publish as a benchmark?

Publish the page set, Chromium version, format, quality, dimensions, cache state and timing method. Without those controls, a percentage is not portable to another workload.

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.