- A keyword audit lists every search your site shows up for, the page Google ranks for each, and one action per keyword: keep, improve, merge, create or drop.
- Use Search Console as the source of truth. It is Google's own record of your impressions, clicks and average position, not an estimate.
- Export Queries and Pages for the last 3 months, then pair them, so every keyword has one ranking URL next to it.
- Two of your pages sharing one query's impressions is keyword cannibalization; one page with no query that earns clicks is a gap. Both have standard fixes.
- Re-run the audit every quarter, and audit the keyword list you track too: drop keywords with no impressions, add the queries that already bring clicks.
What is a keyword audit?
A keyword audit is a review of every search your website already shows up for, which page ranks for each one, and what to do about it. A good website keyword audit ends with a short list of actions: pages to improve, pages to merge, pages to create, and keywords to stop chasing. It is different from keyword research, which looks for searches you do not rank for yet. Audit first, because the cheapest wins are usually in searches Google already connects with your site.
An SEO keyword audit answers four questions:
- Rankings: which queries bring impressions and clicks, and at what average position?
- Mapping: which page ranks for each query, and is it the page you want?
- Cannibalization: where do two or more of your pages split one query?
- Gaps: which topics bring impressions but no page that earns clicks, and which topics have no page at all?
If you want a living document to keep after the audit, our guide to building a master keyword list turns the output of this audit into one sheet with one URL per keyword.
What data you need for a keyword audit
Google Search Console is the primary source, because it is the only one that records what Google actually showed for your site. Third-party rank databases estimate rankings from a sample of keywords; Search Console reports every query that earned an impression, minus a privacy filter described below.
Data sources for a keyword audit
| Source | What it gives you | Use it for |
|---|---|---|
| Search Console → Performance | Queries and pages with clicks, impressions, click rate and average position | Rankings, mapping, cannibalization |
| Search Console → URL Inspection | Index status, your declared canonical and the canonical Google chose | Checking a page you plan to merge or redirect |
| A site crawl | Every page's title, H1, status code and canonical | Pages with no queries at all, duplicate titles |
| Google Ads Keyword Planner | Estimated monthly searches | Sizing gaps you do not rank for yet |
Step 1: export your queries and pages from Search Console
Open Performance → Search results, set the date range to the last 3 months, tick all four metrics and export the Queries and Pages tables. Three months smooths out weekly noise but is recent enough to reflect your current pages.
Know the limits before you trust the totals:
- 1,000 rows per export. Google's deep dive on Performance data says the interface exports at most 1,000 rows. Larger sites need the Search Analytics API or the Looker Studio connector, which go up to 50,000 rows per day, per site, per search type.
- Anonymized queries are missing from the table. Queries searched by very few people are left out of the rows for privacy but still counted in the chart totals, so your query rows will add up to less than the total clicks. That is normal.
- Queries and pages are counted differently. The Performance report help says the Queries table aggregates by property, while the Pages table aggregates by page. Two of your pages showing for one search count as one impression on the Queries tab and two on the Pages tab.
Step 2: map each keyword to the page that ranks
For every query worth keeping, write down the page Google ranks for it. That page-per-keyword pairing is the core of the audit; everything else is a decision about it.
-
Start with your top queries
Sort the Queries export by impressions. The top 100 to 200 rows usually cover most of your search visibility on a small or medium site.
-
Find the ranking page for each
In the Performance report, click a query, then switch to the Pages tab. The pages listed are every URL that appeared for that query, with its own clicks and position. With the API you can request the query and page dimensions together and get the pairs in one file.
-
Mark the intended page
Next to the ranking page, write the page you want to rank. When they differ, the wrong page is ranking. That is usually a sign of weak internal links to the right page, or of two pages covering the same topic.
Step 3: sort every keyword into a position band
Average position tells you which kind of work a keyword needs, so group your keywords into bands before deciding anything. Remember that Search Console's position is an average over the date range, not a live rank.
Position bands and the usual action
| Average position | What it means | Usual action |
|---|---|---|
| 1 to 3 | Already at the top | Defend: keep the page accurate and fresh; check its click rate |
| 4 to 7 | Page one, below the fold | Improve the title and description; add what the top results cover |
| 8 to 20 | The edge of page one, or page two | Quick win: strengthen the ranking page and link to it from related pages |
| Over 20 | Google connects the topic with your site, but no page answers it well | Build a page for it, or fold it into a better page |
| Impressions, no clicks at positions 1 to 5 | People see you and choose someone else | Rewrite the title and meta description; check what else is on the results page |
Step 4: find keyword cannibalization
Keyword cannibalization is when two or more of your pages each take a real share of one query's impressions, so neither ranks as well as one strong page would. Find it on the Pages tab of each important query: if two URLs both show meaningful impressions within the top 20, they compete.
Not every overlap is a problem. Skip these:
- Brand queries. Two results for your own name take up more of the results page, which is good.
- One page that already dominates. If one URL holds most of the impressions and the other appears once in a while, there is nothing to fix.
- Fragment rows. Search Console can report
/page/#sectionseparately from/page/. They are one page.
When two pages genuinely compete, pick one as the main page and choose one fix:
- Merge and redirect. Move the useful parts of the weaker page into the main one, then redirect the weaker URL with a permanent redirect. Google's canonicalization guide calls a redirect the strongest signal for which URL should be canonical.
- Canonical. If both pages must stay live, for example two near-identical product variants, point the duplicate at the main page with
rel="canonical". - Re-target. If the pages serve different intents, rewrite the weaker one for its own query, change its title and H1, and link from it to the main page with the main query as anchor text.
Before redirecting, run the main page through URL Inspection to confirm it is indexed and that Google picked it as its own canonical.
Get the audit done for you every weekMrKeyword reads your Search Console data and flags competing pages, page-two keywords and topics with no page, with the evidence behind each.
Start freeStep 5: find keyword gaps
A keyword gap is a topic with search demand where no page of yours earns clicks. There are two kinds, and they need different evidence.
- Gaps you can already see. Queries with impressions at an average position beyond 20, or where the best page earns almost no clicks. Google is already testing your site for them; a page written for that search usually does better than the page that ranks by accident.
- Gaps you cannot see yet. Topics your customers search that bring you no impressions at all. Find them in the pages your competitors publish, in the questions customers ask your sales or support team, and in a keyword research tool for search volume.
Also check the reverse: pages from your crawl that do not appear in the Pages export at all. A page with no impressions in 3 months is either not indexed, not targeted at anything people search, or duplicating another page.
Step 6: check titles and headings on the ranking pages
For each page you keep, check that its title and H1 name the keyword it is meant to win, in plain words, once. Google's title link guidance asks for a distinct, descriptive title on every page, and warns against keyword stuffing and near-identical boilerplate titles. Two pages with nearly the same title are often the cannibalization pair from Step 4.
Do not rewrite a page to repeat the keyword. Google's SEO Starter Guide says keyword stuffing is against its spam policies, and that Google's language matching relates a page to many wordings without you listing every one. Cover the questions behind the query instead.
Step 7: decide one action per keyword
Finish the audit by giving every keyword exactly one action and one page. A keyword audit without decisions is just a spreadsheet.
Keyword audit decision table
| Finding | Action |
|---|---|
| Top 3, steady clicks | Keep Refresh facts, protect internal links |
| Page one, low click rate | Improve Rewrite title and description |
| Position 8 to 20, real impressions | Strengthen Expand the ranking page, add internal links |
| Two pages split the query | Merge Pick one page; redirect, canonicalize or re-target the other |
| Wrong page ranks | Re-point Link to the right page from the wrong one and from related pages |
| Impressions beyond position 20, no page earns clicks | Create Write a page for that search |
| Irrelevant to your business | Ignore Do not chase it |
Then record the date of each change. Search Console needs a few weeks of new data before you can compare before and after.
How to conduct an SEO keyword audit on a single page
To audit one page, filter Search Console to that URL and read its Queries tab: that is the full list of searches the page shows up for. Then work through five checks.
-
Filter to the page
In Performance, add a filter: Page → URL is exactly the page. Use the last 3 months.
-
Find its main keyword
Sort the Queries tab by impressions. The top non-brand query is what Google thinks the page is about. If that is not what you wrote it for, the title, H1 and opening paragraph need to say so more clearly.
-
Check the long tail
Queries further down the list are the questions readers came with. Any with real impressions and a weak position are sections the page should answer directly.
-
Check for a rival page
Click the main query, then the Pages tab with the page filter removed. If another of your URLs also takes impressions for it, you have a cannibalization pair.
-
Check click rate
A high position with few clicks points at the title and description, or at a results page full of ads and answers. Search the query yourself to see which.
How to audit the keywords you track
A keyword tracking audit checks that your rank tracker follows the keywords that matter, each against the page meant to rank. Rank tracking lists drift: people add keywords once and never remove them.
- Drop dead keywords. A tracked keyword with no impressions for 3 months is not one Google shows you for. Keep it only if you are building a page for it.
- Add what already works. Compare your tracked list with the Queries export. Queries that bring clicks but are not tracked are blind spots.
- Set a target page for each keyword. Then any day a different URL ranks is visible, and that is usually Step 4's cannibalization showing up early.
- Tag by topic. Tags let you read movement by topic, not one keyword at a time.
Repeat the full audit quarterly, and after any site migration, redesign or big batch of new pages.
How MrKeyword runs a keyword audit from your Search Console
MrKeyword reads your connected Search Console property, backfilling up to 16 months on the first sync, and runs most of this audit as reports you can open any day.
- Organic Rankings lists every query you rank for with its position change over 7, 28 or 90 days, labelled New, Lost, Improved or Declined. Top Pages lists every page with its ranking keywords and top keyword.
- Keyword Strategy groups your queries from the last 28 or 90 days into topics, names the page that wins each topic, and labels it Quick win (position 8 to 20 with at least 100 impressions), Defend, Improve clicks, Needs a page or Watch, with one next step: merge competing pages, create a page, or strengthen the page that ranks.
- This Week, the SEO opportunities inbox, flags pages competing for one query. It skips brand queries, search operators and overlaps where one page already holds 80% or more of the impressions, and folds
#sectionrows into their page. - Rank Tracking lets you set the page each keyword should rank with and shows a Wrong page badge when Google ranks a different URL. Tracked keywords can carry tags.
- The site audit crawls your pages for the title, heading and canonical problems from Step 6.
For gaps you cannot see in Search Console yet, keyword research shows search volume from Google Ads Keyword Planner. See pricing for the limits on each plan.
What MrKeyword does not do
- It does not scrape Google or estimate your own rankings from a third-party database. Positions are Search Console and Bing averages over a period, not a live rank at one moment.
- It cannot see queries Search Console anonymizes. Those clicks are in your totals but in no keyword row, in MrKeyword or anywhere else.
- It does not merge, redirect or rewrite pages for you. It shows which pages compete and suggests which to keep; you make the change.
- Its topic grouping matches shared words and a built-in table of related terms, not an AI model, so occasionally two unrelated queries share a group. Read the queries before acting.
Questions and answers
Keyword audit questions
What is a keyword audit in SEO?
A keyword audit is a review of every search a website already shows up for, the page that ranks for each, and one action per keyword: keep, improve, merge, create or ignore. It covers rankings, keyword-to-page mapping, cannibalization and gaps.
How do I audit the keywords my website ranks for?
In Google Search Console, open Performance, set the last 3 months, and export the Queries and Pages tables. Pair each important query with the page that ranks for it, sort the keywords into position bands, then check for pages that split one query and for topics no page earns clicks for.
How often should I do a keyword audit?
Once a quarter is enough for most sites, plus after a migration, a redesign or a large batch of new pages. Search Console data needs a few weeks to show the effect of each change.
How do I find keyword cannibalization in Search Console?
Click an important query in the Performance report and open the Pages tab. If two or more of your URLs each take a meaningful share of its impressions within the top 20 positions, they compete. Brand queries, and cases where one page holds nearly all the impressions, are not a problem.
Why don't my Search Console query rows add up to the total clicks?
Search Console leaves rare queries out of the table to protect user privacy, but still counts them in the chart totals. The interface also exports at most 1,000 rows; the API returns more.
Can I do a keyword audit on a single page?
Yes. Filter the Performance report to that page's exact URL and read its Queries tab. The top non-brand query shows what Google thinks the page is about, and the rest show which questions the page should answer.
Sources
- Performance report (Search results) — Search Console Help, on how queries and pages are aggregated and how average position works
- A deep dive into Search Console performance data filtering and limits — Google Search Central blog, on anonymized queries and the 1,000-row export limit
- URL Inspection tool — Search Console Help, on declared and Google-selected canonicals
- How to specify a canonical URL — Google Search Central, on redirects and rel=canonical as canonical signals
- Influencing your title links in search results — Google Search Central, on distinct titles and keyword stuffing
- SEO Starter Guide — Google Search Central, on keywords and keyword stuffing


