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.

QUERY MAPwhat the engine reads
STRIKE ZONE · POSITIONS 4–10151015202k5k10k20kaverage position →impressionssteel water bottle

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

QueryPageImpr.ClicksCTRPos.
steel water bottleCOMMERCIAL/collections/bottles18,4003121.7%7.4
ceramic kettleCOMMERCIAL/collections/kettles12,8001501.2%8.2
how to clean a steel bottleHOW-TO/blog/clean-steel-bottle9,1006407.0%2.8
buy desk lamp onlineCOMMERCIAL/blog/desk-lamp-guide7,300951.3%6.1
insulated bottle 1 litreCOMMERCIAL/products/steel-bottle-1l6,2004106.6%3.2
coffee press vs pour overCOMPARISON/blog/press-vs-pour5,4002805.2%4.9
is a steel bottle safeQUESTION/blog/steel-bottle-safety3,9002105.4%3.9
examplestore bottlesNAVIGATIONAL/collections/bottles2,1001,18056.2%1.2
STRIKE ZONE · POSITIONS 4–10151015202k5k10k20kaverage position →impressionssteel water bottle

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

CONFIRMED2 pagesConfidence · High

Two pages compete for “ceramic kettle”

Google alternates between two of your URLs for the same query, so neither holds a steady position.

8910W1W2W3W4W5W6W7W8/collections/…/products/…average position (higher on the chart = better rank)
  1. 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.

OUTCOME LEDGER0 of 6 re-observed. Open each finding’s third step to fill it in.
  • 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. 1

    Rewrite the “steel water bottle” title

    RECOMMENDATION
    Value
    ●●●●●
    Evidence
    ●●●●●
    Ease
    ●●●●●
    Safety
    ●●●●●
  2. 2

    Fix the product-schema template

    CONFIRMED
    Value
    ●●●●●
    Evidence
    ●●●●●
    Ease
    ●●●●●
    Safety
    ●●●●●
  3. 3

    Review the 2 pages that need it

    CONFIRMED
    Value
    ●●●●●
    Evidence
    ●●●●●
    Ease
    ●●●●●
    Safety
    ●●●●●
  4. 4

    Resolve the “ceramic kettle” overlap

    CONFIRMED
    Value
    ●●●●●
    Evidence
    ●●●●●
    Ease
    ●●●●●
    Safety
    ●●●●●
  5. 5

    Link the lamp guide to its collection

    HYPOTHESIS
    Value
    ●●●●●
    Evidence
    ●●●●●
    Ease
    ●●●●●
    Safety
    ●●●●●
  6. 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.

1Found2Concluded3Selected4Policy decision5Executed6Verified

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.

WAITING WINDOW · 14–28 DAYS6789change made-28d+14d+28d

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.

sanocea.com/insights · 6 Oct 2026
  1. SIGNALLighthouse flags the insights page as heavy on mobile.
  2. EVIDENCEThe logo file is 333 KB and displayed at 24 px tall.
  3. AUTHORITYOur own site. Approved by us. On a client site, what may change is agreed first.
  4. ACTIONA right-sized copy is served. The original is kept under a new name for social previews and structured data.
  5. VERIFY

    Total page weight

    882 KiB
    594 KiB

    RELIABLE · weight does not vary between runs.

  6. 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

    882 KiB
    594 KiB
    RELIABLE
  • Colour-contrast failures

    6
    0
    RELIABLE
  • Accessibility score

    95 (95–95)
    100 (100–100)
    RELIABLE
  • First Contentful Paint

    3.0 s (2.6–4.3)
    1.5 s (1.4–2.9)
    BEYOND NOISE
  • Cumulative Layout Shift

    0.089 (0–0.119)
    0.0007 (0–0.0007)
    BEYOND NOISE
  • Performance score

    66 (35–76)
    57 (53–60)
    INCONCLUSIVE · NO CLAIM
  • Largest Contentful Paint

    4.7 s (3.9–8.1)
    5.3 s (5.2–5.6)
    INCONCLUSIVE · NO CLAIM
  • Total Blocking Time

    326 ms (286–1,900)
    852 ms (562–1,660)
    INCONCLUSIVE · NO CLAIM

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. 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. 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. 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.

REQUEST A CONVERSATION