# web.dev API: Check page speed

> Tests a web page with Google PageSpeed Insights on mobile or desktop: performance, accessibility, best practices and SEO scores, lab timings, real-user Core Web Vitals when available, and the top suggested fixes.

Unofficial. Not affiliated with or endorsed by web.dev.

- Page: https://fous.com/methods/pagespeed.web.dev/check-page-speed
- Method: `pagespeed.web.dev/check_page_speed`, version 1
- Website: pagespeed.web.dev
- Returns: scores, lab results, real-user results, suggested fixes, tested link, report link
- Effect: read (it gets data and changes nothing)
- Sign-in: none needed
- Cost: 1 credit per completed run (1¢ with pay as you go); failed runs are free
- Verified: Nov 2, 2026

## Inputs

| Field | Type | Required | In the run below | Description |
|---|---|---|---|---|
| `device` | string | no | `"desktop"` | Device type, such as mobile. One of "mobile", "desktop". Default "mobile". |
| `page_url` | string | yes | `"example.org"` | Address of the page to test, such as example.com. |

## Output

From a run on Oct 31, 2026, shortened. Its input:

```json
{
  "device": "desktop",
  "page_url": "example.org"
}
```

Its output:

```json
{
  "device": "desktop",
  "seo_score": 80,
  "lab_results": {
    "speed_index_seconds": 0.206,
    "total_blocking_time_ms": 0,
    "first_contentful_paint_seconds": 0.206,
    "largest_contentful_paint_seconds": 0.206
  },
  "report_link": "https://pagespeed.web.dev/analysis/https-example-org/3qxczoum24?form_factor=desktop",
  "tested_link": "https://example.org/",
  "suggested_fixes": [
    {
      "fix": "Use efficient cache lifetimes",
      "estimated_saving": "Est savings of 1 KiB"
    },
    {
      "fix": "Forced reflow",
      "estimated_saving": null
    },
    {
      "fix": "Network dependency tree",
      "estimated_saving": null
    }
  ],
  "performance_score": 100,
  "real_user_results": {
    "scope": "URL",
    "passed": true,
    "cumulative_layout_shift": 0,
    "interaction_to_next_paint_ms": 15,
    "largest_contentful_paint_seconds": 0.579
  },
  "accessibility_score": 96,
  "best_practices_score": 100
}
```

## Run it

From code, with a Fous API key in `FOUS_API_KEY`; the answer's `data` holds the output:

```bash
curl https://api.fous.com/v1/runs \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"method":"pagespeed.web.dev/check_page_speed","input":{"device":"desktop","page_url":"example.org"}}'
```

From an AI agent connected to the Fous MCP server: its `run` with the same method and input. To connect one, give it `set up https://fous.com/SKILL.md`.

## Ask your agent

- Run a PageSpeed Insights test on https://www.etsy.com/c/jewelry for mobile and tell me the performance and accessibility scores
- How fast does bluebottlecoffee.com load on desktop? I want the LCP, CLS and the biggest fixes to make it quicker
- Use web.dev to check the Core Web Vitals for my portfolio site janedoe.design on a phone
- Can you audit nytimes.com/section/technology on web.dev for desktop and give me the SEO and best practices scores plus a link to the full report?
- Our landing page at shop.greenleafgardens.co.uk feels sluggish on mobile — test it and list the top suggested improvements along with real-user data if there is any

## Input schema

```json
{
  "type": "object",
  "required": [
    "page_url"
  ],
  "properties": {
    "device": {
      "enum": [
        "mobile",
        "desktop"
      ],
      "type": "string",
      "default": "mobile",
      "description": "Device type, such as mobile."
    },
    "page_url": {
      "type": "string",
      "description": "Address of the page to test, such as example.com."
    }
  }
}
```

## Output schema

```json
{
  "type": "object",
  "required": [
    "tested_link",
    "device",
    "performance_score",
    "accessibility_score",
    "best_practices_score",
    "seo_score",
    "real_user_results",
    "lab_results",
    "suggested_fixes",
    "report_link"
  ],
  "properties": {
    "device": {
      "type": "string",
      "description": "Device type tested."
    },
    "seo_score": {
      "type": [
        "number",
        "null"
      ],
      "description": "SEO score out of 100."
    },
    "lab_results": {
      "type": "object",
      "properties": {
        "speed_index_seconds": {
          "type": [
            "number",
            "null"
          ],
          "description": "Lab speed index in seconds."
        },
        "total_blocking_time_ms": {
          "type": [
            "number",
            "null"
          ],
          "description": "Lab total blocking time in milliseconds."
        },
        "first_contentful_paint_seconds": {
          "type": [
            "number",
            "null"
          ],
          "description": "Lab first contentful paint in seconds."
        },
        "largest_contentful_paint_seconds": {
          "type": [
            "number",
            "null"
          ],
          "description": "Lab largest contentful paint in seconds."
        }
      },
      "description": "Results measured by Lighthouse."
    },
    "report_link": {
      "type": "string",
      "description": "Link to the full PageSpeed Insights report."
    },
    "tested_link": {
      "type": "string",
      "description": "Final page address tested."
    },
    "suggested_fixes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "fix": {
            "type": "string",
            "description": "Suggested improvement."
          },
          "estimated_saving": {
            "type": [
              "string",
              "null"
            ],
            "description": "Estimated saving shown by PageSpeed, if any."
          }
        }
      },
      "description": "Up to five relevant suggested fixes."
    },
    "performance_score": {
      "type": [
        "number",
        "null"
      ],
      "description": "Performance score out of 100."
    },
    "real_user_results": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "scope": {
          "type": "string",
          "description": "Whether data describes the URL or its origin."
        },
        "passed": {
          "type": [
            "boolean",
            "null"
          ],
          "description": "Whether Core Web Vitals passed."
        },
        "cumulative_layout_shift": {
          "type": [
            "number",
            "null"
          ],
          "description": "Real-user cumulative layout shift."
        },
        "interaction_to_next_paint_ms": {
          "type": [
            "number",
            "null"
          ],
          "description": "Real-user interaction to next paint in milliseconds."
        },
        "largest_contentful_paint_seconds": {
          "type": [
            "number",
            "null"
          ],
          "description": "Real-user largest contentful paint in seconds."
        }
      },
      "description": "Real-user experience when available."
    },
    "accessibility_score": {
      "type": [
        "number",
        "null"
      ],
      "description": "Accessibility score out of 100."
    },
    "best_practices_score": {
      "type": [
        "number",
        "null"
      ],
      "description": "Best practices score out of 100."
    }
  }
}
```

## See more

- [SSL Labs API: Check a website's SSL Labs HTTPS grade](https://fous.com/methods/ssllabs.com/check-ssl-certificate.md): Checks a website's HTTPS setup with SSL Labs: overall grade, per-server grades, certificate issuer and expiry, supported protocols and known weaknesses. Reuses cached reports from the last 72 hours unless a fresh test is requested.
- [Walk Score API: Get Walk Score](https://fous.com/methods/walkscore.com/get-walk-score.md): Gets the Walk, Transit and Bike Scores and neighborhood details for a street address. Unpublished scores are null; unresolved or mismatched addresses are not found.
- [Can I use API: Check browser support](https://fous.com/methods/caniuse.com/check-browser-support.md): Find the closest web feature by name and see its global support and support across eight major desktop and mobile browsers. Current browser support follows the versions labeled current by Can I use.
- [Similarweb API: Get website traffic](https://fous.com/methods/similarweb.com/get-website-traffic.md): Gets a website's monthly traffic estimate, rankings, engagement and top countries from Similarweb's free public overview. Traffic-source percentages withheld by the site are null; the site may limit anonymous views.
- [DuckDuckGo API: Search the web](https://fous.com/methods/duckduckgo.com/search-web.md): Searches the web privately with DuckDuckGo in a chosen region and returns the ordered organic results without ads, plus DuckDuckGo's instant answer when it shows one.
- [BuiltWith API: Get website technologies](https://fous.com/methods/builtwith.com/get-website-technologies.md): Gets the technologies shown in a website's free BuiltWith profile, grouped in the order BuiltWith displays them. A company name is matched to its official website through a public web search.
- [Google API: Search Chrome extensions](https://fous.com/methods/chromewebstore.google.com/search-extensions.md): Finds Chrome Web Store extensions by keywords in store order, with each listing's developer, users, rating, rating count, short description and store link. Some listings omit developer, users or ratings.
- [wsj.com API: Search Wall Street Journal articles](https://fous.com/methods/wsj.com/search-news.md): Searches public Wall Street Journal headlines and summaries by keyword, newest or most relevant first, optionally within publication dates; podcasts and live-coverage posts are left out.
