SEO

Find page-one rankings with weak CTR

Find the queries and pages that already rank on Google's first page but get fewer clicks than their position should earn, so the fastest wins come from rewriting titles and descriptions instead of building new content.

  • We rank on page one but nobody clicks. Why?
  • Which titles should we rewrite for more clicks?
  • Where are we losing clicks to AI overviews?

The playbook

A page-one ranking that nobody clicks is the cheapest problem in SEO to fix. The ranking work is done; the snippet is losing the click. This playbook finds those rows and sizes the clicks being left on the table.

Steps

  1. Pull query and page rows. google_search_console.query with dimensions: ["query", "page"], a 28-day window ending 3 days ago, rowLimit: 2000.

  2. Keep page one, with real impressions. Filter to average position 1 to 10 and set an impressions floor (200 over 28 days is sensible; state the one you used). Strip branded queries first: their CTR is naturally very high and will distort everything below.

  3. Build the site's own CTR curve. Round position to the nearest integer and take the median CTR of the remaining rows at each position 1 to 10. Use the site's own curve rather than an industry benchmark: a brand-heavy site or one whose results carry rich snippets has a curve of its own, and a generic one will flag the wrong rows.

  4. Flag the underperformers and size them. A row is an underperformer when its CTR is below half the site median at its position. For each, compute missed clicks as (median CTR minus actual CTR) times impressions. Sort by missed clicks descending. This is the priority list.

  5. Rule out SERP features before blaming the snippet. If rows at positions 1 to 3 are underperforming across the board, the query is probably being answered on the page by a featured snippet or AI overview, and no title rewrite will recover it. Run google_search_console.query with dimensions: ["searchAppearance"] over the same window to see how much of the site's visibility carries rich result types, and check the live result for the top few flagged queries with your own browsing.

  6. Compare the snippet to the query. Fetch each flagged page and read its title and meta description. The usual failures: the title leads with the brand instead of the topic, the description is a generic boilerplate, the title promises something different from what the query asks, or the page has no description and Google is picking a bad excerpt.

  7. Report. A table sorted by missed clicks: query, page, position, impressions, clicks, CTR, site median CTR at that position, missed clicks. Then concrete rewrites for the top five, with the target query in the title and a description that answers the intent. Keep the SERP-feature cases in a separate group labelled "cannot be fixed by copy".

Gotchas

  • Never compare CTR across positions. Position 1 and position 8 have different expected CTRs by a factor of ten. The comparison is always within a position band.
  • An average position hides a split. A row "at 3.2" may be position 1 on desktop and 8 on mobile. Add dimensions: ["query", "page", "device"] before diagnosing the biggest rows.
  • Tiny impression counts produce noisy CTRs. Ten impressions and zero clicks is not evidence of anything. Keep the floor.
  • Sitelinks and brand queries look like huge CTR. They are, and they are not opportunities. That is why brand queries are stripped in step 2.
  • Search Console lags 2 to 3 days. End the window 3 days back.

Install

Install Sequel skills into your agent

Pick your app and Sequel installs itself: a one-click link where the client supports it, that client’s own few steps where it doesn’t. The playbooks come with the server: your agent sees that this playbook exists and reads it when a question matches.

Claude, ChatGPT, Cursor, VS Code, Claude Code, Codex, Grok, Muse, dots and any other MCP app

Already have an MCP client?

https://api.sequel.sh/mcp

Add it as a remote (streamable HTTP) server and sign in when prompted. Skills come with it; nothing else to install. Manual setup per client

Choose your app

  • Claude

    One click, opens in the app

  • Cursor

    One click, opens in the app

  • VS Code

    One click, opens in the app

  • ChatGPT

    Turn on developer mode, then add Sequel. About two minutes.

  • Claude Code

    Run one command, then sign in with /mcp.

  • Codex

    Run one command, then sign in.

  • Gemini CLI

    Run one command, then sign in with /mcp auth.

  • Grok

    Add Sequel as a connector and sign in.

  • Grok Bot

    Paste this to the bot. It registers Sequel and asks you to sign in.

  • Muse

    Muse writes its own connector. One message is the whole setup.

  • dots

    Add Sequel in ChatGPT; your dot picks it up with no extra step.

  • OpenCode

    Add Sequel as a remote server from the OpenCode CLI.

  • Other MCP app

    Any client that speaks remote MCP can connect with this URL.

More like this

Other SEO skills

Analyze high-ranking landing pages

See which pages perform best in organic search: the landing pages that earn the most clicks and impressions, the queries behind each one, and how they compare with competitor estimates from Ahrefs.

Audit internal links to important pages

Audit the site's own internal linking: crawl navigation and body links between the site's pages to find valuable pages with too few inbound internal links, orphan pages, and the handful of cross-links that would lift striking-distance rankings.

Audit or draft an llms.txt

Check whether the site has an llms.txt, whether it follows the spec and points at the pages that matter, and if it is missing draft one from the pages Search Console shows people actually find, so AI assistants get a curated map of the site instead of guessing.

Audit redirect chains and loops

Follow every redirect on the URLs Search Console still sends traffic to, on the sitemap, and on backlinked pages, to find chains, loops, redirects to the homepage, and temporary redirects that should be permanent, so link equity and crawl budget stop leaking.

Audit referring domain quality

Grade the domains linking to a site by authority, traffic and link count, spot concentration risk and link-farm patterns, and separate the referring domains that carry weight from the ones that are noise.

Audit titles and meta descriptions

Compare the title and meta description of each top page against the queries it actually ranks for in Search Console, and find missing, duplicate, truncated or misaligned metadata on the pages where a rewrite would earn the most clicks.

FAQ

Frequently asked questions

Why is my click-through rate so low in Search Console?
Low CTR for a given position usually means the title or description does not match what the searcher expected, or a featured snippet is consuming the click. Compare your CTR against the position average: a page at position 3 with 2% CTR where 7% is normal has a title problem.
What is a good CTR in Google Search?
Position 1 averages 25 to 35% for navigational queries and 5 to 15% for informational ones. More important than the absolute number is whether your CTR is above or below the average for your position across similar query types in your own account.
How do I improve a low CTR without changing rankings?
Rewrite the title to include the specific query term and a clear benefit. Write the description to answer the question in one sentence. Add schema markup that enables rich results for your content type.
Does improving CTR affect Google rankings?
CTR is a signal, but its weight is debated. The clearer benefit is more traffic from the same position: a page at rank 4 with 10% CTR gets more clicks than one at rank 3 with 3% CTR. Optimising for CTR is traffic work, not ranking work.
Can an AI agent find my lowest-CTR pages?
Yes. With Search Console connected, the agent pulls query and page data, computes expected CTR by position, flags pages performing below average, and returns a ranked list with title and description comparisons. Sequel provides the connection and the ctr-underperformers playbook.

Put this playbook to work

Connect a source, ask the question, and the agent follows these steps. Free to start.