How do I make a monthly keyword ranking report?

Pull the same Search Console Performance report each month: same length of date range, Queries and Pages tabs, web search type. Export both, compare with last month on clicks, impressions and average position, and note what moved. Search Console shows averages for queries that already got impressions, so use a dedicated rank checker only if you need positions checked every day.

By SEOBolt. Published , updated .

Why this happens

A ranking report is supposed to answer one question a month: did the pages we care about get more or less visible, and why? The reports people build to answer it often fail in one of two ways. They track a fixed list of keywords with a third-party checker and miss every query the site actually earns traffic from, or they paste raw Search Console numbers into a slide with no comparison and no conclusion.

Search Console is the most useful free source because the numbers come from Google itself. It has limits you should state in the report. Position is an average of the topmost result from your site, per query or page, and results are personalized by time, place and device, so your own search may differ. Data arrives after a delay of a couple of days. And only queries that earned impressions appear, so a keyword you target but never show for is invisible.

The fix is a repeatable routine: identical settings every month, a stored copy of each month's export, and a short written interpretation. The routine takes under an hour for a small site.

How to build it, step by step

This uses only Search Console and a spreadsheet.

  1. 1. Verify the right property

    Use a domain property if you can, so all subdomains and protocols are included. Confirm the report's search type is Web and that you are not mixing image or video traffic into the totals.

  2. 2. Fix the date range

    Use a full calendar month (for example 1 to 31 October) and compare it with the previous full month. Do not use "last 28 days" for a monthly report; the windows drift and months with different numbers of weekends are not comparable.

  3. 3. Export queries and pages separately

    Select all four metrics (clicks, impressions, CTR, average position), open the Queries tab and click Export, then repeat on the Pages tab. Google notes that values shown as ~ or - in the report are downloaded as zeros, so treat zeros with care.

  4. 4. Store each month in its own sheet tab

    Name tabs by month and keep the files. Search Console is not an archive you can rely on forever, so your own stored exports are what make year-over-year comparison possible later.

  5. 5. Compare with last month

    Join the two months on query (and on page) and compute the change in clicks, impressions and position. Sort by absolute change in clicks. The top 10 gainers and top 10 losers are usually the whole story.

  6. 6. Split brand from non-brand

    Filter queries that contain your brand name and report them separately. Brand queries measure awareness; non-brand queries measure whether SEO is working.

  7. 7. Flag queries near page one

    List queries with decent impressions and an average position between about 8 and 20. They are the cheapest wins next month: improve the page that ranks, add internal links, and check the title.

  8. 8. Write five lines of interpretation

    What changed, the most likely reason (a page you edited, a seasonal pattern, a Google update you can verify), what you will do next month, and what you will not touch. A report without an action list is just a table.

What goes in the report and where it comes from

Sections of a monthly ranking report and their sources (Search Console Help, read 13 November 2026)
SectionSourceCaveat to state in the report
Total clicks and impressionsPerformance chart, web search typeChart totals aggregate by property; table rows aggregate by page or query, so totals can differ slightly
Top queries, month over monthPerformance, Queries tab exportAverage position over the period, not a rank check; only queries with impressions appear
Top pages, month over monthPerformance, Pages tab exportPosition is per page; pages can rank for many queries
Brand versus non-brandQuery filter on your brand nameBrand misspellings need their own filter
Next-month actionsYour own analysisTie each action to a query or page in the data

When to use SEOBolt for this

The export and the monthly routine stay in Search Console and your spreadsheet. SEOBolt does not run scheduled rank checks or produce a monthly export; it has no live rank checker of its own. Where it helps is the interpretation: seo_gsc_content_decay compares the last 28 days with the window before (and optionally the same window last year) and lists pages that lost clicks with a cause (ranking loss, demand drop or CTR drop) and a refresh task, and seo_gsc_content_opportunities lists queries you already rank for but do not target. Both need your Search Console connected and a plan that includes the integration; /pricing shows which.

MCP tools involved: seo_gsc_content_decay, seo_gsc_content_opportunities, seo_gsc_low_ctr.

When SEOBolt is not the right tool

If you must report positions every day for a fixed keyword list, including keywords with no impressions yet or competitors' positions, use a dedicated rank tracker; Search Console cannot show those and SEOBolt does not either.

Prompt to give your AI assistant

With the SEOBolt MCP server connected (setup), copy this into Claude, ChatGPT, Cursor or Gemini CLI:

Assign to SEOBolt: for sc-domain:example.com run seo_gsc_content_decay with compareYear true and seo_gsc_low_ctr, then draft the interpretation section of a monthly ranking report: the five biggest losers with causes and the five queries to work on next month. These tools only read data. Show me what you did so I can approve the plan.

Frequently asked questions

Can I get daily keyword positions from Search Console?

The Performance report can show data per day, but position is an average for queries that earned impressions. It is not a rank check for a keyword list you choose.

How much history does Search Console keep?

The Performance report shows the last 16 months, which Google's traffic-drop guide uses as its longest range. To keep more, export regularly or retrieve data through the API or bulk export.

Why do my report totals not match the table?

Google explains the chart aggregates by property while the table aggregates by page or query, so totals can differ. State which one you quote.

How often should I report?

Monthly is enough for most small sites. Weekly figures are noisy on low traffic and encourage reacting to normal fluctuation.

Sources

Related