Search Intent Mismatch Audit: Search Console Notebook for Site Architecture
A page can rank well and still attract the wrong searchers. A pricing page that mostly shows up for “what is” queries, or a guide that pulls in people ready to buy, is a sign your site structure and your search intent have drifted apart. Checking that by eye works for ten pages. This free Colab notebook checks the whole site from a Search Console export.
Who it’s for
In-house SEOs and consultants auditing site architecture, or anyone trying to work out why a page ranks for queries it was never written for.
How to use it
- Load your Search Console data. Upload a page + query export with clicks, impressions and position, or run the built-in example (a fictional SaaS site) first.
- Map pages to page types. Edit the URL rules that sort pages into resource, company and product pages, and the intents each type should serve.
- Classify the queries. Rule-based filters label each query informational, commercial, transactional or navigational. Brand + modifier queries take the modifier’s intent and are flagged as branded.
- Flag mismatches. Each page gets a click-weighted (or impression-weighted) intent mix, a dominant intent and a verdict: match, mismatch or mixed.
- Check the KPI trade-offs. Clicks, impressions, CTR and average position per page type, plus sessions, engagement rate and key events if you add a GA4 landing-page export.
- Find intent bridges. For each resource page, the product page with the most shared query vocabulary: your first candidate for a contextual link or CTA.
- Export
queries_with_intent.csv,page_intent_audit.csvandintent_bridges.csv.
What you need
- A Search Console export with page and query in the same table. The web interface can’t combine them, so use the Search Console API, the Search Analytics for Sheets add-on or the BigQuery bulk export.
- Optionally, a GA4 landing-page export with sessions, engagement rate and key events.
- No API keys and no cost. It runs on pandas in the free Colab runtime.
What you get
A list of pages whose search demand doesn’t match their job on the site, the numbers to show why it matters per page type, and a shortlist of links that move readers from learning pages to buying pages.
Limits
- The intent filters are deliberately simple and English-only. For other languages, swap in the multilingual intent filters from the same repo.
- The intent bridge score is word overlap (Jaccard similarity). Treat it as a shortlist for a human, not an automatic internal linking rule.
- A mismatch isn’t always a problem. Sometimes the fix is a new page; sometimes the page is doing exactly what you need.
The thinking behind the audit is in How to Build a Search Intent-First Website Architecture, and intent work is covered in depth in the Semantic ML-enabled Keyword Research course.
What’s included
- Maps your URLs to page types (resource, company, product) with rules you can edit
- Classifies every Search Console query by intent and flags branded queries
- Gives each page a click-weighted intent mix and a match, mismatch or mixed verdict
- Compares clicks, CTR and position per page type, with optional GA4 engagement and key events
- Suggests intent bridges: the product page each resource page should link to first
Where this resource is used on MLforSEO
Walkthroughs on the blog
Concepts behind it
More search intent resources
- No-Code TemplateKeyword Mapping Template with Intent and Cannibalisation Flags (Google Sheets)
- Coding Script or NotebookFree Keyword Clustering Tool (SERP-Overlap + Embeddings Hybrid)
- No-Code TemplateGoogle Sheets Formulas for SEO Keyword Research and Content Analysis (Copyable, Tested)
- Coding Script or NotebookMulti-Dimension Query Classifier: Rule-Based Colab Notebook and Google Sheets Template
- Visualization TemplateSearch Intent Keyword Classifier Dashboard (Looker Studio Template)
- Coding Script or NotebookSearch Intent Classification from SERP Features in Python: Rule-Based Notebook for SEO
See all 11 search intent resources →See all 16 content audits resources →See all 42 coding script or notebook resources →
