My GSC Opportunity Mapper has had a fairly substantial update.
The original version was recently featured by Ryan Law in the Ahrefs article 37 Proven Ways to Use AI in Marketing, which made me rather chuffed. It also prompted me to look at the tool again from the perspective of somebody using it for the first time.
The central idea was useful, but the starting process was more fiddly than it needed to be. You had to download the Search Console export, unzip it and then upload the Queries and Pages files separately. In hindsight, that was nonsense. I am not entirely sure why I made people do it.
The updated version lets you upload the complete ZIP, adds a few more useful ways to investigate the data and introduces business signals alongside the usual search-intent classifications. I have tried to add that extra usefulness without turning a small helper into yet another enormous SEO platform.
The video below shows how it works.
One ZIP file rather than two separate uploads
The most obvious improvement is the upload process. You now download the normal CSV export from Google Search Console and upload the complete ZIP without extracting anything first.
The helper recognises the Queries and Pages tables automatically. If the export also contains Dates data, it uses that to provide a simple performance trend. You can add a project name and brand terms before running the analysis, but neither is required.
There is still no Search Console API connection, OAuth process or account integration. It remains a small tool for people who want to examine an ordinary Search Console export without having to set up anything technical. Download the data, upload the ZIP and, boop, there it is. That is closer to what a little helper should feel like.
Finding somewhere useful to start
Search Console gives us plenty of data. What it does not always give us is a sensible place to begin looking.
Sorting queries by clicks or impressions will show the largest numbers, but the largest number is not automatically the most useful opportunity. A lower-volume query may reveal a valuable service requirement, a common customer objection or a page that is already close to achieving something worthwhile.
The updated report therefore divides the findings into a few practical areas. Quick wins are queries already appearing on page one but receiving fewer clicks than expected from the patterns in the uploaded data. They may point towards an unhelpful title, weak snippet, poor intent match or simply a search result surrounded by features that attract the clicks elsewhere.
Striking-distance queries sit between positions 11 and 20. Some may be worth pushing towards page one through stronger content, better internal linking or a more appropriate landing page. Others may be accidental rankings for searches that have little relevance to the business.
The page report highlights URLs with meaningful visibility and provides a reason for surfacing each one. That may be strong visibility combined with weaker-than-expected click-through performance, a page approaching page one or a strong performer that should probably be protected rather than endlessly “optimised”.
The content-opportunity report groups related queries and tries to match each group to an existing page. If it cannot find a credible match from the URL wording, it flags the cluster for investigation. That could indicate a genuine content gap, but it could equally mean the URL is unclear or that the available export does not provide enough evidence.
The tool is finding places where a closer look may be worthwhile. It is not making the final decision for you, which is probably for the best.
Search intent does not tell us the whole business story
The more interesting addition is the business-signal classification. The tool already sorts queries into familiar search-intent categories such as informational, commercial, transactional and navigational. Those labels can be useful, but they do not always tell us what is happening in the customer’s head.
The updated version therefore looks for four additional types of signal:
- problems;
- objections;
- comparisons; and
- desired outcomes.
“Are solar panels worth it?” might be labelled informational or commercial, depending on the classification system. From a business perspective, the more interesting point is that somebody is expressing an objection which may need to be resolved before they will buy. “HubSpot versus Salesforce” is a comparison, “washing machine not working” describes a problem and “increase restaurant bookings” expresses a desired outcome.
These signals can make Search Console data useful beyond producing another list of potential blog topics. They can expose information missing from a service page, questions that sales teams repeatedly hear, weaknesses in product positioning or outcomes that matter to customers but are barely mentioned on the website.
This is part of the wider point I made in How to Turn Search Data into Market Intelligence. A query contains more than a keyword. It may contain context, uncertainty, an objection, a comparison or a fairly direct description of what somebody wants to achieve. If we reduce all of that to search volume and ranking position, we are throwing away much of the useful part.
It is still just a Python script
The business-signal classification does not send every query to ChatGPT or another external language model. It uses a set of Python rules to recognise wording commonly associated with problems, objections, comparisons and desired outcomes.
That makes it quick and transparent, but it also means it will not understand every nuance. Language is messy, industries have their own terminology and one query can contain several different signals at once.
I have tried to make the standard rules broad enough to work across industries rather than filling them with SEO-specific language. There is also an optional section where you can add terms used by your own market or business.
If customers in your sector use “stockouts” to describe a problem, “lock-in” as an objection or “faster recovery” as a desired outcome, you can add those phrases before running the report. You do not need to complete this section to use the tool. It is collapsed by default because the first-time experience should remain simple: upload the ZIP, add brand terms if they are relevant and click Find opportunities.
A free tool does not become more useful merely because it has acquired another twelve settings.
Investigating possible cannibalisation
The new version also provides a more focused investigation mode. If a particular query looks suspicious, you can filter Search Console by that query, export the filtered report and upload its ZIP. The helper then shows which pages appeared for the query.
You can do the reverse as well by filtering Search Console by a page and looking at the queries associated with it. This is useful when you want to understand what Google appears to associate with a particular URL rather than working from one row in the original export.
Finding two pages for one query is not automatic proof of harmful cannibalisation. The pages may serve different intentions, appear at different times or simply alternate within unstable results. The tool points out the overlap so you can investigate it rather than declaring that every instance needs to be “fixed”.
That distinction matters. SEO tools have a habit of giving uncertain patterns alarming red labels. It keeps the audit looking busy, if nothing else.
Comparing two Search Console periods
You can also upload an earlier Search Console ZIP covering an equivalent period. The comparison highlights the largest query-level click gains and losses, together with changes in average position.
This provides a shorter list of changes worth examining, but it cannot explain why those changes happened. Seasonality, shifting demand, competitor activity, different SERP features and Search Console’s own reporting limitations may all contribute. The comparison tells you where something changed. Somebody still needs to determine whether that change matters and what, if anything, should be done about it.
Opportunity clicks are not a traffic forecast
The tool estimates potential additional clicks by comparing current click-through performance with the patterns found in the uploaded data. I use those figures to help order the investigation. I would not put them into a business case as a promise of future traffic.
Average position does not describe everything appearing around the result. Search Console data can be incomplete, search results change and a higher click-through rate does not automatically create more commercially useful visits.
A query with a large theoretical click opportunity may have little business value. A smaller query expressing an expensive problem or a serious purchase objection may matter considerably more. The numbers help us decide where to look. They do not relieve us of the need to think.
Downloading the underlying evidence
Once the report is complete, you can download the full query, cluster and page tables together with the focused work queues. The detailed exports retain information such as overlapping business signals and confidence levels which would make the main interface unnecessarily busy.
That keeps the starting report readable without hiding the evidence from people who want to inspect it properly. This is also why I have moved away from making an automatically written brief the main output. A neat recommendation can look reassuringly finished while concealing how uncertain the underlying match was. I would rather provide the evidence and let somebody challenge it.
What the tool cannot know
The GSC Opportunity Mapper does not crawl the website, inspect the live search results or understand the commercial value of a particular enquiry. It does not know your margins, customers, internal priorities, stock problems or whether publishing another page is remotely sensible.
Search Console interface exports may also be representative or truncated, so the tool is working with the evidence available in that file rather than a perfect record of every search.
The useful question for the tool is:
Where might it be worth looking more closely?
The less useful question is:
What should the business definitely do next?
That second question usually requires rather more context and judgement than any Python script can provide. If your team has plenty of data but less confidence about what deserves attention, my SEO sparring partner service is designed for precisely that sort of discussion.
A little helper, not another SEO platform
The temptation when improving a tool is to keep adding options until the original helper becomes a badly funded imitation of the large platforms it was intended to complement.
I have tried not to do that here. The main workflow is still one upload and one button. Period comparison, focused investigation and sector-specific terminology are available when needed, but they stay out of the way at the beginning.
You can try the free GSC Opportunity Mapper on Streamlit or inspect and adapt the source code on GitHub.
Have a play. If it finds something useful, excellent. If it gets something obviously wrong, that may be even more useful for improving the next version.
Not sure what your Search Console data is really telling you?
If you want more than another list of opportunities and need experienced guidance on what the data means for your business, we should have a chat.
Talk it through