GROW · SEARCH INTELLIGENCE
See what limits your search visibility. Know what to fix first. Check that it worked.
Sanocea reads the evidence behind your site’s search presence, separates facts from hypotheses, puts the work in a defensible order, carries out what it is allowed to, and measures what happened.
ILLUSTRATIVE DATA · AN EXAMPLE STORE, NOT A CLIENT
01 · UNDERSTAND YOUR SEARCH VISIBILITY
Start from your data, not a template.
GROW reads how your pages show up for real searches: which queries, which pages, how many impressions and clicks, at what position. Your visibility, market and goals shape what it finds.
ILLUSTRATIVE DATA · AN EXAMPLE STORE, NOT A CLIENT
| Query | Page | Impr. | Clicks | CTR | Pos. |
|---|---|---|---|---|---|
| steel water bottleCOMMERCIAL | /collections/bottles | 18,400 | 312 | 1.7% | 7.4 |
| ceramic kettleCOMMERCIAL | /collections/kettles | 12,800 | 150 | 1.2% | 8.2 |
| how to clean a steel bottleHOW-TO | /blog/clean-steel-bottle | 9,100 | 640 | 7.0% | 2.8 |
| buy desk lamp onlineCOMMERCIAL | /blog/desk-lamp-guide | 7,300 | 95 | 1.3% | 6.1 |
| insulated bottle 1 litreCOMMERCIAL | /products/steel-bottle-1l | 6,200 | 410 | 6.6% | 3.2 |
| coffee press vs pour overCOMPARISON | /blog/press-vs-pour | 5,400 | 280 | 5.2% | 4.9 |
| is a steel bottle safeQUESTION | /blog/steel-bottle-safety | 3,900 | 210 | 5.4% | 3.9 |
| examplestore bottlesNAVIGATIONAL | /collections/bottles | 2,100 | 1,180 | 56.2% | 1.2 |
Select a row to find it on the map. Positions inside the lime band are the 4–10 strike zone.
Where the evidence comes from, and what each source can’t do
- Your public site, crawledAny site, on demand
Technical, indexability, canonical, structured data, rendering and AI-crawler access, read the way a search engine fetches it.
- Google Search ConsoleYour property · read-only
Queries, pages, impressions, clicks, CTR, position, indexing state. Google withholds low-volume queries, so on a small site query rows can be empty. We then say so, instead of estimating.
- Bing Webmaster ToolsYour property · free key
Per-query position and inbound link counts for your own pages. Kept as its own series, never merged with Google’s.
- Google Analytics 4Your property · read-only
What visitors did after they arrived, by landing page and channel. Behaviour data, labelled as such.
- Chrome UX ReportNeeds real-user traffic
Field Core Web Vitals when Google has enough visits to report them. Never mixed with lab runs.
- Competitor sitemapsPublic · any competitor
New and removed pages on competitor sites, diffed against the last good snapshot.
- Exact SERP rank, competitor rank, search volume, AI-answer citationsNot available today
These need a third-party data provider. None is connected, so the engine reports them as not available and never fills them in.
A limit belongs to a source, not to the service. If a source isn’t connected or has no data for your site, only the findings that need it say “not available”. Everything else still runs.
02 · FIND WHAT IS LIMITING PERFORMANCE
Open a finding. Check it yourself.
Pick a finding. Inspect the evidence behind it, see the exact action we would take and who authorises it, then re-observe the result. Some outcomes verify, some stay pending, some stay unresolved. All of that is shown.
ILLUSTRATIVE FINDINGS · EXAMPLE STORE
Two pages compete for “ceramic kettle”
Google alternates between two of your URLs for the same query, so neither holds a steady position.
SOURCESearch Console · query × page rows
HOW TO CHECK ITQuery “ceramic kettle”, page-level rows for eight weeks.
Select an evidence line, or a part of the chart, to see where it comes from and how to reproduce it.
- OBSERVEDread directly from your site or a data source
- CALCULATEDarithmetic on observed numbers
- INFERREDa reasoned hypothesis, with a stated confidence
Illustrative findings for an example store (not a client). The same content is available in the interactive panel above.
Cannibalisation: Two pages compete for “ceramic kettle” (Confirmed, OBSERVED, confidence High, 2 pages). Google alternates between two of your URLs for the same query, so neither holds a steady position.
- /collections/kettles ranks in the top 35 for the query. Source: Search Console · query × page rows. How to check: Query “ceramic kettle”, page-level rows for eight weeks.
- /products/ceramic-kettle ranks for the same query. Source: Search Console · query × page rows. How to check: Same query, second URL. Neither holds more than 80% of the impressions, so the split is genuine.
- Their average positions swap week to week. Source: Calculated from the two series. How to check: Compare the weekly position of each URL. Where the lines cross, Google changed its mind.
Action (Needs a decision, then prepared for approval): Which URL should represent the query is a business fact. The engine does not guess it. Not claimed: No ranking or traffic gain is predicted.
Outcome after re-observation: FIX VERIFIED · EFFECT PENDING. The change is live and confirmed. Whether the swapping stops is only known after the waiting window.
Strike zone: “steel water bottle” sits at position 7.4 (Recommendation, CALCULATED, confidence Medium, 1 page). A high-impression query at positions 4–10 is where a better title and snippet can move clicks without ranking higher.
- 18,400 impressions at an average position of 7.4. Source: Search Console · query rows. How to check: Observed counts for the query, page /collections/bottles.
- CTR is 1.7% (312 clicks). Source: Calculated: clicks ÷ impressions. How to check: 312 ÷ 18,400. Arithmetic on observed numbers.
- The current title does not contain the query’s main terms. Source: Crawl · server HTML. How to check: Fetch the page; read <title>. Compare its words with the query’s.
Action (Prepared for your approval): A person approves the exact wording before anything is published. Not claimed: No click gain is forecast. The measure is CTR on this query, before and after.
Outcome after re-observation: APPLIED · CTR EFFECT PENDING. We can verify the title changed. We cannot know the CTR effect until the window has passed.
Intent mismatch: A guide ranks for “buy desk lamp online” (Hypothesis, INFERRED, confidence Medium, 2 pages). A purchase-style query lands on an article while the collection page sits further down.
- /blog/desk-lamp-guide: position 6.1, 95 clicks. Source: Search Console · query × page rows. How to check: Observed for the query.
- /collections/lamps: position 14.0. Source: Search Console · query × page rows. How to check: Observed for the same query.
- The query reads as a purchase intent. Source: Inference · rule-based reading of the query text. How to check: A purchase verb and a commercial modifier. A text rule, not something Google said. A person confirms it.
Action (Hypothesis first, then prepared for approval): Held as a hypothesis until a person confirms the intent. Only then does work get prepared. Not claimed: We do not claim the guide is the wrong page for this query.
Outcome after re-observation: UNRESOLVED · NOT YET CONFIRMED. Nothing was changed, because the finding is still a hypothesis. It stays on the list and says so.
Indexing and coverage: Product pages Google found but did not index (Confirmed, OBSERVED, confidence High, 6 of 20 inspected). Sitemap, crawl and Google’s own inspection result don’t agree. Not every non-indexed page is a defect, so each is classed.
- 46 URLs declared in the sitemap, 41 reachable through internal links. Source: Sitemap + crawl graph. How to check: Parse the sitemap; crawl internal links; compare the two sets.
- 20 inspected in Search Console: 14 indexed, 6 not. Source: Search Console · URL Inspection. How to check: Inspection is quota-limited, so a sample is inspected and the sample size is shown.
- Of the 6, 4 are expected states. 2 need review. Source: Classification of Google’s coverage labels. How to check: “Page with redirect” and “Alternate page with proper canonical” are working as designed. Unknown labels are marked “needs review”, never assumed fine.
Action (Only the 2 flagged pages become work): The 4 expected states are left alone, with the reason recorded. Not claimed: We do not claim that fixing these will raise traffic.
Outcome after re-observation: UNRESOLVED · 2 PAGES STILL OPEN. The 4 are closed with a reason. The 2 stay open until Google reports them as indexed.
Template defect: One template, a wrong price in product schema (Confirmed, OBSERVED, confidence High, many pages, one cause). A shared template puts a different price in structured data than the one shown on the page. Counted page by page it looks like hundreds of problems. It is one.
- Pages are fingerprinted by markup structure and grouped by template. Source: Crawl · template fingerprint. How to check: Tag and class structure of each page is hashed; pages with the same structure form a template.
- The mismatch repeats across the template. Source: Crawl · schema vs visible price. How to check: Read the JSON-LD price and the on-page price on each product page; compare.
- Server HTML and rendered page agree on the fault. Source: Crawl · raw and rendered DOM. How to check: Both versions were read, so JavaScript is not the cause.
Action (Specification for your developer): A template change on your platform. Sanocea writes and checks it; your developer ships it. Not claimed: No rich-result or ranking effect is claimed.
Outcome after re-observation: VERIFIED ON RE-CRAWL. Re-crawled after the developer shipped: the defect is gone everywhere it was. This is a fact about markup, not a claim about rankings.
Rendering: JavaScript changes the canonical (Confirmed, OBSERVED, confidence High, collection template). The page a crawler fetches and the page a browser builds disagree on fields search engines read.
- The canonical differs between server HTML and rendered page. Source: Crawl · raw vs rendered DOM. How to check: Fetch the page twice: plain HTTP and in a headless browser. Compare field by field.
- The H1 count differs between the two. Source: Crawl · raw vs rendered DOM. How to check: Same method. One H1 in the server HTML, none after JavaScript.
- Robots and title agree. Source: Crawl · raw vs rendered DOM. How to check: Fields that match are shown too, so a difference means something.
Action (Specification for your developer): A template change on your platform. Not claimed: Which version Google trusts is for Google to decide, so we report the difference and not a consequence.
Outcome after re-observation: PARTLY RESOLVED. Canonical is fixed and confirmed. The H1 still differs on one template, so the finding stays open for that field.
Who does the work.
Carried out by the system. Within the rules a person has switched on for the site. Each change is re-observed afterwards, and only counts as done if the fresh facts match the plan. It can be rolled back.
- Fix a sitemap entry: A URL that redirects or is listed wrongly
- Change a canonical: When the evidence shows which address is intended
Prepared for your approval. The engine writes the exact change and the reasons. A person approves it before anything is published.
- Title and meta description: For pages in the strike zone
- Internal links: Between related pages
- Structured data: Corrections to schema
- New or updated content: Briefs and drafts, checked against your facts
Done by a person or another tool. The engine specifies and checks. It does not touch these.
- Theme or template code: Specification for your developer
- Server, CDN and platform settings: Where the change lives outside the site files
- Links and outreach: Opportunities are prepared; a person sends anything, outside Sanocea
- Anything unclear: Unknown actions are never run automatically
03 · DECIDE WHAT DESERVES ATTENTION
Not more reports. A defensible order of work.
Findings are ranked by the value of the pages they affect, the strength of the evidence, the effort and the risk. A confirmed problem is never mixed up with a hypothesis, and a severe issue on a page that doesn’t matter can’t outrank one that does. Change what you care about and watch the order move.
Equal weight to value and evidence, a little to effort and risk.
- 1
Rewrite the “steel water bottle” title
RECOMMENDATION- Value
- ●●●●●
- Evidence
- ●●●●●
- Ease
- ●●●●●
- Safety
- ●●●●●
- 2
Fix the product-schema template
CONFIRMED- Value
- ●●●●●
- Evidence
- ●●●●●
- Ease
- ●●●●●
- Safety
- ●●●●●
- 3
Review the 2 pages that need it
CONFIRMED- Value
- ●●●●●
- Evidence
- ●●●●●
- Ease
- ●●●●●
- Safety
- ●●●●●
- 4
Resolve the “ceramic kettle” overlap
CONFIRMED- Value
- ●●●●●
- Evidence
- ●●●●●
- Ease
- ●●●●●
- Safety
- ●●●●●
- 5
Link the lamp guide to its collection
HYPOTHESIS- Value
- ●●●●●
- Evidence
- ●●●●●
- Ease
- ●●●●●
- Safety
- ●●●●●
- 6
Align canonical across server and browser
CONFIRMED- Value
- ●●●●●
- Evidence
- ●●●●●
- Ease
- ●●●●●
- Safety
- ●●●●●
ILLUSTRATIVE SCORES · IN A REAL RUN THEY COME FROM YOUR PAGES, DATA AND RULES. NO TRAFFIC OR RANKING IS FORECAST.
04 · TURN FINDINGS INTO IMPROVEMENTS
Some work it does. Some it prepares. Some stays with a person.
We say which is which, finding by finding. Not every recommendation can be applied automatically, and we don’t promise that it can. By default a site is recommend-only: Sanocea proposes, a person authorises. Letting the system act is switched on by a person, per action type.
The engine writes the exact change and the reasons. A person approves it before anything is published.
- Title and meta descriptionFor pages in the strike zone
- Internal linksBetween related pages
- Structured dataCorrections to schema
- New or updated contentBriefs and drafts, checked against your facts
05 · MEASURE WHAT HAPPENED
Changes tracked over time, reported as observed.
Every change is checked twice. First, was it applied: the page is fetched again and the fresh facts compared with the plan. Then, did search signals move: compared over a waiting window, with the evidence kept. We report what changed and what didn’t, and we claim a cause only when the evidence supports one.
ILLUSTRATIVE · AVERAGE POSITION FOR ONE QUERY, EXAMPLE STORE
Day 21. Average position moved from about 8.4 to 6.6. An observed change that followed the work. Causation isn’t asserted, because other things move search results too.
- VERIFIEDThe fix is live: re-fetched and matches the plan.
- OBSERVED CHANGEA search signal moved after the work.
- PENDING / OPENWindow not elapsed, or no clear effect. Said plainly.
INTERNAL TEST · ONE PROPERTY
One real run, on our own website.
On 6 October 2026 we pointed the engine at sanocea.com’s insights page, fixed what it found and measured again. It shows the loop working on one property with the data that property has. It is not a benchmark for yours. Choose a finding to replay it.
↑ Choose a finding. Each replays the full loop.
- SIGNALLighthouse flags the insights page as heavy on mobile.
- EVIDENCEThe logo file is 333 KB and displayed at 24 px tall.
- AUTHORITYOur own site. Approved by us. On a client site, what may change is agreed first.
- ACTIONA right-sized copy is served. The original is kept under a new name for social previews and structured data.
- VERIFY
Total page weight
RELIABLE · weight does not vary between runs.
- RECORDWritten into our article of 6 Oct 2026 with the date, tool and environment beside every number.
Real findings from our own site. Lighthouse 12, mobile emulation, headless Chrome on our own server while it was under other load. Read the full article.
SEE EVERY MEASUREMENT FROM THIS TESTincluding the ones that didn’t move
INTERNAL TEST · HOW WE REPORT
Medians and ranges. Including the ones that didn’t move.
Our first pass was one run before and one after, and it told a tidy story. An unchanged page then scored 75 on one run and 47 on the next. So we kept the old release, alternated three runs each, and published medians with ranges.
Total page weight
RELIABLE882 KiB594 KiBColour-contrast failures
RELIABLE60Accessibility score
RELIABLE95 (95–95)100 (100–100)First Contentful Paint
BEYOND NOISE3.0 s (2.6–4.3)1.5 s (1.4–2.9)Cumulative Layout Shift
BEYOND NOISE0.089 (0–0.119)0.0007 (0–0.0007)Performance score
INCONCLUSIVE · NO CLAIM66 (35–76)57 (53–60)Largest Contentful Paint
INCONCLUSIVE · NO CLAIM4.7 s (3.9–8.1)5.3 s (5.2–5.6)Total Blocking Time
INCONCLUSIVE · NO CLAIM326 ms (286–1,900)852 ms (562–1,660)
Before · median (range) After · median (range). Insights page, mobile, 3 runs each. Six runs is not statistical proof.
HOW IT STARTS
Start with what we can see. Add your data to see more.
- 1
A first read, no access needed
We crawl your public site and report what we can see: technical, indexing, structured data, rendering and AI-crawler access, ranked by what matters for your pages.
- 2
Connect your own data, read-only
Search Console first, then Bing, Analytics and field data where they apply. This is what adds queries, pages, positions and indexing state, and what makes the findings yours.
- 3
Set the rules, then measure
You decide what may be done without asking and what must come to you. Every change is checked, and what moved and what didn’t is recorded.
START HERE
Want to know what is limiting your site’s visibility?
Tell us about the site, the market and what you want search to do for you. We will say what we would read first, which sources apply and what a first pass would show.