---
title: "Programmatic SEO patterns | SEO Skill"
description: "Find repeatable searches in Search Console, then check planned comparisons, tools, templates and location pages to see what exists and what may be missing."
canonical: "https://seoskill.dev/docs/reports/pseo-patterns"
language: "en"
---

# Programmatic SEO patterns

See the types of searches where your site already appears in Google, such as comparisons, alternatives, calculators, templates and location pages. If you already have a list of topics you want to cover, the report checks which pages exist, which ideas overlap and which are still missing.

## Install and run the report

Install the CLI once, then run `seo start` to connect your site and Google data. After setup you can run this report yourself or ask your agent to run it.

Install the SEO CLI globally.

```
npm i -g seo
```

Run setup after installation.

```
seo start
```

Find repeatable searches in your own Search Console data. Add a planned topic list later if you have one.

```
seo reports run pseo-patterns --params '{"site":"sc-domain:example.com"}' --json
```

## What you get from this report

Find repeatable searches in Search Console, then check planned comparisons, tools, templates and location pages to see what exists and what may be missing.

Best for

You want to find searches for alternatives, comparisons, calculators, templates, examples, integrations, locations, audiences, conversions, or other repeatable topics.

Needs

Search Console searches and pages

You get

Find repeatable searches in Search Console, then check planned comparisons, tools, templates and location pages to see what exists and what may be missing.

Use next

Research programmatic SEO opportunities

Every report follows the same rules for missing data and outside estimates.[See how report data works](https://seoskill.dev/docs/reports#how-report-data-works).

## What you need before you run it

The report uses the information below. Optional sources are only used when you ask for them.

### Search Console searches and pages

Shows the searches where your site appeared, the pages Google returned, and their clicks, impressions, and average position.

### Sitemap and existing pages

Checks which suggested pages already exist and finds repeated sections of the site. A URL missing from the sitemap is treated as a clue, not proof that the page does not exist.

### Optional list of topics to check

You can provide a list, pairs such as Product A versus Product B, or combinations such as one tool for several file types. The report checks only the topics you supply.

### Optional search estimates and current results

Adds search volume estimates and up to three current result checks when you ask for them. These provider calls are off by default.

## Use a different report for these jobs

These jobs need a different report or a manual review.

[

### A repeated group of pages already performs in search and you want deeper keyword and competitor research.

Use the opportunity report to research related keywords, current results, competitor pages, and the data needed to build more useful pages.

Programmatic SEO opportunities

](https://seoskill.dev/docs/reports/pseo-opportunities)[

### You need to check the technical health, content, search performance, or Google index status of pages that already exist.

Run the programmatic SEO audit on a representative sample before changing the page template.

Programmatic SEO audit

](https://seoskill.dev/docs/reports/pseo-audit)

### You want the report to write and publish every possible page.

Use this report to decide what deserves a page. Start with a small sample and check the source data, usefulness, duplicate risk, internal links, and crawl setup before publishing more.

Needs more evidence

## Use the report with an agent or in code

The command above is enough for most work. These options let an agent, script or application run the same report with explicit input and structured output.

### CLI

Use the report catalog when an agent, script or CI job needs predictable JSON instead of the normal terminal output. Check the current input first, then run the report with the validated parameters.

Check the current input before the agent or script runs the report.

```
seo reports describe pseo-patterns --json
```

Once the input is valid, run the report through the report catalog.

```
seo reports run pseo-patterns --params '{"site":"sc-domain:example.com","days":90,"patternSets":[{"id":"format-utilities","kind":"utility","shape":"matrix","axes":[{"id":"tool","values":["reading time calculator","word counter"]},{"id":"format","values":["article","essay"]}],"queryTemplates":["{tool} for {format}"],"pathTemplate":"/tools/{tool}/{format}"}],"candidateLimit":100,"includeExternal":false}' --json
```

### MCP

An MCP agent follows the same two-step flow. It inspects the current schema, fills the required fields and only then runs the report.

Ask the MCP server for the current report input.

```
{
  "id": "pseo-patterns"
}
```

Run the report after the agent has checked and filled the input.

```
{
  "id": "pseo-patterns",
  "params": {
    "site": "sc-domain:example.com",
    "days": 90,
    "patternSets": [
      {
        "id": "format-utilities",
        "kind": "utility",
        "shape": "matrix",
        "axes": [
          {
            "id": "tool",
            "values": [
              "reading time calculator",
              "word counter"
            ]
          },
          {
            "id": "format",
            "values": [
              "article",
              "essay"
            ]
          }
        ],
        "queryTemplates": [
          "{tool} for {format}"
        ],
        "pathTemplate": "/tools/{tool}/{format}"
      }
    ],
    "candidateLimit": 100,
    "includeExternal": false
  }
}
```

### TypeScript

Install the package in a Node 22 project when your application needs to run the report directly. The result includes the same evidence, warnings and limits returned through the CLI and MCP server.

Add the SEO package to your project.

```
npm install seo
```

Run the report from your TypeScript application.

```
import { executeReport } from 'seo/mcp'

const result = await executeReport(
  'pseo-patterns',
  {
  "site": "sc-domain:example.com",
  "days": 90,
  "patternSets": [
    {
      "id": "format-utilities",
      "kind": "utility",
      "shape": "matrix",
      "axes": [
        {
          "id": "tool",
          "values": [
            "reading time calculator",
            "word counter"
          ]
        },
        {
          "id": "format",
          "values": [
            "article",
            "essay"
          ]
        }
      ],
      "queryTemplates": [
        "{tool} for {format}"
      ],
      "pathTemplate": "/tools/{tool}/{format}"
    }
  ],
  "candidateLimit": 100,
  "includeExternal": false
},
)

console.log(result)
```

## What to do next

Start with the search types and real searches the report found. If you supplied a topic list, check what already exists, resolve any overlap and test a small useful group before creating more pages.

1.  01Open the current pages behind the strongest ideas and check whether they already answer the same search.
2.  02Confirm that the source data is reliable and that each page can offer something genuinely useful. Plan what happens when data is missing, how pages link together, and how search engines will find them.
3.  03Publish a small representative set first. Check the live pages with the programmatic SEO audit before creating more.

## Related reports

[

Research ways to expand an existing programmatic page system with Search Console, keyword ideas, current results and competitor pages before building more.

Programmatic SEO opportunities

](https://seoskill.dev/docs/reports/pseo-opportunities)[

Audit programmatic SEO templates, repeated URL patterns and Search Console demand. Review representative pages before changing a whole template.

Programmatic SEO audit

](https://seoskill.dev/docs/reports/pseo-audit)[

See which pages carry a domain's estimated search footprint, which URL patterns repeat and how matching pages on your own site perform in Search Console.

Organic ranking pages report

](https://seoskill.dev/docs/reports/ranking-pages)[

Compare search volume, trends, CPC, competition, difficulty, intent and result counts for a list of keywords in one country and language before deeper research.

Keyword metrics report

](https://seoskill.dev/docs/reports/keyword-metrics)

## Sources used by this report

These primary sources define the provider data or search controls used by the result.

-   [Search Console Search Analytics API guidance](https://developers.google.com/webmaster-tools/v1/how-tos/search_analytics)
-   [Google sitemap guidance](https://developers.google.com/search/docs/crawling-indexing/sitemaps/overview)
-   [DataForSEO keyword overview API reference](https://docs.dataforseo.com/v3/dataforseo_labs-google-keyword_overview-live/)
-   [DataForSEO live Google SERP API reference](https://docs.dataforseo.com/v3/serp-google-organic-live-advanced/)
