ScreenshotNeo

BlogHow-to

How to Capture Website Screenshots in Portrait and Landscape Phone Orientations

Capture a website in portrait or landscape, then use your phone’s long screenshot feature when you need content below the fold.

By the ScreenshotNeo team4 October 202610 min read

To capture a website in portrait or landscape, set the phone to the orientation you want, open the page in a browser that supports that orientation, and take a screenshot. A normal screenshot records the screen as it appears at that moment. For content below the fold, use the phone’s long screenshot feature when it is available: iPhone’s Full Page in supported contexts, Android’s Capture more on Android 12 and later for most scrollable screens, or Samsung Galaxy’s Scroll capture on supported devices.

These built-in features vary by phone, software version, app, and screen. The steps below cover iPhone, Android, and Samsung Galaxy, followed by a browser-based option for developers who need repeatable captures at a chosen viewport.

1. Choose portrait or landscape before capturing

Orientation is the shape of the screen when the screenshot is taken. Portrait is taller than it is wide; landscape is wider than it is tall. The screenshot captures the current display, so rotate the phone and make sure the website has reflowed before taking the shot.

  1. Open the website in a browser.
  2. Unlock screen rotation if it is locked.
  3. Turn the phone to the desired orientation and wait for the page layout to settle.
  4. Take the screenshot using the device’s button shortcut.

If the page does not rotate, the app or current screen may not support landscape. Check the page in a browser such as Safari that supports landscape, and check the phone’s rotation setting.

2. Take a website screenshot on iPhone

Ordinary screenshot

  1. Open the website in Safari and position the page.
  2. On an iPhone with Face ID, quickly press and release Side + Volume Up together.
  3. On an iPhone with a Home button, quickly press and release Side + Home together.
  4. Tap the preview to edit or save the capture. Ordinary screenshots can be saved to Photos.

Apple documents these button combinations and the screenshot preview in its iPhone screenshot instructions.

Switch to landscape

  1. Open Control Center by swiping down from the top-right corner.
  2. Turn Portrait Orientation Lock off.
  3. Close Control Center and turn the phone sideways.
  4. Wait for Safari and the page to rotate, then take the screenshot.

If the display stays upright, confirm Portrait Orientation Lock is off and try a different app known to work in landscape. Apple notes that some apps do not support rotation. See Apple’s screen rotation instructions.

Capture a full webpage

After taking the screenshot, tap its preview. If Full Page is offered, select it to capture content beyond the visible screen. Apple gives an entire Safari webpage as an example of content that can extend beyond the screen. The Full Page workflow offers saving as an image or PDF. The option is not guaranteed for every app or context.

3. Take a website screenshot on Android

Ordinary screenshot

  1. Open the website in your browser.
  2. Press Power + Volume Down together. On some devices, holding Power and tapping Screenshot is an alternative.
  3. Use the screenshot preview or notification to view and save the image.

Button behavior can vary by manufacturer. Google’s Android screenshot instructions describe the general shortcut and the alternate Power menu flow.

Switch to landscape

  1. Open Quick Settings and enable Auto-rotate, or go to Settings > Display & touch > Auto-rotate screen where those labels are available.
  2. Turn the phone sideways and wait for the page to rotate.
  3. Take the screenshot.

Settings and labels differ between Android devices and manufacturers. Google’s screen rotation help describes the general controls.

Capture a scrolling page

Google documents scrolling screenshots on Android 12 and later, on most screens that allow scrolling:

  1. Take a screenshot.
  2. Tap Capture more if the control appears.
  3. Adjust the crop guides to include the part of the page you need.
  4. Save the result.

If Capture more does not appear, that screen, app, device, or software version may not support scrolling capture. Screenshots are commonly available in Photos under Collections > On this device > Screenshots on devices using that Photos workflow; other devices may use a Gallery app or another folder.

4. Take a website screenshot on Samsung Galaxy

  1. Open the website and set the orientation you want. If needed, enable the screen-rotation control.
  2. Press Power/Side + Volume Down and release after a brief moment.
  3. For a long capture, tap the Scroll capture icon, shown as two arrows pointing down, after the ordinary screenshot.
  4. Find saved captures in Gallery under Albums > Screenshots.

Samsung says Scroll capture can capture lengthy content as one image. Availability varies by model, carrier, software, and app. Some screens block screenshots for privacy or security reasons. Consult Samsung’s screenshot instructions for device-specific details.

5. Choose the right capture method

Need Use What to keep in mind
What is currently visible Ordinary phone screenshot Set portrait or landscape first; the capture reflects the current display.
A long webpage on iPhone Full Page, when offered Available only in supported contexts; saving options include image or PDF.
A long scrollable screen on Android Capture more, when offered Documented for Android 12+ and most screens that allow scrolling.
A long screen on Galaxy Scroll capture, when available Support depends on model, software, carrier, and app.
A repeatable browser capture at a chosen viewport Browser automation or a screenshot API Useful for development workflows, consistent dimensions, and automated jobs.

6. For developers: capture a mobile viewport in code

A phone’s built-in screenshot captures its actual display. For a repeatable website screenshot, use a browser automation tool and set the viewport dimensions to match the orientation you want. A common workflow with Playwright is to create a browser context with a mobile device profile, open the page, wait for it to render, and save the screenshot. The example below uses the Playwright package and Chromium.

npm install --save-dev playwright
npx playwright install chromium
// capture.mjs
import { chromium, devices } from 'playwright';

const targetUrl = process.argv[2] ?? 'https://example.com';
const orientation = process.argv[3] ?? 'portrait';
const phone = devices['iPhone 13'];
const viewport = orientation === 'landscape'
  ? { width: phone.viewport.height, height: phone.viewport.width }
  : phone.viewport;

const browser = await chromium.launch({ headless: true });
const context = await browser.newContext({
  ...phone,
  viewport,
  isMobile: true,
  hasTouch: true
});
const page = await context.newPage();

try {
  await page.goto(targetUrl, { waitUntil: 'networkidle', timeout: 45000 });
  await page.screenshot({ path: `website-${orientation}.png`, fullPage: true });
} finally {
  await browser.close();
}

Run it with node capture.mjs https://example.com portrait or node capture.mjs https://example.com landscape. The profile provides mobile browser settings and a viewport; swapping width and height represents the other orientation. This is a browser viewport simulation, not a capture of a physical phone. For a viewport-only screenshot, change fullPage: true to fullPage: false.

Wait for the page state you need

networkidle can be a poor fit for pages that keep connections open or load content continuously. If navigation times out or the page is still rendering, wait for a stable selector or a fixed delay instead. For example, replace the goto line with:

await page.goto(targetUrl, { waitUntil: 'domcontentloaded', timeout: 45000 });
await page.locator('main').waitFor({ state: 'visible', timeout: 15000 });
await page.waitForTimeout(500); // Optional: allow a short visual transition to finish.

Use a selector that exists on the target page. A fixed delay is simple, but it can waste time on fast pages and still be too short on slow pages. Avoid taking screenshots before fonts, images, or client-rendered content have appeared if those details matter to the result.

Capture just the visible mobile screen

For a viewport screenshot rather than a full-page image, use:

await page.screenshot({ path: `website-${orientation}-viewport.png` });

For a particular element, locate it and use the locator screenshot method:

await page.locator('main article').screenshot({ path: 'article.png' });

Check that the selected element is visible and has finished loading. A locator screenshot can scroll the element into view; the result is limited to that element rather than the entire page.

7. Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server from Yorker Media. Make one GET request with a URL to receive an image or PDF. See the ScreenshotNeo API documentation for the available parameters. Set width and height to choose portrait or landscape dimensions; the API also supports device presets and full-page capture.

cURL

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

For landscape, swap the dimensions, for example width=844 and height=390.

Python

import requests

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

Node.js

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://stripe.com',
  width: '390',
  height: '844'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
await Bun.write('shot.webp', res);

In Node.js environments without Bun, read the response as a buffer and write it with the built-in filesystem module:

import { writeFile } from 'node:fs/promises';
const bytes = Buffer.from(await res.arrayBuffer());
await writeFile('shot.webp', bytes);

For a portrait or landscape mobile capture, choose the viewport dimensions for the target layout. ScreenshotNeo can accept and dismiss cookie/consent banners and remove more than 60 known consent platforms, newsletter popups, and chat widgets before capture; each step can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for AI agents. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots.

Sign up for 1,000 free screenshots a month, with no card required.

8. Troubleshooting

Problem Likely cause What to try
The screen stays in portrait Rotation lock is enabled, or the app does not support landscape. Turn off Portrait Orientation Lock on iPhone or enable Auto-rotate on Android. Test in a browser that supports landscape.
Full Page, Capture more, or Scroll capture is missing The device, OS, app, or screen does not support long capture in that context. Try a scrollable webpage, check the OS and manufacturer guidance, or capture several sections separately.
A secure screen cannot be captured The app or screen blocks screenshots for privacy or security. Use an allowed browser page or consult the app owner; screenshot restrictions cannot necessarily be changed by the user.
The long screenshot stops early The page may not expose a supported scroll area, or capture support may be limited. Scroll to load content first and retry. If the control still does not cover the page, use a browser-based full-page capture.
The automated capture has missing images or text The screenshot ran before lazy content or client-side rendering completed. Wait for a page-specific selector, verify the relevant content is visible, and allow transitions or fonts to load.
Playwright reports a navigation timeout The site continues background network requests or responds slowly. Use domcontentloaded and wait for a specific visible element instead of requiring networkidle.
Playwright says the selector was not found The selector is wrong, the page uses a different layout, or content has not rendered. Inspect the page structure, choose a stable selector, and wait for it after navigation.
The output dimensions are wrong Viewport width and height are reversed or the capture is full page. Swap dimensions for landscape and portrait; use a viewport-only screenshot when you need fixed screen dimensions.
The API response is not an image The request may have failed or returned a non-success status. Check the HTTP status, API key, URL encoding, and response headers before saving the body as an image.

9. Performance, reliability, and cost

  • Phone captures: The built-in shortcut is the quickest way to preserve exactly what is on screen. Long capture takes additional interaction and depends on device support.
  • Automated browser captures: Reusing a browser process for multiple pages can reduce repeated startup work. Set timeouts, wait for the content that matters, and close browser contexts to release resources.
  • Page variability: Responsive layouts, consent banners, animations, lazy loading, and network conditions can make captures differ. Fix the viewport and wait condition when comparing screenshots over time.
  • Billing: A local Playwright capture uses your compute and does not incur a ScreenshotNeo API charge. ScreenshotNeo plans are Free (1,000 shots/month), 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); yearly billing gives two months free. Every feature is on every plan. Only clean shots are billed; the response identifies page verdict and billing status.

10. FAQ

Does a landscape screenshot capture more of the page?

It captures a wider, shorter viewport. It may show more columns but less vertical content. Use a supported long-page capture or a full-page browser screenshot to include content below the fold.

Can I save a full iPhone webpage as a PDF?

When Full Page is offered for the screenshot, Apple’s documented workflow includes saving the full-page capture as an image or PDF.

Can every Android phone take a scrolling screenshot?

No. Google documents Capture more for Android 12 and later on most scrollable screens, and manufacturer support can vary.

Does a browser viewport screenshot prove how a physical phone renders the site?

No. It is a controlled browser capture at mobile-sized dimensions. Device hardware, browser version, operating system, and installed fonts can produce differences from a physical phone.

Sources