Why Does My Full-Page Screenshot Cut Off the Bottom of the Website?
A full-page screenshot can stop early when the capture only covers the viewport, content has not loaded, or it scrolls inside a panel. Here’s how to find the cause.
A full-page screenshot usually cuts off the bottom for one of three reasons: the capture command took only the visible viewport, lower-page content had not loaded yet, or the missing content is inside a separately scrolling panel. First confirm that you chose a full-page capture, then scroll the page to trigger deferred content and check for an inner scrollbar. The title does not identify a particular browser, device, or capture tool, so these are diagnostic checks rather than a diagnosis of one specific failure.
1. Confirm that you requested a full-page capture
A viewport screenshot captures only what is currently visible. A full-page screenshot is a separate mode that attempts to include content beyond the window bounds. Check the capture tool’s selected mode before investigating the page itself.
Firefox offers separate options to save the visible area or the full page. Its Developer Tools also support a full-page screenshot command:
:screenshot --fullpage
See Firefox’s screenshot instructions and the Firefox DevTools command-line documentation. Menu labels and availability can vary by browser version and platform.
2. Let deferred content load before capturing
Pages can defer fetching images until they are near the viewport. MDN explains that an image using loading="lazy" may not have loaded when the window’s load event fires. A capture tool that starts as soon as the initial page load completes can therefore miss images farther down.
- Scroll down through the page in sections.
- Pause when new images, cards, or other content appear so their requests and rendering can finish.
- Return to the top and capture again.
This also helps reveal content that appears only after scrolling. For details, see MDN’s guide to lazy loading.
3. Look for a separately scrolling panel
Some pages keep a feed, table, embedded application, or long list inside a fixed-height element. Scrolling the main document will not reveal content that remains inside that element. Look for a scrollbar inside the area containing the missing content, or place the pointer over that area and scroll there.
A full-page capture of the main document may not include content that remains hidden in an inner scroller. Chrome DevTools describes how to identify and inspect scrollable elements. If you need only the panel, check whether your capture tool can capture a selected element. Firefox DevTools documents full-page and element screenshot workflows.
4. Use this troubleshooting sequence
- Repeat the capture in full-page mode. Verify the command or menu option says full page, whole page, or an equivalent term rather than visible area.
- Scroll down and wait. Give lazy images and content triggered by scrolling time to appear, then return to the starting position and capture again.
- Check for nested scrolling. Scroll inside the area with the missing content and see whether it has its own scrollbar.
- Try another documented full-page workflow. For example, compare the original method with Firefox’s full-page screenshot option or DevTools command. If the alternate method works, the difference may be in the original capture mode or tool. Results can vary by site.
- Inspect the page if the issue remains. Use browser developer tools to see whether the content exists, whether its requests have completed, and whether it belongs to a separately scrolling component. Firefox DevTools includes a Page Inspector, Network Monitor, and JavaScript Debugger; see the Firefox DevTools documentation.
5. Diagnose the symptom
| What you see | Likely explanation | What to try |
|---|---|---|
| The screenshot ends at the bottom edge of the visible window. | The tool captured the viewport. | Select full-page capture and repeat. |
| The page is long, but images or cards are missing lower down. | Content may be deferred until it approaches the viewport, or may render after scrolling. | Scroll down in sections, wait for content, return to the top, and recapture. |
| The main page scrolls, but a list or embedded area stays short. | The content may be inside an inner scroll container. | Scroll within that area; check for element capture if you need the panel alone. |
| One capture method works and another does not. | The tools or modes may handle this page differently. | Use the working documented full-page method, and inspect the failing workflow’s settings. |
6. Or skip the browser setup
If you are capturing a page as part of a development workflow, ScreenshotNeo provides a website screenshot API and MCP server. One GET request returns an image or PDF. See the ScreenshotNeo website and API documentation for parameters and response details.
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
import requests
r = requests.get(
"https://api.screenshotneo.com/v1/shot",
params={"access_key": "YOUR_API_KEY", "url": "https://stripe.com"},
timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://stripe.com' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
ScreenshotNeo removes cookie and consent banners, newsletter popups, and chat widgets before the shot; each cleanup step can be turned off. Bot checks, blank pages, failed loads, timeouts, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP server offers take_screenshot, get_page_info, and capture_pdf for AI agents. The free plan includes 1,000 screenshots per 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.
7. Performance, reliability, and cost
For a manual capture, scrolling through the page and waiting for deferred content adds time, but can prevent a screenshot from omitting content that had not rendered. The browser documentation establishes that lazy images may load later; it does not guarantee that every site or capture tool will behave the same way.
For repeatable captures in code, use a full-page mode and wait for the content your page depends on before saving the result. A page with inner scrolling may need a different target or workflow. When evaluating an API, check how it reports failed or unbillable captures and whether its controls fit your page; do not assume every service handles these cases identically. ScreenshotNeo states that bot checks, blank pages, timeouts, failed loads, and cache hits are not billed. Its listed monthly plans are Free (1,000 shots), 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 included on every plan.
Frequently asked questions
Why does the screenshot miss only images near the bottom?
Those images may be lazy-loaded and may not have been fetched before capture. Scroll near them, wait for them to appear, and capture again.
Does a full-page screenshot include everything inside a scrollable panel?
Not necessarily. Content inside an inner scroller can remain hidden while the main document is captured. Scroll within the panel, or use element capture if your tool supports it.
How can I tell whether the problem is the website or the capture tool?
Try another documented full-page workflow and inspect the page with developer tools. If content appears after scrolling, loading was likely involved; if it appears only when scrolling inside a panel, the page uses a separate scroll area. The available evidence may not identify a single cause in every case.


