---
title: "Internal linking report | SEO Skill"
description: "Find pages with related search demand that may deserve an internal link to a target URL. Inspect the source page for context and intent before adding anything."
canonical: "https://seoskill.dev/docs/reports/internal-links"
language: "en"
---

# Internal linking report

Find fetched pages whose queries or content overlap with a target URL and which do not already link to it. The list gives you places to review, not permission to force a link into every page.

## 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 fetched pages that may deserve a link to the target.

```
seo internal-links --project example --url https://example.com/page
```

## What you get from this report

Find pages with related search demand that may deserve an internal link to a target URL. Inspect the source page for context and intent before adding anything.

Best for

A sound target page needs better discovery paths or supporting context.

Needs

Search Console page and query evidence

You get

Find pages with related search demand that may deserve an internal link to a target URL. Inspect the source page for context and intent before adding anything.

Use next

Audit one page

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 page and query evidence

Finds pages with returned query wording related to the chosen target topic.

### Fetched source and target pages

Verifies current links, page availability, canonical state, and visible content context.

## Use a different report for these jobs

These jobs need a different report or a manual review.

[

### You need a page brief for the target rather than possible source pages.

Run content optimization for the target URL. It adds the live page structure and its returned Search Console queries so you can review topic coverage before adding links.

Content optimization report

](https://seoskill.dev/docs/reports/content-optimization)

### You need the final anchor text and exact sentence where a link should appear.

No automated report can choose natural wording without editorial context. Use these candidates to open the source and target pages, then place a descriptive link only where it helps the reader and matches the surrounding copy.

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 internal-links --json
```

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

```
seo reports run internal-links --params '{"site":"sc-domain:example.com","targetUrl":"https://example.com/guides/seo","days":90,"limit":15,"checkLimit":40,"minImpressions":25}' --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": "internal-links"
}
```

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

```
{
  "id": "internal-links",
  "params": {
    "site": "sc-domain:example.com",
    "targetUrl": "https://example.com/guides/seo",
    "days": 90,
    "limit": 15,
    "checkLimit": 40,
    "minImpressions": 25
  }
}
```

### 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(
  'internal-links',
  {
  "site": "sc-domain:example.com",
  "targetUrl": "https://example.com/guides/seo",
  "days": 90,
  "limit": 15,
  "checkLimit": 40,
  "minImpressions": 25
},
)

console.log(result)
```

## What to do next

Open both the suggested source page and target page before adding a link. Keep the link only when it helps the reader in that exact context, then recrawl to confirm the relationship was recorded.

1.  01Add one useful contextual link and recrawl the source page.
2.  02Use audit page to verify the target remains indexable and canonical as intended.

## Related reports

[

Audit one URL for technical SEO, metadata, canonicals, schema, links and Search Console queries. See the live evidence before changing the page.

SEO page audit

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

Check sitemap URL status, redirects and access first. Run the full technical SEO crawl only when you need page content, links, metadata and affected URLs.

Sitemap health check and technical site crawl

](https://seoskill.dev/docs/reports/site-crawl)[

Compare matched Search Console periods around a recorded SEO change and keep releases, demand shifts and other confounders beside the result.

SEO change measurement

](https://seoskill.dev/docs/reports/measure-change)

## 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 guidance for crawlable links](https://developers.google.com/search/docs/crawling-indexing/links-crawlable)
