Know where you stand
Connect Search Console and press Analyze pages once: RankLens pulls up to 1,000 pages, classifies each into one of 9 types, tiers them by position from winning to not showing yet, and checks them against Google's index page by page. From then on it re-syncs itself daily - indexation and speed re-checked roughly weekly, on Google's free quotas.
☝ The Opportunity column does the triage: top of the location table = where to work next.
The registry
One sync pulls up to 1,000 pages and 5,000 page-query rows from Search Console in 3 free API calls, merges case-variant duplicate URLs, and filters out images, CSS and feeds so they never pollute the list. Every page is then classified from its URL shape and confirmed by its own search queries - home, service, location, pillar, blog, supporting, project, other, or don't-track. Override a type once and it sticks through every re-sync.
Illustrative example - sample business.
CTR opportunities
The CTR optimizer judges each page query by query, never on blended CTR. Brand searches are excluded, expected CTR is discounted ×0.7 because local results carry a map pack and ads, and a query is only flagged when 20+ impressions at positions 1-12 fall below 80% of that discounted expectation. What survives is real money: an estimated lost-clicks-per-month figure per page, evidence attached.
Illustrative example - sample business.
On the same screen
Not a crawler's guess - the actual URL Inspection verdict per page: indexed, not indexed, or pending, with Google's own reason ("Crawled - currently not indexed") and last-crawl date. Runs on Google's free 2,000-inspections-a-day quota, never-checked and newest pages first.
50 pages per run · each page re-checked ~weeklyPageSpeed Insights on mobile, homepage first, real-user field data preferred over lab numbers when Google has it. Nothing gets re-tested inside 7 days, and if Google rate-limits, the queue stops and retries next run instead of burning your remaining pages.
Daily batch of 15 · every page fresh roughly weeklyRankLens fetches your sitemap - index files followed up to 10 children - and cross-references it against Google both ways: pages earning traffic that the sitemap forgot, and listed URLs Google has shown nothing for in 28 days. Each row files as a task, or gets dismissed as "not needed".
Audited with the weekly sweepWhen your queries cluster into 30+ impressions of demand and nothing of yours ranks in the top 8, you get a suggestion with receipts: the query evidence, a suggested URL and title, up to 5 outline sections drawn from real search variants, and a 3-source internal-linking plan with anchor text.
Recomputed dailyCities with proven search demand and no page to catch it - every candidate validated against a ~40,000-name US place gazetteer, so "window washers near me" can never suggest a city called Washers. Each gap shows impressions, best position, and which page is absorbing those searches today.
Recomputed daily · top 25 gaps shownThe internal link plan from the weekly Site Health sweep, surfaced right here next to your pages: money pages earning impressions with zero or one inbound link, copy that already mentions a target page without linking it ("just link it"), and anchors like "learn more" counted as saying nothing. A page linked from 60%+ of your site is treated as nav boilerplate, not a real vote.
Refreshes with the weekly sweepHonest limits: this is your own Search Console data - up to 1,000 pages and 5,000 query rows per sync, sitemap audit capped at 5,000 URLs. Lost-leads estimates need GA4 connected and 30+ organic sessions on a page before we extrapolate anything. Missing-city detection uses a US place gazetteer.
The plumbing
Pages & indexation is included in the $69 flat plan - along with everything else in the box.
Start free - 5 days on us or see pricing →