---
name: guide-seo-reports
description: Turn a Google Search Console export into a client-ready monthly SEO report, publish it as a link, and replace it at the same link next month. Web, CLI, API and MCP.
---

# SEO reports from a Search Console export

The [SEO report generator](/tools/seo-report-generator) reads the files Google Search Console gives you when you export the Performance report and writes the monthly report a client expects: a plain-English summary, the numbers against the previous period, top queries and pages, the queries close to page one, and the top rankings that get too few clicks. Two short sections are left for you: what you worked on, and what happens next month.

Building and previewing a report needs no account and stores nothing. Publishing it as a link needs a free account.

## 1. Export from Search Console

1. In Search Console, open the property and go to **Performance → Search results**.
2. Set the date:
   - **Compare** (for example this month against last month) gives per-query and per-page change columns and a "biggest movers" table.
   - The default **Last 3 months** works too. The generator reports the latest *complete* calendar month and compares it with the month before, using the daily data.
3. Click **Export → Download CSV**. You get a zip holding `Queries.csv`, `Pages.csv`, `Countries.csv`, `Devices.csv`, `Dates.csv` and `Filters.csv`.

Upload the zip as it is. Individual CSVs work too — the generator identifies each file by its header row, not its name, so renamed files are fine.

## 2. How the reporting period is chosen

| Export | Period in the report | Comparison |
|---|---|---|
| Compare mode | The periods you exported | Per query, per page and in total |
| Daily data covering two full months | Latest complete calendar month | The month before |
| Daily data, 56+ days, no full month | Last 28 days | The 28 days before |
| Daily data, shorter | The whole range | None |
| No `Dates.csv` | Sum of the listed rows | None (and totals run low — see below) |

Totals come from `Dates.csv` because Search Console hides rarely searched queries for privacy: the query table never adds up to the site total. Average position is weighted by impressions, which is how Search Console's own average behaves.

## 3. Brand terms

Add your client's brand names (comma-separated) to split **branded** from **non-branded** clicks — usually the number a client actually cares about, since branded searches would find them anyway. A query counts as branded when it contains any of the terms, with or without spaces. Branded queries are also left out of the low click-through list.

## 4. Publish and update

Publishing puts the report in a project called **SEO reports** in your workspace (created on first use). New reports are:

- **unlisted and never search-indexed** — a client report must not turn up in Google;
- on the default **comment** access, so the client can comment on a specific line;
- named `<site>-<yyyy-mm>` (for example `acme-com-2026-08`), with `-2`, `-3` added if that slug is taken.

Next month, choose **Replace** in the publish picker (web), or pass `--share` (CLI) / `share` (API, MCP). The link the client already has shows the new report, and the previous one stays in [version history](/docs/versions). [Analytics](/docs/analytics) show whether the client opened it.

On the Pro plan, reports are served from your [custom domain](/docs/custom-domains); your [logo, colours and footer](/docs/branding) apply on every plan. See [white-label reporting for SEO agencies](/for/seo-agencies).

## 5. From the CLI

```bash
# Preview: prints the markdown (no sign-in needed)
anchorify seo-report ~/Downloads/acme.com-Performance-on-Search.zip

# Publish a new report; prints only the URL
anchorify seo-report export.zip --client "Acme Plumbing" --brand acme --publish

# Next month: replace last month's report at the same link
anchorify seo-report export.zip --publish --share acme-com-2026-08
```

Flags: `--site`, `--client`, `--brand`, `--out <file.md>`, `--json`, `--publish`, `--share <ref>`, `--slug`, `--project`, `--access`. See [`anchorify seo-report`](/docs/cli).

## 6. From the API or an agent

`POST /api/v1/tools/seo-report` takes the same files as multipart `file` fields. Without `publish=true` it returns the report as JSON; with it, it publishes and returns the URL. Full shape in the [API reference](/docs/api). The MCP server exposes it as the `anchorify_seo_report` tool ([MCP setup](/docs/agents/mcp)).

## Limits

- Up to 10 files and 20 MB per upload; a zip may expand to at most 25 MB. A real export is usually well under 1 MB.
- Previews are rate-limited per IP; publishing uses the normal write limit.
- The report reads Search Console data only. Add GA4 conversions, rankings or anything else by editing the report after publishing — it is an ordinary document.
