# What Performance Metrics Does OpenSEO Track? A Technical Deep Dive

> Discover OpenSEO performance metrics. Track Google Search Console data like clicks and impressions, and analyze Core Web Vitals from Lighthouse audits. Optimize your SEO now.

- Repository: [Every App/open-seo](https://github.com/every-app/open-seo)
- Tags: deep-dive
- Published: 2026-09-08

---

**OpenSEO tracks search performance metrics via Google Search Console (clicks, impressions, CTR, and average position) and page-level Core Web Vitals through Lighthouse audits (Time to Interactive, Largest Contentful Paint, Cumulative Layout Shift, and more).**

The open-source SEO platform OpenSEO (every-app/open-seo) aggregates real-time search analytics and technical performance data to power its AI-driven optimization tools. Understanding what performance metrics for OpenSEO are available helps developers and SEO professionals leverage live data instead of estimates when building automated workflows.

## Google Search Console Performance Metrics

When a project connects to Google Search Console, OpenSEO reads live search-performance signals directly via the `get_search_console_performance` tool. These metrics provide a real-time view of how a site is ranking in Google search results.

### Core Search Analytics

The `get_search_console_performance` function implemented in [`src/server/mcp/tools/search-console-tools.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/tools/search-console-tools.ts) retrieves four primary search metrics:

- **Clicks**: The total number of times users clicked a search result for a specific query or page.
- **Impressions**: The count of how many times a result appeared in Google search results.
- **CTR (Click-Through Rate)**: Calculated as Clicks ÷ Impressions, expressed as a percentage.
- **Average Position**: The mean ranking position across all impressions for a given query or URL.

These fields are explicitly documented in the privacy policy at [`web/content/legal/privacy.md`](https://github.com/every-app/open-seo/blob/main/web/content/legal/privacy.md) under the search-performance section, confirming the exact data accessed when users authorize GSC access.

### URL Inspection Results

Beyond aggregate statistics, OpenSEO retrieves granular crawl and indexing information for individual URLs. This includes last crawl dates, current index status, and mobile usability status, providing technical SEO context alongside traffic metrics.

## Lighthouse Core Web Vitals Metrics

For technical page performance, OpenSEO triggers Lighthouse audits via the `run_site_audit` function. When `runLighthouse: true` is specified, the platform stores metrics defined in [`src/server/lib/lighthouseStoredPayload.ts`](https://github.com/every-app/open-seo/blob/main/src/server/lib/lighthouseStoredPayload.ts). The key performance indicators include:

- **Time to Interactive (TTI)**: The time until the page becomes fully responsive to user input.
- **First Contentful Paint (FCP)**: The timestamp when the first DOM element renders on screen.
- **Speed Index**: A measure of how quickly visual content is displayed during page load.
- **Largest Contentful Paint (LCP)**: The render time of the largest visible content element.
- **Cumulative Layout Shift (CLS)**: A quantified measure of visual stability, tracking unexpected layout movements.

## Retrieving Performance Metrics Programmatically

According to the every-app/open-seo source code, both GSC and Lighthouse data are surfaced to agents via specific tool implementations, enabling downstream skills to base decisions on actual, measurable performance.

### Querying Search Console Data

To fetch live search performance data, invoke the `get_search_console_performance` tool with appropriate dimensions and filters:

```typescript
// Retrieve GSC performance grouped by query and page
const gsc = await get_search_console_performance({
  dimensions: ["query", "page"],
  rowLimit: 500,
  lookbackDays: 30
});

console.log(gsc.rows);
// [{ query, page, clicks, impressions, ctr, position }, …]

```

### Running Lighthouse Audits

For Core Web Vitals analysis, first trigger an audit, then retrieve the stored payload:

```typescript
// Execute Lighthouse audit for a specific URL
await run_site_audit({ 
  url: "https://example.com", 
  runLighthouse: true 
});

// Fetch the audit results including metrics
const audit = await get_audit_pages({ url: "https://example.com" });
console.log(audit.lighthouse?.metrics);
// { timeToInteractive, firstContentfulPaint, speedIndex, largestContentfulPaint, cumulativeLayoutShift, … }

```

## Key Implementation Files

The performance metrics are defined and exposed through the following source files:

- **[`src/server/mcp/tools/search-console-tools.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/tools/search-console-tools.ts)**: Implements the `get_search_console_performance` API wrapper that queries Google Search Console and returns clicks, impressions, CTR, and position data.

- **[`src/server/lib/lighthouseStoredPayload.ts`](https://github.com/every-app/open-seo/blob/main/src/server/lib/lighthouseStoredPayload.ts)**: Defines the TypeScript schema for stored Lighthouse metrics, ensuring type safety for Core Web Vitals data.

- **[`web/content/legal/privacy.md`](https://github.com/every-app/open-seo/blob/main/web/content/legal/privacy.md)**: Lists the exact performance data (clicks, impressions, average position) accessed when users connect their GSC accounts.

- **[`plugins/openseo/skills/seo-coach/SKILL.md`](https://github.com/every-app/open-seo/blob/main/plugins/openseo/skills/seo-coach/SKILL.md)**: Guides agents to prefer live GSC data for performance insights rather than static estimates.

- **[`plugins/openseo/skills/seo-audit/SKILL.md`](https://github.com/every-app/open-seo/blob/main/plugins/openseo/skills/seo-audit/SKILL.md)**: Documents when to enable Lighthouse (`runLighthouse: true`) and how to interpret audit metrics for technical SEO recommendations.

## Summary

- OpenSEO aggregates **search performance metrics** (clicks, impressions, CTR, position) directly from Google Search Console via the `get_search_console_performance` tool.
- **Core Web Vitals** and technical page metrics are captured through Lighthouse audits stored according to the schema in [`lighthouseStoredPayload.ts`](https://github.com/every-app/open-seo/blob/main/lighthouseStoredPayload.ts).
- **URL Inspection** provides crawl and indexing status for individual pages, complementing traffic analytics.
- The platform exposes these metrics through TypeScript functions that enable downstream AI skills to make data-driven SEO decisions based on actual measurable data rather than estimates.

## Frequently Asked Questions

### What search metrics does OpenSEO pull from Google Search Console?

OpenSEO retrieves **clicks**, **impressions**, **CTR**, and **average position** via the `get_search_console_performance` function implemented in [`src/server/mcp/tools/search-console-tools.ts`](https://github.com/every-app/open-seo/blob/main/src/server/mcp/tools/search-console-tools.ts). These metrics provide real-time visibility into how pages rank and perform in Google search results, as explicitly listed in the privacy documentation.

### Can OpenSEO track Core Web Vitals like Largest Contentful Paint?

Yes. When Lighthouse auditing is enabled (`runLighthouse: true`), OpenSEO captures **Largest Contentful Paint**, **Time to Interactive**, **Cumulative Layout Shift**, and other Core Web Vitals. These metrics are stored according to the schema defined in [`src/server/lib/lighthouseStoredPayload.ts`](https://github.com/every-app/open-seo/blob/main/src/server/lib/lighthouseStoredPayload.ts) and retrieved via `get_audit_pages` for technical performance analysis.

### How does OpenSEO handle privacy for performance data?

The platform only accesses the specific performance fields documented in [`web/content/legal/privacy.md`](https://github.com/every-app/open-seo/blob/main/web/content/legal/privacy.md), which includes clicks, impressions, and average position data. This ensures compliance by transparently declaring exactly what search performance data is read when users connect their Google Search Console accounts.

### What is the difference between GSC metrics and Lighthouse metrics in OpenSEO?

**GSC metrics** (clicks, impressions, CTR, position) measure search visibility and user engagement from Google's perspective, reflecting how often users see and click results. **Lighthouse metrics** (FCP, LCP, CLS, TTI) measure technical page performance and user experience from the browser's perspective, indicating how fast and stable the page renders. OpenSEO uses both data sources to provide comprehensive SEO analysis.