ScreenshotNeo

BlogHow-to

How to Capture Desktop and Mobile SERP Screenshots for SEO

Capture the same search query on desktop and mobile, record the conditions, and compare what was visible without treating one screenshot as a universal ranking report.

By the ScreenshotNeo team4 October 202610 min read

To capture desktop and mobile SERP screenshots for SEO, search the exact same query on each device, save what is visible, and record the conditions that shaped each result page: search engine, date and time, locale, language, signed-in state, device, and viewport. Then compare the captures as observations of those particular searches—not as permanent or context-free ranking records.

For a public search-results screenshot, capture the results page you see in a browser. Google Search Console’s rendered-page screenshot answers a different question: it shows how Google-InspectionTool sees a page you inspect, not what appeared on a public SERP.

1. Decide what you need to capture

First decide whether you need evidence of public search results or a diagnostic view of a page you own or manage.

Question Use What the screenshot represents
What appeared for this query in my desktop or mobile search context? A browser or operating-system screenshot of the search results page The results visible for that query and context at capture time
How does Google render a page on my site? Search Console URL Inspection live test Google-InspectionTool’s rendered view of the inspected page, when the live test succeeds

Google says device can be relevant to search results, and responsive sites can serve the same HTML and URL with a presentation adapted to screen size. A difference between desktop and mobile captures alone does not prove an indexing problem. Google Search Central: Get started with Google Search and Google Search Central: Mobile sites and mobile-first indexing.

2. Capture the public SERP on desktop and mobile

  1. Choose the search context. Select the search engine and write down the exact query, including punctuation and spelling. Decide whether to use a particular language or location setting. Record whether you are signed in and any consent or personalization prompt you encounter.
  2. Search on desktop. Open the selected search engine in a desktop browser, enter the query, and capture the results page. Keep the original image file. Record the browser and viewport dimensions if you know them.
  3. Search on mobile. Use a mobile device or a browser configured for a mobile viewport. Enter the same query with the same search engine and, as far as practical, the same language and location context. Capture the visible results and record the device or viewport.
  4. Save the files consistently. For example, use google-example-query-desktop-2026-10-04-1430.png and google-example-query-mobile-2026-10-04-1435.png. Replace the example query and timestamps with your own.
  5. Keep a capture log. Save the metadata alongside the images. A CSV, spreadsheet, or text file is sufficient; this is a reproducibility recommendation, not a Google or Bing requirement.
  6. Preserve originals. If a report needs arrows, crops, or other annotations, make a separate copy and label it as annotated. Keep the unedited captures so readers can distinguish evidence from presentation.

Use the browser’s or operating system’s screenshot feature for the exact device you are documenting. The dossier does not establish a universal keyboard shortcut, so check the instructions for your operating system or device rather than assuming one. If a full-page capture is necessary, record how it was made. Stitching or cropping can obscure which results appeared together in the original viewport.

3. Record enough context to interpret the images

Use one log row per capture. These fields make a later comparison more meaningful:

Field Example or note
Search engine Google, Bing, or the engine used
Exact query Copy the submitted query, preserving punctuation
Capture date and time Include the time zone when the record may be reviewed elsewhere
Locale or location Record the setting you selected; note if it was not controlled
Language Record the interface or search language setting you used
Signed-in state Signed in, signed out, or unknown
Device and browser For mobile, identify the device; for desktop, identify the browser and operating system if relevant
Viewport Record dimensions when available; for a physical phone, note the device model if known
Prompts Note consent, personalization, or location prompts and whether you interacted with them
Filename and method Record the saved filename and whether the capture shows the initial viewport or a full-page image

Not every setting can be made identical across devices. Write down what you controlled and what you could not verify instead of implying that the two captures were perfectly matched.

4. Compare desktop and mobile captures fairly

Compare the captures as a pair only after checking that the query and search engine match. Then note the differences you can actually see:

  • Visible result order and which result occupies each position.
  • Ads and local or map results.
  • Images, videos, featured results, and other visible result features.
  • How much of each result is visible in the initial viewport, including whether a result is cut off below the fold.
  • Differences in wrapping, spacing, and layout that change which results can be seen at once.

Keep observations separate from explanations. For example, “the local results appeared above the first organic result in this mobile capture” describes the image. It does not establish why the layout differed or what every user would see. Search results can reflect the recorded query and context; a pair of screenshots is not a universal ranking report.

5. Use Search Console when you need Google’s rendered view of a page

For a page you own or manage, Search Console URL Inspection reports information about the URL in Google’s index and can run a live test. After a successful live test, choose View tested page to inspect information such as a rendered screenshot, raw HTML, HTTP headers, JavaScript console output, and resources. The screenshot shows the inspected page as seen by Google-InspectionTool; it is not a capture of public search results. A screenshot is available for a successful live test, not for indexed data alone or a failed fetch. Search Console Help: URL Inspection tool.

The indexed-page view and live-test results answer different questions. Google says live-test results are not as comprehensive as indexed information and that it does not use live-test information. Use URL Inspection to troubleshoot a page, not to claim that a keyword currently shows a particular public result. Search Console Help: Test a URL with the URL Inspection tool.

Google also cautions that it “doesn’t always see everything that you see in the browser.” For Google’s view of a page, its documentation recommends URL Inspection or the Rich Results Test. Google Search Central.

6. Automate repeatable URL captures with ScreenshotNeo

For a repeatable record of a search page URL, ScreenshotNeo can capture the URL you provide and return an image or PDF. For example, you can construct a search URL for the query and request its screenshot. This captures the page returned for that URL in the capture context; it does not make the result a universal ranking record or guarantee that your personal browser context is reproduced. For manual desktop and mobile evidence, capture each device directly and log its context.

Here is a complete cURL example for a Google search URL. Replace the query as needed and use your own API key. See the ScreenshotNeo API documentation for request options.

curl -G "https://api.screenshotneo.com/v1/shot" \
  -d access_key=YOUR_API_KEY \
  --data-urlencode 'url=https://www.google.com/search?q=site%3Aexample.com+SEO' \
  -o serp.webp

Python equivalent:

import requests

r = requests.get(
    "https://api.screenshotneo.com/v1/shot",
    params={
        "access_key": "YOUR_API_KEY",
        "url": "https://www.google.com/search?q=site%3Aexample.com+SEO",
    },
    timeout=90,
)
r.raise_for_status()
with open("serp.webp", "wb") as image:
    image.write(r.content)

Node.js equivalent:

const q = new URLSearchParams({
  access_key: 'YOUR_API_KEY',
  url: 'https://www.google.com/search?q=site%3Aexample.com+SEO',
});
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('serp.webp', new Uint8Array(await res.arrayBuffer()));

These examples request a capture of the URL supplied. A query URL can include encoded search parameters; URL encoding prevents spaces and special characters from being misread. Do not assume that an automated request has the same signed-in state, location, personalization, or device context as a screenshot from your own browser. Record the capture method and any known context in your log.

Or skip the browser setup

ScreenshotNeo is a website screenshot API and MCP server for developers. One GET request captures a URL as PNG, JPEG, WebP, or PDF. For this example, the URL is a Google search for a query; replace it with the encoded search URL you want to capture.

curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode 'url=https://www.google.com/search?q=site%3Aexample.com+SEO' -o serp.webp

The same request works from 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=site%3Aexample.com+SEO"}, timeout=90)
open("serp.webp", "wb").write(r.content)

And Node.js:

const q = new URLSearchParams({ access_key: 'YOUR_API_KEY', url: 'https://www.google.com/search?q=site%3Aexample.com+SEO' });
const res = await fetch(`https://api.screenshotneo.com/v1/shot?${q}`);

Cookie banners, newsletter popups, and chat widgets are removed before the shot, and each cleanup step can be turned off. Bot checks, blank pages, timeouts, failed loads, and cache hits are never billed; response headers identify the page verdict and billing status. An MCP server gives AI agents tools to take screenshots, get page information, and capture PDFs. The free plan includes 1,000 screenshots a month with no card; paid plans start at $5 for 3,000. See ScreenshotNeo and the API docs. Sign up for 1,000 free screenshots a month, no card required.

Troubleshooting

Problem Likely cause What to do
The desktop and mobile images show different results The device, viewport, locale, language, signed-in state, prompt interactions, or capture time differed; device can also be relevant to search. Check the log, align settings where practical, recapture close together in time, and describe the remaining differences as context rather than a controlled ranking change.
A result appears in one image but is below the fold in the other The viewport dimensions or page layout differ. Compare the initial viewport as captured and report visibility separately from result order. If using full-page images, document the method.
A consent or location prompt covers the results The search page requested an interaction before displaying its content. Record the prompt and your choice. If you dismiss it, note that in the log; do not silently compare it with a capture where the prompt remained.
Search Console has no rendered screenshot The screenshot is available only after a successful live test, not from indexed data alone or a failed fetch. Review the live test status and use the tested-page view after a successful test. Treat fetch failures as diagnostic outcomes, not SERP captures.
The Search Console screenshot does not match the browser page It represents Google-InspectionTool’s rendering, which may differ from what a browser visitor sees. Use it to investigate Google’s rendered view of the inspected page. Capture the public SERP separately when that is the question.
The API request fails or returns an unexpected page The URL may be malformed, the key may be missing or invalid, or the destination may present a bot check or other failure. Check the API key and encode the full search URL as a URL parameter. Inspect the response and its page-verdict and billing headers; failed loads and bot checks are not billed under ScreenshotNeo’s stated policy.

Performance, reliability, and cost notes

  • Capture close in time. A short interval reduces one obvious source of variation, but does not make device contexts identical.
  • Keep originals and metadata together. This makes the record easier to audit and repeat. Store the log in a format your team can retain with the files.
  • Choose the capture scope deliberately. An initial-viewport screenshot is best for documenting what was immediately visible; a full-page image may show more content but can make simultaneous visibility less clear.
  • Automated capture has context limits. A URL screenshot is useful for a repeatable URL capture, but do not assume it reproduces your personal browser session or a particular user’s search results.
  • ScreenshotNeo billing. Only clean shots are billed; bot checks, CAPTCHAs, blank pages, timeouts, failed loads, and cache hits cost nothing. The response indicates the page verdict and billing status. Plans are Free: 1,000 per month; Starter: $5 for 3,000; Growth: $15 for 15,000; Pro: $39 for 60,000; Scale: $99 for 250,000; Business: $249 for 1,000,000. Yearly billing gives two months free, and every feature is on every plan. Confirm current plan details in the product documentation before budgeting.

FAQ

Does a SERP screenshot prove my ranking?

It records what appeared for the query and context shown in the capture. It does not establish a permanent or context-free ranking position.

Can I use URL Inspection to screenshot a search results page?

URL Inspection’s rendered screenshot is for an inspected page in a successful live test. It shows Google-InspectionTool’s view of that page, not the public SERP.

Does a different mobile layout mean my page is not mobile friendly?

No. Responsive sites can use the same HTML and URL while presenting content differently for screen size. A visual difference by itself does not establish an indexing issue.

Should I edit screenshots before sharing them?

Keep the originals. If you annotate or crop a copy for a report, label it as edited and retain the capture metadata.