BlogScreenshots on your device
How to Take a Screenshot of a Page on Mac
Use Mac shortcuts for visible content, then choose Safari archives, Chrome capture, or ScreenshotNeo for complete webpage images.
For what is visible on your Mac, press Shift-Command-3. To select an area, press Shift-Command-4 and drag. To capture a window or menu, press Shift-Command-4, press Space, then click it. Press Shift-Command-5 when you need a timer, a different save location, or additional screenshot controls.
Those shortcuts capture the Mac screen. They do not automatically scroll through an entire webpage. If “a screenshot of a page” means everything below the fold, choose an archive, PDF, command-line browser capture, or an API designed for full-page images.
1. Capture the visible page with Mac shortcuts
Capture the entire screen
- Open the webpage and arrange it exactly as you want it captured.
- Press Shift-Command-3.
- Find the image on the desktop unless you changed the destination in Screenshot options.
Apple documents this shortcut as an entire-screen capture. It includes everything visible on the display, not only the browser window. See Apple’s Mac screenshot instructions.
Capture part of the screen
- Press Shift-Command-4.
- Drag over the browser content or page section you need.
- Release the pointer to capture. Press Esc before releasing if you want to cancel.
This is useful for a hero section, an error message, or a cropped example. The selection is limited to the pixels currently visible on the display.
Capture a browser window or menu
- Press Shift-Command-4.
- Press Space. The pointer changes to a camera.
- Click the browser window or menu.
Hold Option while clicking to omit the window shadow. This produces a clean window capture without manually tracing its edges.
Use Screenshot controls
Press Shift-Command-5 to open the Screenshot controls. You can choose a full screen, window, or selected area, set a timer, select a save location, and control whether the pointer appears. Apple also documents HDR capture as HEIF on supported Mac models running macOS Tahoe 26 or later; the SDR “Most Compatible” option uses PNG.
By default, screenshots are saved to the desktop. Open the Screenshot controls, choose Options, and select another destination. You can also Control-click the floating thumbnail and choose Save to Clipboard when you want to paste the capture directly into another app.
2. Decide whether you need an image, archive, or PDF
| Need | Use | Result |
|---|---|---|
| Exactly what is visible | Shift-Command-3 or Shift-Command-4 | PNG or the format selected by macOS |
| A browser window or menu | Shift-Command-4, then Space | Window or menu screenshot |
| The page as a saved document | Safari File > Save As > Web Archive | Archive containing page resources and links where destinations remain available |
| The HTML source | Safari File > Save As > Page Source | HTML, not a rendered screenshot |
| A tall image of the rendered page | Headless Chrome or a screenshot API | Image generated by a browser capture process |
| A paginated document | Headless Chrome --print-to-pdf or browser print |
PDF, not one continuous PNG |
A Web Archive and a PDF are different outputs from a single tall screenshot. Pick the format your next tool needs before you capture.
3. Save an entire page in Safari
- Open the page in Safari.
- Choose File > Save As.
- Select Web Archive or Page Source.
- Save the file where you can find it later.
Apple describes Web Archive as preserving graphics and links while their destinations remain available. Page Source saves only the HTML. Some webpages can prevent Safari from saving items displayed on the page. This workflow creates an archive or source file; it does not create a single tall screenshot image. See Apple’s Safari page-saving guide.
4. Capture a rendered page with Chrome Headless
For repeatable full-page image or PDF output, Google’s Headless Chrome command-line options provide a browser-driven route. This requires Terminal and a Chrome executable. It is intended for developers and automation rather than the simplest everyday shortcut.
Save a screenshot image
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome \
--headless \
--disable-gpu \
--screenshot=page.png \
--window-size=1440,900 \
--hide-scrollbars \
https://example.com
The command writes page.png in the current directory. A viewport-sized screenshot may show only the visible layout. For a page that must be captured after scripts finish, add a timeout:
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome \
--headless \
--disable-gpu \
--timeout=10000 \
--screenshot=page.png \
https://example.com
Chrome’s documented --timeout option waits before capture so content has time to load. The exact height of a generated image depends on the browser command and page layout; test pages with lazy-loaded or animated content.
Print the page to PDF
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome \
--headless \
--disable-gpu \
--print-to-pdf=page.pdf \
https://example.com
Use PDF when pagination, printing, or document sharing matters. It is not equivalent to one continuous screenshot image. Read Google’s Chrome Headless command-line reference for the supported flags.
Open Chrome’s Command Menu
In Chrome DevTools, press Command-Shift-P to open the Command Menu. Google’s documentation covers the menu and area screenshot commands. Do not treat that documentation as a guarantee of a full-size webpage screenshot workflow; the documented headless CLI is the reliable command-line route for image output. See Chrome’s Command Menu guide.
5. Choose the right method
- Visible content for a message or bug report: Shift-Command-4.
- A whole display including other apps: Shift-Command-3.
- A timed capture or custom save location: Shift-Command-5.
- An offline Safari copy with links and graphics: Web Archive.
- HTML for inspection: Page Source.
- Automated image or PDF generation: Chrome Headless.
- Many URLs, authenticated pages, cleanup, or an application integration: a screenshot API.
6. Troubleshooting
The shortcut does nothing
Check that you are pressing Command, not Control, and that the keys are pressed together. Open System Settings > Keyboard > Keyboard Shortcuts > Screenshots to confirm the shortcuts are enabled or to identify a conflicting shortcut.
The file is not on the desktop
Open Shift-Command-5, select Options, and check the destination. A previous configuration may save to Documents, Clipboard, Mail, or another folder.
The screenshot includes too much or too little
Use Shift-Command-4 for a precise rectangle. For a window capture, press Space after Shift-Command-4. Remember that these shortcuts capture pixels currently visible on the screen; they do not scroll a webpage.
The Safari Web Archive is missing content
Some pages prevent saving displayed items, and linked destinations may no longer be available later. Save the page when its resources are accessible, or use a rendered browser capture if you need a fixed image.
Chrome captures a blank or incomplete page
Confirm the URL is reachable from the Mac, increase --timeout for JavaScript-heavy pages, and check whether login, bot checks, consent dialogs, or lazy loading block the useful content. Capture after the page reaches the state you need.
The output format is wrong
A Mac shortcut produces a screen image, Safari Web Archive produces an archive, and --print-to-pdf produces a PDF. Select the method that matches the consumer of the file instead of converting formats afterward.
7. Performance, reliability, and cost considerations
- Local shortcuts: fastest for one visible capture and require no network request. They depend on what is rendered on your display.
- Safari archives: useful for preserving a page for later reference, but external links and blocked page resources can limit fidelity.
- Headless Chrome: repeatable in scripts, but startup time, JavaScript work, network conditions, authentication, and timeouts affect results.
- PDF: handles print pagination well but should not be substituted for a pixel-perfect tall image.
- Automation at scale: use deterministic viewport, timezone, user agent, wait conditions, and caching where appropriate. Record failures separately from successful captures.
8. Or skip the browser setup
ScreenshotNeo is a website screenshot API and MCP server. One GET request returns a PNG, JPEG, WebP, or PDF. It accepts consent banners before capture and removes more than 60 known consent platforms, newsletter popups, and chat widgets; each cleanup step can be turned off. Bot checks and CAPTCHAs, 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.
See the ScreenshotNeo API documentation for all options, including full-page capture with lazy images loaded, CSS element capture, dark mode, device presets, custom viewports, retina scale, PDF paper and margin controls, custom CSS and JavaScript, clicks, selector or network-idle waits, request blocking, headers, cookies, authorization, timezone, geolocation, transparent backgrounds, resizing, TTL caching, signed image links, asynchronous jobs with signed webhooks, bulk capture for up to 100 URLs per call, usage data, and the OpenAPI specification.
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(`HTTP ${res.status}`);
const fs = await import('node:fs/promises');
await fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()));
ScreenshotNeo’s free plan includes 1,000 screenshots each month with no card. Paid plans start at $5 for 3,000 shots, and every feature is available on every plan. An MCP server provides take_screenshot, get_page_info, and capture_pdf tools for Claude, Cursor, and other MCP clients.
Create a free ScreenshotNeo account to get 1,000 screenshots a month with no card.
9. FAQ
Does Shift-Command-3 capture the entire webpage?
No. It captures the entire Mac screen. Content below the browser viewport is not included automatically.
Is a Safari Web Archive an image?
No. It is an archive containing page resources and links. Use a screenshot command or API when you need PNG, JPEG, or WebP output.
Should I use PNG or PDF?
Use PNG for a raster image, PDF for a paginated document, and Web Archive when you need a saved Safari page with resources and links.
Can I automate screenshots without opening Chrome manually?
Yes. Chrome Headless provides command-line screenshot and PDF flags, and ScreenshotNeo provides an HTTP API, asynchronous jobs, bulk capture, and an MCP server.
Why does a page look different in a screenshot?
Viewport size, device scale, fonts, cookies, login state, geolocation, timezone, animations, consent dialogs, and network timing can all change the rendered result. Set these inputs deliberately for repeatable captures.


