Real fixes from seven live sites. No pitch.Log in / My reports
Idea to Traffic Pressure Test

High Impressions but Low Clicks in Search Console: What to Fix First

Most low CTR comes from impressions at positions where almost nobody sees your link, so first filter Search Console to queries in positions 1 to 10. Rewrite titles and descriptions only for page one queries with a CTR under about 2%, and improve content and internal links for queries stuck on page two.

A reader with 70 published posts put it plainly: about 20,000 impressions in three months and roughly 100 clicks. That is a click through rate near 0.5%. The instinct is to rewrite every title, but most of those impressions are usually not fixable with a title at all. The work is sorting the impressions into the ones you can turn into clicks and the ones you should ignore, then making a small number of targeted changes and measuring them properly.

Why impressions and clicks drift apart

In Search Console, an impression is counted when a link to your site appears on a results page the searcher loaded. Google's own help page on impressions, position and clicks explains that the result does not need to be scrolled into view in most cases for the impression to count. So a page sitting at position 38 can rack up hundreds of impressions from people who never got past the top five results. Those impressions are real, but no title in the world converts them, because almost nobody saw the link.

Average position makes this worse because it is an average. A post that ranks 4th for one small query and 60th for twenty broad ones will show an average position somewhere in the 40s, and the CTR for the whole page will look terrible even though the one query where you rank well may be performing fine.

There are three common causes behind a low CTR, and each needs a different fix:

  • Ranking too low to be seen. Positions beyond roughly 10 to 15 get impressions with very few clicks. The fix is ranking, not the snippet.
  • Ranking well but losing the click. You are on page one, yet your title or snippet does not match what the searcher wants, or a richer result above you answers the question directly.
  • Showing for the wrong queries. Your page appears for searches with a different intent, such as a brand name or a broad term, where clicking your page would not make sense anyway.

Find the pages worth fixing in Search Console

Open Search Console and go to Performance > Search results. Set the date range to the last 3 months, then click the Average CTR and Average position boxes at the top so all four metrics are switched on. Now work through it in this order:

  1. Open the Pages tab below the chart and sort by Impressions. These are the pages Google already tests in results. Note the top 10.
  2. Click one of those pages to filter the report to it, then switch to the Queries tab. This shows which searches that page appears for, with clicks and position for each.
  3. Use the filter rows icon above the table and add Position smaller than 11. What remains are the queries where you are on page one. If CTR is still under 2% here, the snippet is the problem.
  4. Change the filter to Position greater than 10 and smaller than 21. These are queries on page two. Here a better title will not move much; better content and internal links can push them up.
  5. Anything with an average position above 30 is mostly background noise for now. Leave it.

For the reader with 20,000 impressions, it would not be surprising if half or more of those impressions sat beyond position 20. That changes the job completely: instead of rewriting 70 posts, they might have five posts on page one with a snippet problem and another ten on page two that need a content upgrade.

Sort an export in one step

If you prefer working outside the browser, click Export > Download CSV on the Performance report. The zip contains a file called Queries.csv with the columns Top queries, Clicks, Impressions, CTR and Position. This short Python script splits it into the three buckets above:

import csv

buckets = {"snippet": [], "content": [], "ignore": []}
with open("Queries.csv", newline="", encoding="utf-8") as f:
    for row in csv.DictReader(f):
        pos = float(row["Position"])
        imp = int(row["Impressions"].replace(",", ""))
        ctr = float(row["CTR"].rstrip("%"))
        if imp < 50:
            continue
        if pos <= 10 and ctr < 2:
            buckets["snippet"].append((imp, pos, ctr, row["Top queries"]))
        elif pos <= 20:
            buckets["content"].append((imp, pos, ctr, row["Top queries"]))
        else:
            buckets["ignore"].append((imp, pos, ctr, row["Top queries"]))

for name, rows in buckets.items():
    print(f"\n{name.upper()} ({len(rows)} queries)")
    for imp, pos, ctr, q in sorted(rows, reverse=True)[:15]:
        print(f"{imp:>6} imp  pos {pos:5.1f}  ctr {ctr:4.1f}%  {q}")

Run it with python3 sort_queries.py in the folder where you unzipped the export. The 50 impression floor keeps tiny queries from cluttering the list. Adjust the 2% threshold to your niche; informational queries with a featured snippet or an AI Overview above them often sit lower than commercial ones.

Fix the snippet on page one queries

For queries in the snippet bucket, search them yourself in a private window and look at what is ranking around you. You are looking for the gap between what the searcher wants and what your result promises.

  • Match the query wording. If people search "how long does a blog take to make money" and your title says "Monetization Timelines for Content Sites", rewrite the title in the words they use. Keep it near 60 characters so it is less likely to be cut off.
  • Put the specific thing up front. A number, a year, a tool name or the exact problem ("ads.txt not found") gives a reason to choose you over a generic result.
  • Write the meta description as the answer preview. Google often rewrites descriptions, but a description that directly addresses the query is more likely to be used. Aim for one or two sentences that say what the reader will get.
  • Check that the H1 and opening paragraph agree with the title. Google can replace a title it considers misleading, and a mismatch between the title tag and the visible headline is a common trigger.
  • Look for a richer result above you. If a featured snippet, video carousel or AI Overview already answers the question, a tighter title will help less. Consider whether a different angle on the topic, such as a specific case or a tool, earns more clicks.

Only change one or two pages at a time. If you rewrite 30 titles in one afternoon, you will not know which changes helped.

Push page two queries up instead

Queries at positions 11 to 20 rarely produce clicks no matter how good the snippet is. These pages need to rank higher. The practical moves for a small site are:

  • Add a section that answers the exact query directly, with the query phrasing in an H2, near the top of the post.
  • Remove or update outdated parts. Old screenshots, dead tool names and wrong prices make a page weaker against fresher competitors.
  • Link to the page from two or three of your related posts using descriptive anchor text, not "click here". Internal links are the one ranking signal you fully control.
  • If two of your posts compete for the same query (both appear in the Queries tab for it), merge them and redirect the weaker URL to the stronger one with a 301.

It is worth running your page through the free site checker at this point as well, since a missing canonical, a noindex leftover or a slow page can quietly hold rankings down regardless of content quality.

Measure the change honestly

Write down the date of each edit. After at least 28 days, go back to the Performance report, filter to that page, and use Date > Compare to compare the 28 days after the change with the 28 days before. Look at clicks and CTR for the specific queries you targeted, not the page total, because seasonal swings and new low position impressions can hide a real gain.

Also check whether Google is actually showing your new title. Search the target query and look at your result. If Google has replaced it with something else, your H1 or page content is probably sending a different signal, and that is the next thing to align.

A realistic goal for a small blog is not doubling sitewide CTR. It is moving five or six page one queries from under 1% to 3% or more, and pulling a handful of page two queries onto page one. On 20,000 impressions, that can be the difference between 100 clicks and several hundred, without publishing a single new post.

Where this question came from

Questions about impressions, clicks and CTR

What is a normal click through rate in Search Console?

There is no single normal figure because CTR depends on position and on what else appears in results. A sitewide CTR under 1% is common for new blogs because many impressions come from low positions. Judge CTR per query on page one instead of the site average.

Does an impression mean someone saw my result?

Not necessarily. Google counts an impression when your link appears on a results page the searcher loaded, and in most cases it does not need to be scrolled into view. That is why low ranking pages collect impressions with almost no clicks.

How long should I wait after changing a title?

Give it at least 28 days, then compare the 28 days after the change with the 28 days before using the Compare option in the Performance report. Look at the specific queries you targeted rather than the page total.

Should I rewrite all my titles at once?

No. Change one or two pages at a time so you can tell which edits helped. Focus on page one queries with high impressions and low CTR first.