# The Google tab

> How to read the Google tab: indexing headline, the funnel, why pages aren't indexed with a diagnosis per group, quick wins, and how fresh the data is.

Source: https://seofix.ai/help/google-indexing-tab · Category: Google Search Console · Updated: 2026-10-08

The **Google** tab ("Why isn't Google indexing me?") joins Google Search Console data with your latest SEOFix audit. It shows how many of your pages Google indexes, where pages drop out, why the rest aren't indexed with a fix for each group, and indexed pages that under-perform. Open any audit of a site and choose the **Google** tab. Agents: `get_indexing_summary`, `list_not_indexed`, `get_opportunities`, `get_url_status` and `inspect_urls` (MCP), or `GET /v1/sites/{id}/google…`.

## Before you see data

| What the tab shows | Why | What to do |
|---|---|---|
| The ownership card | The site isn't verified | Verify it. See [Verify site ownership](https://seofix.ai/help/verifying-site-ownership.md). |
| **Connect Search Console to see Google's view** | Verified, but no Search Console connection covers it | **Connect Search Console**. See [Connect Google Search Console](https://seofix.ai/help/connect-google-search-console.md). |
| **Google's first sync is running** | Just connected | Wait. The page updates by itself when the data lands. |
| "Google access was revoked" or "We couldn't reach Search Console" | The connection stopped working | **Reconnect Search Console**. The last synced data stays visible. |

The Google tab and its API endpoints are for verified sites only. Unverified sites get `409 site_not_verified`.

## The headline

- **Indexed by Google**: indexed pages out of the pages SEOFix found, as a count and a percentage, with a 90-day trend and the change since last week.
- **not indexed**: pages Google reported as not indexed. "plus ~N" (marked estimated) adds pages Google hasn't inspected yet that had no impressions in 90 days.
- **Clicks · 28 days** and **Impressions**.
- **Pages with clicks**, and **Inspected by Google so far** with today's inspection budget ("N of M inspections used today").

Counts marked **estimated** include pages Google hasn't inspected yet: those count as indexed when they got impressions in the last 90 days, and as not indexed when they got none.

## The funnel

**The funnel: where your pages drop out** shows five stages. Each stage counts pages that passed every earlier stage, so Indexed counts only pages in your sitemap. If your site has no sitemap, the sitemap stage is left out.

| Stage | Counts |
|---|---|
| Found by SEOFix | Pages your latest audit found |
| In your sitemap | Of those, pages listed in your sitemap |
| Indexed by Google | Of those, pages Google indexes |
| Getting impressions | Of those, pages with impressions in the last 28 days |
| Getting clicks | Of those, pages with clicks in the last 28 days |

If Google indexes pages your sitemap doesn't list, a line under the funnel counts them. Search Console calls them "Indexed, not submitted in sitemap". Add the ones you want found to your sitemap.

## Why aren't my pages indexed?

This panel sorts every not-indexed page by URL pattern into **Worth indexing** and **Low value – keep out of Google**, each group with an action. See [Why aren't my pages indexed?](https://seofix.ai/help/not-indexed-triage.md).

## Why pages aren't indexed, and the fix

This list groups not-indexed pages by Google's reason (the coverage state, exactly as Search Console words it, for example "Crawled - currently not indexed") and by URL template, most pages first. Each group shows:

- **Our diagnosis**: the crawl signals most common in the group, for example "71% share a title with another page". SEOFix shows the top 2 signals that apply to at least 20% of the group's pages.
- **The fix** for Google's reason, plus the fix for each signal.
- **Send to my agent** (copies an instruction for Claude Code with the SEOFix MCP server), **Copy fix prompt** (for Claude Code, Codex or Cursor) and **Share link** (opens this group of the report for anyone on your team).
- **Show URLs** lists the group's pages with their coverage state and crawl issues, each with **Inspect now**.

Diagnosis signals:

| Signal | Means |
|---|---|
| Duplicate title | Shares a title with another page |
| Duplicate content | Duplicates another page's content |
| Thin content | Under 150 words on a 200 page |
| Noindex | Carries a noindex directive |
| Canonical elsewhere | Canonicalises to another URL |
| Deep | 4 or more clicks from the start page |
| Few inbound links | At most 1 internal page links to it |
| Broken | Broken in the crawl (no answer, a fetch error, or 400 and above, not counting firewall blocks) |
| Robots-blocked | Blocked by robots.txt |

### Inspect now

**Inspect now** asks Google's URL Inspection API for a fresh verdict on one URL. Agents can inspect 1–20 URLs at once:

```bash
curl -X POST https://api.seofix.ai/v1/sites/42/google/inspect \
  -H "Authorization: Bearer $SEOFIX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://example.com/jobs/123"]}'
```

Inspections use the property's daily budget, shared with the sync. When it is spent, the error is `budget_exhausted` with `resets_at`, and **Inspect now** comes back when the budget resets. The endpoint allows 10 calls per minute. Inspection shows what Google saw on its last crawl: it does not ask Google to crawl or index the page.

## Quick wins (already indexed, under-performing)

| Card | Which pages | What the card suggests |
|---|---|---|
| Low click-through | At least 100 impressions in 28 days and a CTR below your site's median for the same position band (1–3, 4–7, 8–10, 11–20) | Rewrite their titles and descriptions |
| Almost on page 1 | Average position 8–20 with at least 50 impressions in 28 days | Add internal links and content |
| Canonical mismatch | Pages where Google ignores your canonical and picked another URL | Lists the pages so you can check the canonical |

Each card shows the top 5 pages. `get_opportunities` (MCP) and `GET /v1/sites/{id}/google/opportunities` return up to 50 per card.

## By template

The **By template** table lists each URL template with **Pages**, **Indexed**, **Clicks 28d** and its **Main blocker**.

## How fresh the data is

- The intro line shows "Search data as of (date)" and "Next sync (date)".
- Search analytics (clicks, impressions, CTR, position) cover the 28 and 90 days ending 3 days before the sync, because Google's data lags 2–3 days.
- Syncs run at night in the team owner's time zone: daily on Starter and Growth, weekly on Free. Each sync also inspects more pages, up to the budget (2,000 a day per property on paid plans, 300 per sync on Free).
- Inspection verdicts reflect Google's last crawl of each page. Google re-crawls on its own schedule.
- The crawl side comes from the site's latest finished audit. If you are looking at an older audit, the intro links to the latest one.

## API and MCP

| Data | MCP tool | Endpoint |
|---|---|---|
| Headline, funnel, trend, by template, sync status | `get_indexing_summary` | `GET /v1/sites/{id}/google` |
| Not-indexed groups; with `reason` and `template`, that group's URLs | `list_not_indexed` | `GET /v1/sites/{id}/google/not-indexed` |
| One URL's crawl findings, Google verdict and search performance | `get_url_status` | `GET /v1/sites/{id}/google/url?url=…` |
| Quick wins | `get_opportunities` | `GET /v1/sites/{id}/google/opportunities` |
| Fresh inspection of 1–20 URLs | `inspect_urls` | `POST /v1/sites/{id}/google/inspect` |
| Not-indexed triage | `get_index_triage` | `GET /v1/sites/{id}/index-triage` |

```bash
curl https://api.seofix.ai/v1/sites/42/google \
  -H "Authorization: Bearer $SEOFIX_API_KEY"
```

```json
{
  "as_of": "2026-10-05",
  "sync": {"status": "ok", "synced_at": "2026-10-08T02:41:00Z", "next_at": "2026-10-09T02:40:00Z", "inspections": {"used": 640, "limit": 2000}},
  "indexed": 812,
  "not_indexed": 233,
  "inspected": 1045,
  "estimated_not_indexed": 40,
  "clicks_28d": 5120,
  "impressions_28d": 210400,
  "pages_with_clicks": 388,
  "funnel": {"found": 1500, "in_sitemap": 1320, "indexed": 790, "with_impressions": 610, "with_clicks": 380, "indexed_outside_sitemap": 22, "estimated": true}
}
```

`sync.status` is `not_connected`, `syncing`, `ok`, `revoked` or `error`.

## Related

- [Why aren't my pages indexed?](https://seofix.ai/help/not-indexed-triage.md)
- [Connect Google Search Console](https://seofix.ai/help/connect-google-search-console.md)
- [IndexNow](https://seofix.ai/help/indexnow.md)
