Generated from Google Search Console · HB Freelance
GSC GA4
Sign in with GSC first, then connect GA4 separately
● Authenticated
We do not store any of your site data
All processing happens in your browser
You can revoke access at any time
Free to use, no credit card needed
Starting…
The free SEO performance suite your Search Console data deserves
Connect Google Search Console, Google Analytics 4, or Bing Webmaster Tools and instantly analyse brand vs non-brand traffic, detect keyword cannibalization, track conversion performance, and uncover the optimisation opportunities hiding in your data.
No sign-up required 100% client-side No data stored Free forever
Google Search Console
16 months of data · OAuth sign-in · Query, page, device & country dimensions
API key authentication · Brand classification · CSV export
Everything you need to understand organic performance
No logins, no subscriptions, no data leaving your browser. Just connect and analyse.
Brand vs Non-Brand Intelligence
Classify every query as branded or non-branded using regex patterns with optional fuzzy misspelling detection. See your brand dependency score, traffic share split, and non-brand trend direction — the metrics that tell you whether your organic growth is sustainable or fragile.
Optimise Hub
Five dedicated workflows: Striking distance keywords in positions 4–20 with high impression volume, keyword cannibalization detection with page overlap matrix, CTR benchmarks by position, emerging and decaying topics, and priority actions scored by impact.
Page Performance Matrix
Heatmap view of your top pages over 13 weeks or 3 months. Spot seasonal patterns, traffic drops, and emerging pages at a glance. Includes period-over-period and year-over-year comparison overlays with percentage change per cell.
GA4 Blended Analytics
Optionally connect Google Analytics 4 to see sessions, engagement rate, conversions, and revenue alongside your search data. The blended landing page table joins GSC clicks with GA4 conversion data by URL — click any row to see the top queries driving traffic to that page.
Topic Clusters & N-Gram Analysis
Break your queries into 1-gram through 5+ gram clusters to discover the topics driving your traffic. Filter by brand/non-brand, switch to Questions Only mode to find informational queries, and export clusters for content planning.
Flexible Timeframes & Comparisons
From 28 days to 16 months with day-level precision. Compare any timeframe against the previous period or same period last year. New entries and exits tables show which queries and pages appeared or disappeared between periods.
Device & Country Breakdown
Separate performance data for desktop, mobile, and tablet — including dedicated trend charts, CTR comparisons, and position distributions. Country-level click data shows your geographic traffic distribution.
Index Coverage & Bulk Indexing
Audit your indexed pages, find pages with zero clicks, and submit URLs for indexing via the Google Indexing API — all from one interface. Track daily indexing quotas and submission history.
How it works
1
Sign in with Google
OAuth connects directly to Google's API. We never see your password.
2
Select property & brand terms
Pick your Search Console property and define your brand keywords with regex support.
3
Fetch & analyse
16 months of query data is fetched and processed entirely in your browser.
4
Explore insights
Navigate 9 analysis tabs with charts, tables, CSV exports, and actionable recommendations.
Built for SEO professionals and marketing teams
Whether you're an in-house SEO, agency consultant, or founder doing your own SEO
In-house SEO teams
Get the brand dependency and cannibalization insights that Search Console doesn't show natively. Share findings in weekly reports.
Agency consultants
Analyse client properties quickly without requesting third-party tool access. Save preset configurations per client for fast switching.
Ecommerce & publishers
Connect GA4 to see which landing pages convert organic traffic into revenue. Identify high-click, low-conversion pages for optimisation.
Frequently asked questions
Yes, completely free with no usage limits, no sign-up, and no credit card. The tool runs entirely in your browser — your data is fetched directly from Google's APIs and never touches any server. It was built by HB Freelance as a resource for the SEO community. There is no paid tier, no premium upsell, and no advertising.
Your data never leaves your browser. The tool uses Google's OAuth to authenticate directly with the Search Console and Analytics APIs — the data is fetched, processed, and displayed entirely on your device. No data is sent to any server, no cookies are set for tracking, and nothing is stored after you close the tab. You can verify this by checking the Network tab in your browser's developer tools — the only API calls go to googleapis.com.
The site-level KPIs (Impressions, Clicks, CTR, Average Position) use undimensioned API data and should match GSC closely. However, the brand vs non-brand breakdown will show lower totals because Google anonymises a portion of low-volume queries for privacy — these appear in the site-wide total but are excluded from query-level data. This is a Google API limitation, not a bug. Additionally, GSC data is logged in Pacific Time and can lag by 2–3 days, so the most recent dates may have incomplete data.
Brand queries are searches that include your brand name (e.g. "nike running shoes"), while non-brand queries don't (e.g. "best running shoes"). The split between these two tells you how dependent your organic traffic is on brand awareness vs discovery through SEO. A site with 80% branded traffic is highly dependent on existing brand recognition — if brand awareness drops, organic traffic drops with it. A healthy site typically has 40–60%+ non-brand traffic, indicating strong SEO-driven discovery. The tool uses regex patterns to classify queries, with optional fuzzy matching to catch common misspellings of your brand name.
The Optimise Hub contains five dedicated SEO workflows: Striking Distance Keywords finds non-brand queries ranking in positions 4–20 with high impressions — these are your quickest wins. Keyword Cannibalization detects when multiple pages compete for the same query and shows a URL overlap matrix. CTR Benchmarks compares your actual click-through rates against industry averages by position. Emerging & Decaying Topics identifies queries gaining or losing momentum. Priority Actions scores and ranks all findings by potential traffic impact so you know where to focus first.
No — GA4 is completely optional. The tool works fully with just Google Search Console. However, connecting GA4 adds an Analytics tab with sessions, engagement rate, conversions, and revenue data filtered to organic traffic. It also enables the blended landing page table that joins GSC search metrics (clicks, impressions, position) with GA4 conversion data (sessions, engagement, revenue) for each URL. GA4 uses a separate authentication step and can use a different Google account from your GSC sign-in.
This tool focuses specifically on analysing your own first-party search data from Google Search Console and GA4 — it doesn't crawl other websites, track competitors, or estimate third-party metrics. Paid SEO platforms are excellent for competitive research, backlink analysis, and keyword difficulty scores. Organic Trends complements those by providing the brand/non-brand intelligence, cannibalization detection, CTR benchmarking, and GSC+GA4 blending that most platforms don't offer — and it's free with no usage limits.
Yes. After signing in, the property dropdown shows all Search Console properties your Google account has access to. You can switch between them freely. Use the "Saved Configs" feature to save brand term presets for each website — this stores your property URL, brand terms, and threshold settings in your browser's local storage so you can quickly switch between client or site configurations without re-typing anything.
Keyword cannibalization happens when multiple pages on your site compete for the same search query, splitting clicks and confusing Google about which page to rank. The tool detects this by fetching page-level data for your top non-brand queries and identifying cases where more than one URL receives impressions for the same keyword. It shows a query-to-page overlap matrix with each URL's position and click share, so you can see exactly which pages are competing and decide whether to consolidate, differentiate, or canonical redirect.
It depends on the size of your site. Small sites (under 10K queries) typically complete in 15–30 seconds. Large ecommerce sites with hundreds of thousands of queries may take 2–5 minutes as the tool paginates through the Search Console API. A progress bar shows the fetch status in real time. The tool fetches 16 months of monthly query data concurrently (3 months at a time) to minimise wait time while respecting Google's API rate limits.
All processing happens in your browser. No data stored on any server. Privacy Policy
TIMEFRAME
Brand vs non-brand classification depends on your Brand Terms being complete and accurate. Use regex patterns to capture all variations. Verify your classification is correct via Review Brand Terms. Brand/non-brand totals will be lower than site-level totals because Google anonymises a portion of low-volume queries for privacy — these are excluded from query-level data but included in the Organic Performance Overview above.
Organic Performance Overview
Combined
Traffic Shares
Based on all fetched months
Branded Search Traffic Over Time
Query-level totals may be lower than site-level totals due to anonymised queries and API row limits.
Brand vs Non-Brand Click Distribution
Top Non-Branded Keywords
Based on all fetched months
Top Branded Keywords
Based on all fetched months
Countries
Top countries by clicks
Country data loads after fetch
Query Counting
Unique keywords by position bucket over time
CTR Curves by Position
Non-branded queries · Last 3 months vs same period last year
Always uses last 3 months of non-branded queries — not affected by the timeframe selector above
No CTR data available
New Entries
Fetch data first to see new entries
Exits
Fetch data first to see exits
Brand vs non-brand splits depend on your Brand Terms being accurate. Review Brand Terms to verify.
TIMEFRAME
VIEW
Total clicks
Total impressions
Average CTR
Average position
Combined Overview — Impressions · Clicks · CTR
Click legend items to toggle Impressions & CTR on or off
Impressions — Brand vs Non-Brand
Clicks — Brand vs Non-Brand
CTR — Brand vs Non-Brand
Avg. Position Over Time
Keyword Position Distribution
Number of keywords by SERP position bucket per month
SHOWCOMPARE ALL
Combined Overview — Impressions · Clicks · CTR
Click legend items to toggle Impressions & CTR on or off
Impressions
Clicks
CTR
Device Analytics
Device data requires a separate API call from Google Search Console.
Impressions by Device
Clicks by Device
CTR by Device
Combined — Impressions · Clicks · CTR by Device
Index Coverage
Audit your site's indexation status and submit URLs for crawling.
Index Coverage Audit
Paste your URL list and audit indexation against live GSC data. Find gaps (not indexed), invisible pages (0 impressions), and zombies (0 clicks). Uses the URL Inspection API.
→
Bulk Indexing Submission API
Submit URLs directly to Google's Indexing API to request crawling. Paste your list, hit submit, and watch the live status log. Requires verified ownership in GSC. 200 URLs/day limit.
→
Index Coverage — Bulk URL Audit
List Mode: Paste your URL list below, then run the audit. We fetch GSC page-level performance data on demand (isolated from the main fetch) and cross-reference your list to categorise every URL as Not Indexed, Invisible, Zombie, or Performing.
Paste Your URLs
Paste one URL per line. These will be compared against live GSC page dimension data (last 28 days). No limit — paste your full sitemap export, Screaming Frog crawl list, or CMS URL dump.
Status Definitions
Not Indexed— Google's URL Inspection API confirms this page is not in the index. The coverage state shows the reason (e.g. noindex tag, crawl error, alternate page). These are your top priority.
Invisible— Google says the page IS indexed, but it received 0 impressions in the last 28 days. Google knows about it but isn't ranking it for any search queries.
Zombie— Indexed and appearing in search results (has impressions) but generating 0 clicks. Users see it but never click — review titles and meta descriptions.
Performing— Indexed, has impressions, and drives clicks. These pages are working normally.
Indexed (no data)— Google confirms it's indexed, but no performance data was found in GSC for this property in the last 28 days. This can happen if the URL belongs to a different GSC property or was very recently indexed.
SHOW
Spot-Check: Google URL Inspection
Check the live Google index status for individual URLs using the URL Inspection API. This makes a real-time request to Google — use it to verify specific pages, not for bulk checking.
Google Indexing API — Bulk Submission
Submit URLs directly to Google's Indexing API to request crawling and indexing. You must be a verified owner of the property in Search Console (not just a user). Google allows ~200 submissions per day per property.
Requirements: You need verified owner status on the GSC property (not delegate/user). The Indexing API was originally designed for JobPosting and BroadcastEvent schema, but Google accepts requests for any URL type. Response "200 OK" means Google received the request — it does not guarantee immediate indexing.
URLs to Submit
Paste one URL per line. You can also copy not-indexed URLs from your Index Intelligence audit results.
Submission Log
Search Console Request
Sites
Dates
Dimensions
Filters
Options
Results
⚡ Client-Side Filters (stack multiple)
How to use this page
This page shows the top 50 queries by clicks so you can verify that your brand and non-brand classification is correct.
Check the Classification column — if you spot a branded term that has been incorrectly classified as
Non-Brand, go back to the Brand Terms input at the top of the page
and add the missing term (or a regex pattern that captures it). The table will re-classify instantly — no need to refetch data.
Top 50 Queries by Clicks
Striking Distance, CTR Benchmarks, Emerging/Decaying, and Priority Actions filter by non-brand queries. Accuracy depends on your Brand Terms. Review Brand Terms to verify.
Optimise Hub
Pick a card below — each one is a focused workflow, not just a chart. Start with Striking Distance for the quickest wins.
Striking Distance Keywords START HERE
Find non-brand queries ranking positions 4–20 with high impressions. Small position gains here drive big traffic increases.
→
Keyword Cannibalization
Detect pages competing against each other for the same queries. See which URLs split clicks and where to consolidate.
→
CTR Benchmark & Titles
Compare your click-through rates against industry averages at each SERP position. Spot under-performing titles that need work.
→
Emerging & Decaying Topics
Track which queries are gaining or losing position over time. Catch rising opportunities and declining rankings early.
→
Performance Matrix NEW
Page-level heatmap showing Clicks & Impressions trended across weeks or months. Spot which URLs are peaking, declining, or seasonal at a glance.
→
Query Inventory & Changes NEW
Track your total keyword count over time and see which queries are new, lost, or returning each month. Spot ranking gains and content gaps.
→
Decaying Pages
Find pages with declining impressions over time. Compare against previous period or previous year to spot content that needs refreshing, consolidating, or pruning.
→
Content Funnel Classifier NEW
Auto-classify queries into ToFu, MoFu, BoFu, and Link Magnet categories using regex patterns. See which funnel stages drive traffic and where you have gaps.
→
Priority Action Queue NEW
Ranked list of the highest-impact actions: page-1 near-misses, CTR underperformers, decaying non-brand pages, and cannibalisation clusters — scored and prioritised.
→
Page Group Intelligence NEW
Auto-group pages by URL directory (blog, PLPs, PDPs, help, etc). See brand dependency, traffic share, and decay risk per section — think in site architecture, not just keywords.
→
Annotations
Mark site changes, algorithm updates, PR launches, title deployments, and migrations on your timeline. Events are saved locally and shown on trend charts.
→
Topic Clusters
Break queries into n-grams (1-word, 2-word, 3-word phrases) and aggregate metrics. Discover which topics drive the most traffic and find content gaps.
Non-brand queries ranking just outside top positions — high impressions with room to improve. Small position gains here can drive significant traffic increases.
DATA RANGE
FILTER PRESETS
POSITION RANGEtoSORT BY
CTR & Cannibalization Analysis
DATA RANGE
Showing keywords with average position ≤ 20 (striking distance). These are the terms where resolving cannibalization or improving CTR will have the biggest impact on traffic. Positions 1–10 include industry CTR benchmarks.
Checks top 100 non-brand queries for cannibalization
Loading cannibalization data…
Click any keyword to view the top 5 pages competing for that query. Use "Load Cannibalization Data" to bulk-check all keywords at once.
Query ↔ Page Overlap Matrix
Shows which URLs compete for the same queries. Each row is a query, columns show the ranking URLs with their position and click share. Requires cannibalization data to be loaded above.
Load Cannibalization Data above first, then this matrix will populate automatically.
Compare your site's CTR curve against industry benchmarks and spot under-performing titles. Positions where your CTR falls below the industry average represent quick-win optimization opportunities.
CTR vs benchmarks
Your click-through rate at each position compared to industry averages. Click any query to see which URLs are ranking — and whether they're competing with each other.
Keyword cannibalization
Queries ranking in positions 1–20 with multiple ranking pages are flagged with a page count. When Google splits impressions across URLs, each page gets fewer clicks. Consider consolidating content. Cannibalization is only computed for non-brand terms.
Industry CTR benchmarks
DATA RANGE
CTR vs SERP Position — Your Site vs Industry Average
How this works: We fetch your query data for two consecutive periods (e.g. last 28 days vs the 28 days before that) and compare average positions. Queries that improved position are "emerging"; those that dropped are "decaying". Only non-brand queries with 10+ impressions are included. The Δ Pos column shows how many positions a query moved — positive means it ranked higher (better).
VIEW
COMPARE
Fetching comparison data…
Emerging
Decaying
Performance Matrix
Page-level heatmap showing how each URL performs over time. Data covers the top 2,000 pages by clicks (last 3 months). Colour intensity is normalised per row so you can see each page's own peaks and troughs. Toggle between weekly and monthly granularity and switch metrics to find seasonal patterns, traffic drops, or emerging pages.
ViewMetricCompareShow
The Performance Matrix fetches page-level daily data for the top 2,000 pages by total clicks.
Query Inventory & Changes
Track how your keyword footprint evolves month-over-month. See total query counts trended, plus which keywords are new (appeared this month), lost (disappeared), or returning (came back after absence). Uses your existing 16-month data — no extra API calls needed.
Run Fetch & Analyse first to load query data.
Query Count by Month
ShowComparevs
Decaying Pages
Pages where impressions have dropped more than 30% compared to the previous period. These are candidates for content refresh, consolidation (redirect to a stronger page), or pruning (remove/noindex).
Run Fetch & Analyse first to load query data.
TimeframeCompare
Content Funnel Classifier
Auto-classify your queries into funnel stages using regex patterns. Customise the patterns below to match your industry, then see exactly how much traffic each stage drives.
Run Fetch & Analyse first to load query data.
Funnel Stage Definitions — click to expand
ToFu — Top of Funnel (Awareness)
Users are learning about a topic. Not ready to buy yet.
Examples:best football boots for wide feet, nike vs adidas running shoes, top hiking jackets
BoFu — Bottom of Funnel (Purchase)
Users are ready to buy or very close to purchasing.
Intent: Purchase, deals, specific product searches
Examples:buy nike mercurial boots, adidas running shoes sale, football boots cheap uk
Link Magnet / Informational Assets
Content designed to attract backlinks or brand discovery.
Intent: Statistics, research reports, studies, industry benchmarks
Examples:running injury statistics, sports participation data uk, fitness trends 2026
Funnel Stage Patterns
Regex patterns (case-insensitive). Separate multiple patterns with |. Queries are tested in order: BoFu → MoFu → ToFu → Link Magnet. First match wins. Unmatched queries go into "Unclassified".
Timeframe
Clicks by Funnel Stage
Impressions by Funnel Stage
Stage
Priority Action Queue
Your top opportunities ranked by estimated impact. Each action is scored based on impression volume, position proximity to page 1, CTR gap vs benchmark, and trend direction. Focus on the top items first.
Run Fetch & Analyse first to load query data.
Timeframe
Category
Page Group Intelligence
Pages auto-grouped by URL directory. See which site sections drive traffic, their brand dependency, and where performance is declining. Think in site architecture, not just keywords.
This view needs page-level data. Fetch it directly — no need to navigate away.
Timeframe
Traffic by Section
Annotations
Mark events on your timeline — algorithm updates, site changes, title deployments, etc. Annotations are saved in your browser and displayed on trend charts.
Add Annotation
Saved Annotations
No annotations yet.
Topic Clusters — N-Gram Analysis
How this works: Queries are broken into n-grams (1-word, 2-word, 3-word phrases etc) and metrics aggregated. The Queries filter controls which source queries are analysed: "Non-Brand" only processes non-brand queries, "Brand Only" only processes brand queries, "All" uses everything.
MODEQUERIES
TIMEFRAME
SHOWMETRICMIN QUERIES
1-gram 2-gram 3-gram 4-gram 5-gram 5+
SORT
Top 15 Topic Clusters by Clicks
All Clusters
📊
Connect Google Analytics 4
See traffic, engagement, conversions, and revenue data alongside your search performance. Connect your Google Analytics 4 account to get started.
TIMEFRAMECOMPARE
Organic Performance
Analytics
Organic Traffic & Conversions Over Time
Filtered to organic search channel
Top Landing Pages Analytics
Organic search sessions by landing page
Landing Page Performance Combined
GSC search metrics joined with GA4 engagement and conversion data by URL
Pages with high GSC clicks but low GA4 conversions may be optimisation opportunities. Click a row to see the top GSC queries for that page.
Top GSC Queries for:
Geographic Performance Analytics
Top countries by organic sessions
Device Performance Analytics
Organic traffic split by device category
Movers & Shakers — Position Changes
Queries with the biggest position changes between two periods. Identifies both improving and declining keywords. Uses non-brand queries only.
COMPARE
Fetching comparison data…
Biggest Winners
Biggest Losers
Bing data uses the same brand/non-brand classification as GSC. Accuracy depends on your Brand Terms. Review Brand Terms to verify.
Bing Webmaster Tools
Analyse your Bing search performance with brand/non-brand classification
Get your key from Bing Webmaster Tools → Settings → API Access → Generate API Key
● Connected
Starting…
🔍
Connect your Bing account
Enter your API key above to analyse your Bing search data with the same brand/non-brand classification used for Google Search Console.
Bing Search Performance Summary
Bing — Clicks by Month (Brand vs Non-Brand)
Bing — Impressions by Month (Brand vs Non-Brand)
Bing — CTR by Month (Brand vs Non-Brand)
Bing — Average Position by Month (Brand vs Non-Brand)
Save your setup so you can switch between sites instantly. Each config remembers your GSC property, brand terms, and health thresholds — no need to re-enter anything.
Save Current Configuration
What gets saved: GSC property URL, brand terms, health thresholds (healthy % / brand-dependent %)