# Scheduled website performance regression monitor

**Use case:** 

Store a Crawlee page baseline and flag score drops or slower lab metrics on recurring Apify Task runs using persistent key-value state.

## Input

```json
{
  "urls": [
    {
      "url": "https://crawlee.dev/docs/introduction"
    }
  ],
  "strategies": [
    "mobile"
  ],
  "categories": [
    "performance",
    "accessibility",
    "best-practices",
    "seo"
  ],
  "usePageSpeedApi": true,
  "lighthouseFallback": true,
  "cacheTtlMinutes": 0,
  "regressionThreshold": 5,
  "maxItems": 1
}
```

## Output

```json
{
  "url": {
    "label": "URL",
    "format": "string"
  },
  "strategy": {
    "label": "Device",
    "format": "string"
  },
  "source": {
    "label": "Source",
    "format": "string"
  },
  "checkedAt": {
    "label": "Checked at",
    "format": "string"
  },
  "scores": {
    "label": "Scores",
    "format": "object"
  },
  "labMetrics": {
    "label": "Lab metrics",
    "format": "object"
  },
  "fieldMetrics": {
    "label": "Field metrics",
    "format": "object"
  },
  "regression": {
    "label": "Regression",
    "format": "object"
  },
  "opportunities": {
    "label": "Opportunities",
    "format": "array"
  },
  "warnings": {
    "label": "Warnings",
    "format": "array"
  }
}
```

## About this Actor

This example demonstrates how to use [PageSpeed Insights Batch Monitor](https://apify.com/automation-lab/pagespeed-insights-monitor) with a specific input configuration. Visit the [Actor detail page](https://apify.com/automation-lab/pagespeed-insights-monitor) to learn more, explore other use cases, and run it yourself.