ScreenshotNeo

BlogHow-to

How to Capture Google SERP Screenshots with Location Settings in Chrome

Use Chrome DevTools to emulate a location and capture a Google results page. Learn what the screenshot can prove, how to make captures repeatable, and where location emulation falls short.

By the ScreenshotNeo team4 October 20268 min read

Direct answer: Use Chrome DevTools’ Sensors panel to override browser geolocation, load Google Search, run your query, and capture the visible viewport or the full page. This gives you a browser test condition for that coordinate; it does not guarantee the same results a person physically at that location would see. Google estimates Search location from multiple signals, while DevTools emulates browser geolocation. Chrome DevTools Sensors documentation · Google’s explanation of location in Search.

Set up a location override in Chrome

  1. Open Chrome and navigate to a page you can use to check geolocation behavior. Open DevTools with F12 or Ctrl+Shift+I on Windows/Linux, or Cmd+Option+I on macOS.
  2. Open the DevTools command menu with Ctrl+Shift+P or Cmd+Shift+P, type Show Sensors, and select the command. You can also open the Sensors panel from the DevTools panel menu when available.
  3. In the Sensors panel, find Location or Geolocation. Select a built-in preset, enter custom latitude and longitude, or choose the unavailable location option to test a site’s denied or unavailable-location handling. DevTools labels can change between Chrome releases.
  4. For a reusable place, open DevTools Settings and then Locations. Add a named preset with latitude, longitude, timezone ID, and locale, save it, and select it in Sensors. Use coordinates relevant to your test area rather than assuming a city name resolves to one exact point. The Sensors documentation.
  5. Navigate to Google Search and submit the query. If the browser asks for location permission, make sure the permission state matches the condition you intend to document.

The override is useful for checking browser geolocation responses and capturing a demonstration. It is not a general-purpose switch that forces every website or Google system to use the selected coordinates.

Capture the results page

  1. Arrange the page at the viewport size you want to document. Close unrelated panels or overlays that would obscure the evidence.
  2. Open the DevTools command menu and search for Capture screenshot to save the visible viewport. Use Capture full size screenshot when you need content beyond the current viewport. Chrome’s screenshot commands are documented with its DevTools tooling: Chrome DevTools Sensors and related tools.
  3. Choose viewport or full-size capture based on what your evidence needs. A viewport shot records what was visible at that scroll position; a full-size capture includes the scrollable page content.
  4. Save the capture with the test notes below. Repeat the same steps if comparing locations, and change one relevant condition at a time.
Capture Use it for Keep in mind
Visible viewport Comparing what fits on screen, including the top results and visible local features. Anything below the fold is absent.
Full-size page Recording results and page content beyond the current scroll position. Long pages can produce large images; verify that the resulting capture contains the content you need.

Make the screenshot useful as evidence

A screenshot alone does not record the conditions that produced it. Keep a small capture record alongside the image:

  • The exact query and Google Search URL.
  • The selected latitude and longitude or the name of the saved preset.
  • Date and time, including timezone.
  • Chrome version, viewport dimensions, and whether capture was viewport-only or full-size.
  • Search language and any relevant Search preferences.
  • Whether you were signed in to a Google Account, and any other account or browser state relevant to the comparison.
  • Whether location permission was allowed, blocked, or left unavailable.

These notes make the test conditions understandable; they do not make SERPs identical across sessions. Avoid concluding that a particular ranking, local pack, ad, or other feature must appear at a coordinate unless you have verified that specific query and environment at that time.

Understand what the location setting controls

There are two settings that are easy to confuse:

Setting Controls Best suited to
DevTools Sensors geolocation override The browser’s emulated geolocation input available to pages that request it. Testing a site’s browser geolocation behavior and documenting a browser setup.
Google Search settings Search preferences such as language and location. Changing saved Search preferences for your own use.

Google’s Search browser settings include language and location choices. If you save settings while signed in, Google says those settings remain the same in browsers where you sign in. This is a Search preference, not an equivalent of physically being at a location or overriding browser geolocation. Google also notes that its Search settings are being updated, so the precise account interface may vary. Change Search browser settings.

Google describes Search location as an estimate based on multiple sources. Depending on context, those can include device location, a general area, account information, and other signals. If getting a current device location takes too long, Google says it may use the last device location stored in a cookie that expires after six hours. Consequently, a DevTools override alone does not promise a fully localized or reproducible Google results page. Google Search location controls.

Check browser and operating system permissions

Chrome’s location permission determines whether a site can request browser location. The documented desktop path is Settings → Privacy and security → Site settings → Location. You can choose a default behavior or change the permission for a specific site. Windows and macOS location settings may also matter, and work or school devices can have administrator-managed settings. Manage location settings in Chrome.

When checking a per-site setting, open the site, select the site information control beside the address, then open Site settings and review Location. Chrome may offer one-time, while-visiting, or blocked behavior depending on the version and context. Permission and DevTools emulation are separate parts of the test: record both. Change site settings permissions.

Troubleshooting

Symptom Likely cause What to do
No Sensors panel appears The panel is hidden or the DevTools command was not opened. Open the DevTools command menu and search for “Show Sensors.” DevTools menus can move between releases.
The page still appears to use the original place The page may use IP, account, saved preferences, cookies, or another signal instead of browser geolocation. Check the displayed Search location and the test notes. Treat the override as one input, not a guarantee of localized results.
A site cannot read geolocation Location permission is blocked, unavailable, or disabled by operating-system or managed-device settings. Review Chrome’s Location permission for the site and relevant device settings. For a denied-location test, keep the unavailable state intentional.
Results differ on a repeat capture Search results can vary with time, language, account state, personalization, and other location signals. Record conditions and compare captures as observations, not proof of a single canonical SERP.
The screenshot misses lower results A normal screenshot only captures the viewport. Use the full-size screenshot command if you need the scrollable page.
The saved Search location does not match the emulated coordinates Search settings and DevTools geolocation control different things. Decide whether your test concerns a saved Search preference or browser geolocation, then document the relevant setting.

Performance, reliability, and cost

Chrome’s built-in workflow needs no screenshot service or API key. Its practical cost is the time needed to set up and record each test. For repeatability, use a named preset, consistent viewport, a clean browser profile when account state should be controlled, and a capture log. Those steps reduce avoidable variation but cannot control Google’s result systems or guarantee an identical SERP.

When a workflow needs many URLs, scheduled captures, a scriptable API, or screenshots inside an automated pipeline, a screenshot API can reduce browser setup work. Choose viewport or full-page output deliberately, and retain the query, time, coordinates, and settings as metadata because an image does not explain its own conditions.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server. A single GET request can return PNG, JPEG, WebP, or PDF. It is useful when you want to capture a Google Search page as an image without managing a browser screenshot script. An API screenshot does not establish that Google showed the results a local person would see; keep the same location and reproducibility caveats in mind.

Before the capture, ScreenshotNeo accepts cookie and consent banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets; each of those steps can be turned off. Bot checks and CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing, and each response identifies the page verdict and billing status in headers. Its MCP server provides take_screenshot, get_page_info, and capture_pdf for Claude, Cursor, and other MCP clients. The free plan includes 1,000 shots per month with no card; paid plans start at $5 for 3,000 shots. Every feature is on every plan. See the ScreenshotNeo API documentation.

cURL

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://www.google.com/search?q=coffee+shops+near+me -o shot.webp

Python

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={
        "access_key": "YOUR_API_KEY",
        "url": "https://www.google.com/search?q=coffee+shops+near+me",
    },
    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://www.google.com/search?q=coffee+shops+near+me'
});
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);
if (!res.ok) throw new Error(`Screenshot request failed: ${res.status}`);
const bytes = new Uint8Array(await res.arrayBuffer());
await import('node:fs/promises').then(fs => fs.writeFile('shot.webp', bytes));

Replace the example query with the one you are documenting. Avoid placing an API key in public client-side code. Create a free ScreenshotNeo account for 1,000 screenshots a month with no card.

FAQ

Does a location override make Google show exactly what a local searcher sees?

No. It emulates browser geolocation, while Google says Search location is estimated from multiple sources. Treat the screenshot as evidence of your recorded browser condition.

Can I test a site that denies location access?

Yes. Select the unavailable location state in Sensors or block the site’s location permission, depending on the behavior you want to test, and record which condition you used.

Should I change Search settings or DevTools?

Use Search settings for your saved language or location preference. Use Sensors when testing what a page receives as browser geolocation. They serve different purposes.

No. Google documents that expiry for a fallback stored device location. It does not promise that Search results will remain unchanged during that period.