ScreenshotNeo

BlogHow-to

ShrinkTheWeb Not Capturing the Full Page: Common Fixes

Fix ShrinkTheWeb captures that show only the viewport, a cropped page, or the homepage. Check Drupal’s full_length setting, global overrides, dimensions, and URL eligibility.

By the ScreenshotNeo team4 October 20268 min read

If ShrinkTheWeb shows only the visible viewport, first check that the Drupal 8 request enables full_length. Then check for a restrictive max_height, Drupal’s global settings overriding the capture’s settings, and whether the requested URL is eligible for inside-page capture on your account. These are the documented checks in the Drupal integration guide; its instructions date from 2019, so confirm current ShrinkTheWeb behavior before relying on historical account or integration details.

This guide focuses on the Drupal integration because the available technical documentation describes its settings. It does not provide enough verified information to safely give a current, direct ShrinkTheWeb API request or claim that its API parameters and account capabilities remain unchanged. See the Drupal 8 setup and usage guide for the documented integration details.

1. Confirm that full-length capture is enabled

The Drupal 8 guide documents a full_length parameter, with true enabling full-length screenshots. In its advanced render-array example, the setting is written as '#full_length' => true. Check the configuration for the specific capture that is incomplete.

$render = [
  '#theme' => 'shrinktheweb',
  '#url' => 'https://example.com/article',
  '#full_length' => true,
];

This shows the documented parameter in a Drupal-style render array; it is not a complete standalone Drupal module or ShrinkTheWeb API client. Keep the module’s required theme or render-array structure from your installed version, and add or correct the full-length setting in that structure.

When this setting is not enough

  • If the output stops at a consistent height, inspect max_height for a crop limit.
  • If the result still looks like only the browser window, verify the effective setting is actually true for this capture.
  • If only one capture needs full-page mode, use that capture’s advanced parameters rather than changing a global value.

2. Check crop limits and dimensions

A screenshot can be a full-page capture and still appear truncated if its maximum output height crops the result. The Drupal guide lists max_height as a crop limit. Inspect that setting alongside the output width and browser viewport dimensions.

Setting What to inspect Why it matters
full_length Confirm it is enabled for the capture. Selects full-length capture in the documented Drupal integration.
max_height Look for a value that clips the expected content. The guide describes this as a crop limit.
custom_width Check whether the output width is appropriate for the page. A different output width can change layout and apparent coverage.
native_resolution Review the configured browser viewport width. The example uses this setting for viewport dimensions.
widescreen_resolution_y Review the configured browser viewport height. The example uses this setting for viewport dimensions.

The documentation’s example values are examples, not recommended defaults. Change one relevant setting at a time and compare the resulting image so you can identify which value controls the crop or layout.

3. Check whether global Drupal settings override the request

The Drupal guide says basic rendering and field formatters use ShrinkTheWeb’s global settings. It also says global changes to dimensions, length, or viewport affect all screenshot instances in that Drupal installation.

  1. Identify whether the capture comes from a basic render example or field formatter.
  2. Inspect the module’s global ShrinkTheWeb settings for capture length, dimensions, and browser resolution.
  3. If just one screenshot needs different settings, use the documented advanced per-request configuration for that capture.
  4. After changing a global setting, check other screenshot instances because they may inherit the change too.

If the same page behaves differently depending on where it is rendered, compare the settings path used by each instance. A per-request option will not help if the code path producing the image never passes that option through.

4. Verify the target URL and inside-page eligibility

If the image shows the site homepage instead of the requested article or product page, confirm the URL passed into the Drupal integration first. The Drupal guide says that, without an “Inside Pages” upgrade, a requested URL will capture only the homepage. That statement is from historical documentation and does not verify that this upgrade, its terms, or the same account behavior are current.

  • Check the final URL value passed to the capture, including its path and query string.
  • Open that URL in a browser to confirm it resolves to the intended page.
  • If the integration captures the homepage despite a correct URL, check the current account capabilities and ShrinkTheWeb documentation.
  • Do not infer current plan eligibility from the old Drupal guide alone.

5. Allow for rendering delay when appropriate

The Drupal guide includes a delay option described as the number of seconds to wait after page load. If the intended content appears after the initial page load, this is a documented setting to inspect. The guide does not promise that a delay fixes lazy loading, JavaScript rendering, or any particular current capture issue.

$render = [
  '#theme' => 'shrinktheweb',
  '#url' => 'https://example.com/article',
  '#full_length' => true,
  '#delay' => 3,
];

The value above illustrates the parameter shape only. Choose a delay based on the page’s actual rendering behavior and the current integration’s accepted options. A longer wait can increase capture time, so avoid adding one without evidence that the page needs it.

6. Check image quality separately from page coverage

If the whole page is present but looks visually wrong, distinguish capture length from output quality. The Drupal guide documents quality on a scale of 1–100. It also lists width and viewport settings. Quality affects appearance; it does not enable full-length capture or remove a height crop.

Diagnose in this order: confirm the bottom of the page is present, then adjust crop and dimensions, then tune quality. That keeps an image-encoding change from masking the actual page-height problem.

7. Drupal 7 installations: treat the guide as legacy

The Drupal 7 setup guide was last updated March 4, 2019 and explicitly says Drupal 7 is no longer supported. It may help you locate old integration settings, but it should not be treated as confirmation of current module or ShrinkTheWeb support. Check the current platform and service documentation before changing a production integration based on those legacy instructions: Drupal 7 setup and usage guide.

8. Troubleshooting checklist

Symptom Likely cause Next check
Only the visible viewport appears full_length is false, absent, or not passed by the active render path. Enable '#full_length' => true in the per-request configuration and confirm that path uses it.
The image ends at a fixed height max_height may be cropping the image. Inspect the configured crop limit and compare with the expected page height.
The homepage appears instead of the requested page The submitted URL may be wrong, or inside-page capture may not be available for the account. Verify the exact URL and check current account capability documentation. The latter explanation is historical Drupal guidance.
One instance ignores a changed option The instance may use global Drupal settings or a different render path. Determine whether it is a basic render or field formatter; use advanced per-request options for a one-off configuration.
All instances changed after one setting edit A global setting affects all screenshot instances in the installation. Restore the intended global value and configure the exceptional capture per request.
Content that appears later is missing The capture may happen before the page has finished rendering. Inspect the documented delay option; the old guide does not guarantee it fixes a particular dynamic-page issue.
The page fits but layout or width looks unexpected Output width or viewport dimensions may not match the desired layout. Review custom_width, native_resolution, and widescreen_resolution_y.
Drupal 7 instructions do not match the installation The instructions are legacy and Drupal 7 is marked unsupported by that guide. Verify current compatibility before relying on the old setup steps.

9. Performance, reliability, and cost considerations

Full-length images can contain much more output than viewport captures. If you are processing many URLs, check the resulting file sizes and request duration in your own integration before increasing capture dimensions or adding delays. The available Drupal documentation does not provide current service benchmarks, reliability figures, or current ShrinkTheWeb pricing, so none are stated here.

For a Drupal installation, global changes have a wider effect than per-request settings. Make a targeted change when only one page needs it, and verify a representative capture after changing shared settings. If the page depends on delayed rendering, add only the wait needed for the content to appear.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. A GET request returns a PNG, JPEG, WebP, or PDF. It removes cookie banners, newsletter popups, and chat widgets before the shot. Bot checks, blank pages, and failed loads are never billed; responses identify the page verdict and billing status in headers. Its MCP server lets AI agents use screenshot tools. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000 screenshots. See the API documentation for options and configuration.

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode url=https://example.com/article \
  -o shot.webp
import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={"access_key": "YOUR_API_KEY", "url": "https://example.com/article"},
    timeout=90,
)
open("shot.webp", "wb").write(r.content)
const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://example.com/article',
});
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);

Replace YOUR_API_KEY with your key. The Node.js example uses Bun’s file writer to save the response; in Node.js, use await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', Buffer.from(await res.arrayBuffer()))) after checking the response. See the ScreenshotNeo docs for the supported request options, including full-page capture and output formats.

Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.

FAQ

Does setting full_length remove a max_height crop?

Do not assume so. The Drupal guide describes these as separate settings: full-length capture mode and a maximum-height crop limit. Inspect both.

Should I change the global setting or just this capture?

Use an advanced per-request configuration when the change is needed for only one screenshot. Global settings affect all screenshot instances in the Drupal installation, according to the Drupal 8 guide.

Is “Inside Pages” still a current ShrinkTheWeb upgrade?

The reviewed Drupal guide uses that name, but it is historical and does not establish current product or account terms. Verify with current ShrinkTheWeb documentation.

Can I use the old Drupal 7 guide as current support guidance?

No. It is dated March 4, 2019 and says Drupal 7 is no longer supported.

Sources