Skip to main content

Google Search Console: How to Read the Reports Correctly

29 August 2026

Almost every website owner has a Google Search Console account. Far fewer people trust it. The usual pattern is to log in after a bad month, see a graph pointing down, read a red warning about pages that are "not indexed", panic quietly, and log out again. The tool is free, it is the only official view of how Google treats your site, and most of the time it is read wrongly.

1. The Basics

Google Search Console is a free service from Google that reports what Google's own systems did with your website: which pages it found, which ones it crawled, which ones it put in the index, and how often those pages appeared in search results.

Two things make it different from every other tool in your stack. First, it is the only place Google speaks about your site directly. Every other SEO tool guesses at Google's behaviour from the outside by running searches and watching results. Search Console reports it from the inside. Second, and this is where most misreadings begin, it is not an analytics tool. It does not measure your visitors. It measures Google.

The free tool everyone has and almost nobody reads correctly. It does not tell you how good your website is. It tells you what Google did with it, which is a very different thing.

This article starts with the simplest question you can ask the tool "is this page on Google?" and builds up to the reporting API and the BigQuery export. Along the way it takes apart the three reports people misread most: why "average position" hides almost everything, why the totals never match the table, and why "Discovered - currently not indexed" is a statement about your server rather than a verdict on your content.

The right mental model: Search Console does not measure your website. It measures Google's relationship with your website. Every report answers the question "what did Google do?", never the question "how good is this page?".

1.1 What It Is Not

Getting the negatives right saves months of confusion:

  • It is not analytics. A click in Search Console is a click from a Google search result. It knows nothing about visitors who arrived from a newsletter, a link, or by typing your address.
  • It is not a tracker. It places no script and no cookie on your site, and it never sees your visitors. Section 7.3 explains why that removes it from the cookie banner entirely.
  • It is not a ranking tool. There is no report that says "you rank fourth for this word". Position is an average over impressions, which is a different and much weaker statement.
  • It is not real time. Google states that collected data "should be available in 2-3 days". A drop you see today happened earlier this week.
  • It is not Google Search. Search Console covers Google only. Bing, DuckDuckGo, and any AI assistant reading your pages are invisible here.

1.2 Crawling, Indexing, and Serving Are Three Different Things

Nearly every confusing report in this tool becomes readable once you separate three stages that most people collapse into the single word "SEO". Google describes its own system in exactly these three steps, and says plainly that not all pages make it through each stage.

StageGoogle's descriptionThe question it answers
Crawling "Google downloads text, images, and videos from pages it found on the internet with automated programs called crawlers." Did Googlebot fetch the page?
Indexing "Google analyzes the text, images, and video files on the page, and stores the information in the Google index, which is a large database." Did Google decide to keep it?
Serving "When a user searches on Google, Google returns information that's relevant to the user's query." Did Google decide to show it?

Two things happen inside those stages that are worth naming, because both cause problems people misfile. Rendering belongs to crawling: Google runs the page in Chrome, because sites often rely on JavaScript to put content on the page, and without rendering Google might not see it. Canonicalisation belongs to indexing: Google groups pages it treats as duplicates and picks the one most representative of the group, and the rest become alternate versions.

Each stage fails in its own way, and each failure appears in a different report:

never crawled        →  Pages report:  Discovered - currently not indexed
crawled, not kept    →  Pages report:  Crawled - currently not indexed
indexed, not shown   →  Performance:   indexed but zero impressions
shown, not clicked   →  Performance:   impressions but no clicks

This is the single most useful habit in the whole article: name the stage before you look for a cause. A page with impressions and no clicks has passed all three stages, and no amount of work on crawling or indexing will move it. A page stuck at the first stage cannot be rescued by rewriting its content. Section 6.5 turns this into a checklist.

1.3 Properties: The Two Kinds

Before any report makes sense, you need to know which slice of your site you are looking at. Search Console calls that slice a property, and there are two kinds.

TypeCoversVerified by
Domain property Every protocol and every subdomain at once: http and https, example.com and www.example.com and shop.example.com A DNS record only
URL-prefix property Exactly one prefix. https://www.example.com/ does not include https://example.com/ HTML file, HTML tag, DNS, Google Analytics, or Google Tag Manager

Domain properties arrived in 2019 and solved a real problem: before them, a site that answered on four address variants needed four properties and had its data split four ways. If you are starting today, verify a domain property. Use URL-prefix properties in addition when you genuinely want a subdirectory reported separately, for example one language folder or one shop section.

1.4 What Verification Actually Proves

Verification is often treated as a formality. It is worth understanding what it means, because it explains the tool's whole permission model.

Every verification method asks you to do something that only a person with control over the site or the domain can do: place a file in the web root, add a tag to the HTML that is served, or publish a DNS record. Google then checks that the thing is there.

So verification proves control, not ownership. Nobody at Google checks a contract or a registration. This is why the check is repeated: if the file or the record disappears, the property loses verification and the data goes with it. It also explains why a DNS record is the only method a domain property accepts. A domain property makes claims about every subdomain, and the only thing that demonstrates control over every subdomain is control of the zone itself.

Back to top

2. Where the Name Comes From

The name has changed twice, and both changes tell you something about the tool.

It launched on 2 June 2005 as Google Sitemaps. That was literally all it did: you submitted a sitemap file, and Google confirmed it had read it. The name described the entire product.

Within a year it had grown crawl statistics, index statistics, and query data, so on 24 August 2006 it became Google Webmaster Tools - a set of tools for the person who runs a website.

Then on 20 May 2015 it became Google Search Console. Google was explicit about why. The word "webmaster" had aged badly: it suggested a single technical person in charge of a site, and it put off exactly the people Google wanted using the tool. Google named them at the time - hobbyists, small business owners, SEO experts, marketers, programmers, designers, and app developers.

Google Sitemaps         2005    submit a sitemap
Google Webmaster Tools  2006    tools for the webmaster
Google Search Console   2015    a console for Search, for everyone

"Console" is the older computing sense of the word: the panel you sit at to watch a system and give it instructions. That is a fair description. You watch what Google Search did, and you can send it a small number of instructions - here is a sitemap, please recrawl this, remove this from results for a while.

The rename was only a name. But the first name is still doing damage twenty years later, and section 9 comes back to it: the word "submit" survives from 2005, and it is the single biggest source of false belief about how indexing works.

Back to top

3. A Short History

Search Console is one of the oldest continuously running products Google has, and its shape today is the result of a long argument between what site owners want to know and what Google is willing to say.

DateMilestone
2 June 2005 Launches as Google Sitemaps: a submission form and nothing else
November 2005 Gains query statistics, crawl statistics and errors, and index statistics
24 August 2006 Renamed Google Webmaster Tools
December 2012 Data Highlighter released, letting owners mark up structured data without editing HTML
20 May 2015 Renamed Google Search Console
January 2018 The rebuilt Search Console arrives, with the 16-month Performance report replacing 90 days of Search Analytics
2019 Domain properties introduced, combining all protocol and subdomain variants
September 2019 The legacy reports, home page, and dashboard are switched off
February 2023 Bulk data export to BigQuery, removing the row caps for the first time

Two moments in that table matter more than the rest.

The 2018 rebuild extended history from 90 days to 16 months. That sounds like a storage decision and is actually analytical: 16 months is the shortest window that lets you compare a month against the same month a year earlier. Below 16 months you cannot separate a seasonal dip from a real decline, and every year-on-year question was guesswork.

The 2023 BigQuery export matters because until then every route into the data - the screen, the export button, even the API - was capped and sampled. Section 6 covers what that changed.

Back to top

4. Simple Use Cases

4.1 The Simplest Useful Question: Is This Page on Google?

Paste any URL from your verified property into the inspection bar at the top of Search Console. This is the URL Inspection tool, and it is the one report that answers a question with a yes or a no.

URL is on Google
    → the page is indexed and can appear in results

URL is not on Google
    → it is not indexed; the report gives the reason underneath

Read one distinction carefully, because everything else in the tool depends on it. By default, inspection reports the version in Google's index, which is what Google stored the last time it crawled the page. That may be weeks old. It is not what a visitor sees right now.

The Test live URL button is the other question: fetch the page as it is served this second and report whether it could be indexed. Use the indexed version to explain what Google is currently showing. Use the live test to check whether a fix you deployed this morning actually works.

There is a second way to ask the same question, and it needs no Search Console account at all: the site: operator in ordinary Google Search. Google documents it with the protocol included, which pins the query to one exact address:

site:https://petermartin.nl/en/focus-on/web/google-search-console
    → one URL: is this exact page in the index?

site:petermartin.nl/en/focus-on/web/
    → drop the protocol to widen it to everything under a path

site:petermartin.nl
    → the whole domain

It is genuinely useful, and Google says so: the operator "can help in a few ways with debugging a site". But it has an asymmetry that catches people, and it is the same shape as every other misreading in this article. A hit is proof. A miss is not.

If the page comes back, it is indexed, and you are finished. If it does not come back, you have learned almost nothing. Because Google states plainly that "the site: operator doesn't necessarily return all the URLs that are indexed under the prefix specified in the query", and adds that "bigger sites shouldn't expect to see all their URLs in the results".

Google's own instruction for what to do with a miss is exactly the tool from the start of this section: "If a URL doesn't show in a site: query, use the URL Inspection tool to make sure the URL can be indexed and to submit the URL to indexing."

Questionsite: searchURL Inspection
Is the page indexed? A hit says yes. A miss says nothing Authoritative, both ways
Why is it not indexed? No answer Gives the reason
Last crawl, chosen canonical No Yes
Needs a verified property No Yes
Works on a site you do not own Yes No

That last row is the real reason to keep site: in your hands. It is the one indexing question you can ask about somebody else's website: a competitor, a client you have not been given access to yet, or a site you are about to take over. Search Console will never tell you anything about a property you have not verified.

4.2 The Performance Report and Its Four Numbers

The Performance report is where most people spend their time, and all of it rests on four metrics. Google's definitions are more specific than the words suggest.

MetricWhat Google actually counts
Impressions A user "has seen (or potentially seen)" a link to your site. Potentially matters: as a result, below the fold on a page the user never scrolled still counts.
Clicks A click that sends the user to a page outside Google Search, Discover, or News.
CTR Clicks divided by impressions. Nothing more.
Position The topmost position of any link to your property, averaged across all queries. Section 7.1 explains why this number lies more often than it helps.

Impressions and clicks are counts and behave sensibly. CTR is a ratio and behaves sensibly. Position is an average, and averages of positions are dangerous.

4.3 Submitting a Sitemap

Open Sitemaps, enter the path to your sitemap, and submit it. Search Console reports back when it last read the file, how many URLs it found, and any parse errors.

https://example.com/sitemap.xml    Success    Last read: 24 Aug 2026    412 URLs

What this does: it tells Google that these URLs exist and are worth discovering. That is genuinely useful for a new site, a large site, or pages nothing links to.

What it does not do: it does not cause indexing, and it does not speed up ranking. "Success" means the file parsed. It is a statement about your XML, not about your content. A sitemap with 412 URLs and 30 indexed pages is a perfectly normal thing for Google to report and does not mean the sitemap failed.

4.4 The Page Indexing Report at a Glance

The Pages report splits every URL Google knows about into indexed and not indexed, and gives a reason for each URL in the second group.

The important habit here is to stop reading "not indexed" as a failure. The list mixes together outcomes you deliberately caused with outcomes you did not:

  • Excluded by 'noindex' tag - you asked for this. Correct behaviour.
  • Alternate page with proper canonical tag - you asked for this too.
  • Page with redirect - normal, and healthy.
  • Not found (404) - worth checking, often just an old deleted page.
  • Crawled - currently not indexed - Google looked and declined. This one is a real signal.
  • Discovered - currently not indexed - the most misread label in the entire product. Section 7.4.

A healthy site has a large "not indexed" number. Judge the reasons, never the total.

Back to top

5. Moderate Use Cases

5.1 Filtering and Comparing

The Performance report is only useful once you stop looking at the default view. Every dimension across the top - Queries, Pages, Countries, Devices, Search Appearance, Dates - is both a tab and a filter, and filters combine.

The comparison mode is the part worth learning. Comparing a period against the previous period answers "is this changing?" Comparing against the same period one year earlier answers "is this changing for a reason other than the season?". For any site with a seasonal pattern, the second question is the only honest one, and it is the reason the 16-month window exists.

5.2 The Pivot That Answers Real Questions

The single most useful move in the interface: filter to one page, then switch to the Queries tab.

Pages tab       → click /guides/dns-explained
Queries tab     → now shows only the queries that produced
                  impressions for THAT page

This inverts the report. Instead of "what does my site rank for", you get "what does Google think this page is about". The two often disagree, and the disagreement is the finding. A page written about one subject that collects impressions for a different subject is telling you which words on it are doing the work.

5.3 Finding the Pages That Almost Rank

A repeatable exercise that needs no external tool. Filter the Queries tab to a position between 8 and 20, and sort by impressions.

Those queries have two properties at once: Google already considers your page relevant enough to show, and almost nobody sees it. Because that range spans the bottom of page one and the top of page two. The cost of moving a result from position 12 to position 8 is far lower than the cost of creating a page that ranks from nothing.

Add a low CTR filter, and you get a second, cheaper list: queries where you rank well but the result is not attractive enough to click. That is usually a title and description problem rather than a content problem, and it is fixable in minutes.

5.4 Exporting, and Why the Export Is Bigger Than the Screen

The export button offers CSV, Excel, and Google Sheets. It is worth using even when the screen seems to show what you need, because the screen is capped.

Google is direct about this: "Our tables can show a maximum of 1,000 rows, so some rows might be omitted." That cap applies per table, and it is the reason a site with thousands of ranking queries always seems to have exactly 1,000 of them.

Anything requiring arithmetic across more than 1,000 rows needs the export, and anything requiring the complete set needs the API or the BigQuery export in section 6.

5.5 The Core Web Vitals Report

The Core Web Vitals report is the one part of Search Console that reports on your visitors rather than on Google. It does not run a test. It comes from the CrUX report (short for Chrome User Experience Report), which collects anonymised timings from real Chrome users who visited your pages - what the industry calls field data.

Three metrics, each with a good and a poor threshold:

MetricMeasuresGoodPoor
LCP (Largest Contentful Paint) How long until the main content appears 2.5 s or less Over 4 s
INP (Interaction to Next Paint) How long the page takes to respond to input 200 ms or less Over 500 ms
CLS (Cumulative Layout Shift) How much the layout jumps while loading 0.1 or less Over 0.25

Two mechanics explain almost every confusing thing about this report.

First, the number shown is the 75th percentile over the last 28 days: 75% of page requests were this fast or faster. So a fix deployed today cannot show up today. It has to work its way through a 28-day window, and the report will keep reporting the old experience for weeks while doing nothing wrong.

Second, URLs are grouped by similar experience rather than listed individually, and a group needs a minimum amount of traffic before it can be reported at all. When there is not enough data, Search Console falls back to an origin-level group in the form protocol://host:port. This is why a small site often sees one row covering everything, and why the example URLs in a group are examples rather than the full list.

A group takes the status of its worst metric. One bad CLS score marks the whole group poor even when LCP and INP are fine.

5.6 The Two Reports You Hope Stay Empty

Two reports differ from everything else in Search Console: they are the only places where Google tells you that a human being made a decision about your site.

Manual actions. Google's definition is direct: "Google issues a manual action against a site when a human reviewer at Google has determined that pages on the site are not compliant with Google's spam policies." So is the consequence: "If a site has a manual action, some or all of that site will not be shown in Google search results." When you have fixed the cause, you select Request Review in the report and describe what you changed. Google says review can take several days or weeks.

Security issues. A separate report for a separate problem: hacking, malware, and injected spam pages. This is not about breaking Google's rules, it is about somebody else having broken into your site. It is often the fastest warning you will get that a site is compromised, because it can appear before anything looks wrong to a visitor.

Now the part that matters more than either report, and it is the reason to look at them early rather than late. An empty manual actions report does not mean Google approves of your site. The overwhelming majority of ranking losses are algorithmic, and an algorithmic demotion produces no manual action, no message, no report, and no notification anywhere in this product. If your traffic fell and this report shows a green tick, then the cause is not a penalty. People lose weeks hunting for a punishment that was never issued.

5.7 Moving a Site: the Change of Address Tool

When a site moves to a new domain, Search Console has a tool that "tells Google about your change, and helps to migrate your Google Search results from your old site to your new site". It is worth knowing precisely what it needs and what it refuses to do, because a migration is the moment this tool matters most.

It requires you to be a verified owner of both the old and the new property, under the same Google account, and it works at domain level only.

The number to write down: Google forwards signals "for 180 days after you start migration in Search Console". That is the floor for how long your redirects must stay up. Remove them earlier and you throw away the migration; after that window Google treats the two sites as unrelated.

What it will not do, and each of these catches somebody:

  • It does not apply to an http to https move.
  • It does not handle www to non-www on the same domain.
  • It cannot migrate a path-level move inside one domain.
  • It does not move subdomains for you; each is migrated separately.
  • It does not clear the old site: "Google does not erase the old site from the index, and URLs from the old site can continue to be shown in Search results".

The tool is a signal, not a switch. Server-side redirects still do the actual work.

Back to top

6. Advanced Use Cases

Everything so far is the interface. The interface is capped at 1,000 rows, hides rare queries, and cannot be scheduled. All three limits lift once you go underneath it.

6.1 The Search Console API

The Search Analytics API returns the same data as the Performance report, in bulk, on demand. A query is a JSON document posted to the endpoint for one property:

POST https://www.googleapis.com/webmasters/v3/sites/
     https%3A%2F%2Fexample.com%2F/searchAnalytics/query

{
  "startDate":  "2026-07-01",
  "endDate":    "2026-07-31",
  "dimensions": ["query", "page"],
  "rowLimit":   25000,
  "startRow":   0,
  "dataState":  "final"
}

The fields that matter, with their documented limits as of August 2026:

FieldValues and limits
dimensions query, page, country, device, searchAppearance, date, hour
rowLimit Valid range 1 to 25,000. Default 1,000
startRow Any non-negative number. Page through by adding rowLimit each call until a call returns zero rows
dataState final (default, settled data), all (includes fresh, still-changing data), hourly_all
aggregationType auto (default), byPage, byProperty, byNewsShowcasePanel

Note rowLimit: 25,000 per call against 1,000 on screen. One API call replaces twenty-five screens, and paging with startRow replaces the rest.

The dataState field is the one people get wrong. The default final excludes the most recent days because that data is still moving. Ask for all and you get today's partial numbers, which look like a collapse in traffic if you forget why they are low.

The quotas are generous: 1,200 queries per minute per site and per user, and 30,000,000 per day per project. Normal reporting will not come close.

6.2 The URL Inspection API

This is the part almost nobody automates, and it is the most useful API of the three for diagnosing a site.

It returns, for one URL at a time, the same index status the interface shows: whether the page is indexed, when it was last crawled, which URL Google picked as canonical, and whether the page has valid structured data.

POST https://searchconsole.googleapis.com/v1/urlInspection/index:inspect

{
  "inspectionUrl": "https://example.com/guides/dns-explained",
  "siteUrl":       "https://example.com/"
}

Two limits define what you can build with it.

The quota is 2,000 queries per day and 600 per minute, per site. That is enough to check a small site completely every night, and not enough to check a large one. For a big site the pattern is a rotating sample - your most important 2,000 URLs daily, or the whole set spread across a month.

The second limit is more surprising and is worth quoting exactly. Google's documentation states: "Presently only the status of the version in the Google index is available; you cannot test the indexability of a live URL." The Test live URL button has no API equivalent. Automation can tell you what Google stored; only a human clicking in the interface can ask Google to fetch the page right now.

What makes this API worth the effort is that it answers a question no other tool can. Compare Google's chosen canonical against the canonical you declared, across every important page, on a schedule. When those two disagree, Google is quietly ignoring your instruction - and nothing in the interface will tell you it is happening at scale.

6.3 Bulk Data Export to BigQuery

The bulk export is the only route to uncapped, unsampled Search Console data. Once configured, Search Console writes to a BigQuery dataset every day. Three tables:

TableContents
searchdata_site_impression Performance data aggregated by property
searchdata_url_impression Performance data aggregated by URL
ExportLog A record of each successful export

Three things change the moment this is running.

The 1,000-row cap is gone, because there is no table to render. The 16-month limit stops applying to your copy: Search Console still forgets after 16 months, but BigQuery keeps whatever it was given, so the export is also the only way to build history longer than Google's own. And you can finally join search data to something else - your own crawl, your sales figures, your server logs.

6.4 A Realistic Pipeline

Put the three together and a small nightly job answers questions that no interface can:

1. Search Analytics API   → every query and page, 25,000 rows per call
2. URL Inspection API     → index status for the top 2,000 URLs
3. Your own crawler       → declared canonical, status code, noindex
4. Join on URL            → the report nobody ships:

   pages you declared canonical  BUT Google chose another URL
   pages in your sitemap         BUT never crawled
   pages with impressions        BUT returning 404 today
   pages indexed                 BUT noindex in the HTML

Every line in that last block is a real defect that is close to invisible in the interface, because the interface shows one URL at a time, and these problems are only visible in the aggregate.

6.5 A Debugging Order That Works

The most common question put to this tool is "why does this page get no traffic from Google?". It has at least a dozen possible answers, and guessing between them is what wastes the time. Work the three stages from section 1.2 in order, and stop at the first step that fails - everything below it is a symptom, not a cause.

  1. Does the URL return what you think it returns? Check the status code yourself before believing any report.
  2. Can Googlebot reach it? Robots rules, authentication, firewall and CDN blocking, and whether the CSS and JavaScript the page needs are themselves blocked.
  3. Is the content in the rendered page? If the text arrives only after JavaScript runs, confirm Google sees it.
  4. Is there a noindex? In the HTML or in an X-Robots-Tag header. This is the single most common answer, and a leftover from a staging site is the usual source.
  5. Which canonical does the page declare?
  6. Which canonical did Google choose? When 5 and 6 disagree, Google is ignoring your declaration, and that is the finding.
  7. Is the page linked from anywhere on your own site? A page reachable only from a sitemap is a weak candidate.
  8. Does URL Inspection report it as indexed? If not, you have a stage-one or stage-two problem and the steps below do not apply.
  9. Does it have impressions? Indexed with zero impressions means Google keeps it but never considers it relevant enough to show.
  10. Impressions but no clicks? The page is being served. Now the question is the title, the description, the competition, and whether the page matches what the searcher wanted.

Steps 1 to 4 are things you control and can verify in a minute. Steps 5 to 8 are Search Console's territory. Steps 9 and 10 are not technical problems at all. Most people start at step 10 and work upwards, which is why so much effort goes into rewriting pages that Google has never once fetched.

Back to top

7. Something Most Users Do Not Know

7.1 Average Position Is an Average of Averages

Position is the most quoted number in Search Console and the least trustworthy. Google's definition: the topmost position of a link to your property, averaged across all queries.

Consider two pages that both report an average position of 5.5.

Page A     ranks 5 or 6 for every one of its 40 queries
           average 5.5   → genuinely a page-one result

Page B     ranks 1 for 20 queries, ranks 10 for 20 queries
           average 5.5   → not a page-one result for anything;
                             two different behaviours, averaged
                             into a number matching neither

The average is the same. The situations have nothing in common, and they need opposite responses. Page A needs a small push. Page B needs its twenty weak queries examined, because the strong twenty are already winning and are hiding them.

There is a second trap inside the same number. Because position averages over impressions, a page that stops appearing for its worst queries shows an average position that improves while traffic falls. Position going up and clicks going down at the same time is not a paradox and not a bug. It usually means you lost the long tail.

Never read an average position without impressions next to it. On its own it is a statistic with no defensible meaning, and it moves for reasons that have nothing to do with ranking better.

7.2 Anonymised Queries, and Why the Totals Never Match

Add up every row of the query table, and you get a smaller number than the total on the chart above it. This is not rounding, and it is not a bug.

Google does not show queries made a tiny number of times, or queries containing personal or sensitive information. These are anonymised queries, and they exist to protect the person who typed them: a search rare enough to identify someone must not be handed to a website owner.

The mechanics are precise and worth memorising:

  • Anonymised queries are always omitted from the table.
  • They are included in the chart totals - unless you filter by query, at which point they drop out of the totals too.
  • So filtering by query silently changes the number at the top of the page.

Here is the part that surprises even experienced users. The BigQuery export includes a field the interface has no way to show:

is_anonymized_query      "Rare queries (called anonymized queries) are marked
                          with this bool. The query field will be null when
                          it's true to protect the privacy of users making
                          the query."

is_anonymized_discover   the same threshold applied to Discover, where URL
                          and country are dropped as well

You still cannot read the anonymised queries. But you can count them, and count their clicks. For most content sites this is a large and completely unexamined share of traffic, and the export is the only place where its size can be measured at all.

European site owners spend real effort on cookie banners, consent records, and processing agreements. Search Console needs none of it. The reason is worth understanding rather than simply accepting, because it is the sharpest illustration of what this tool actually is.

Compare the direction the data travels.

GOOGLE ANALYTICS
  your visitor  →  script on YOUR page  →  Google
                you place the tracker, you set the cookie,
                you send Google data about a person

GOOGLE SEARCH CONSOLE
  google.com    →  Google's own logs    →  you
                you place nothing, you set no cookie,
                Google sends YOU aggregated counts

Four of the six verification methods put something completely inert on your site: a text file in the web root, a <meta> tag in the <head>, or a DNS record. None of them runs any code. A meta tag is markup that a browser reads and ignores; it cannot set a cookie or observe anything, and a DNS record never reaches the visitor at all.

The data you get back never touched your website. It is Google's record of what happened on google.com. Google is the controller of that record, gathered from its own users under its own privacy policy, and you receive a summary of it. You are not sending Google anything about your visitors, so there is nothing for a visitor to agree to.

This is also the point of the anonymisation in section 7.2. Google removes rare queries, and queries containing personal or sensitive information, before the data ever reaches you. The identifying detail is stripped on Google's side. That is why the totals never add up, and it is the same mechanism that keeps what you receive aggregated rather than personal.

Analytics measures your visitors and needs their consent. Search Console measures Google and needs nobody's. That difference is not a policy Google chose to be generous; it follows from which direction the data travels.

There is one exception, and it is not really an exception. Two of the six verification methods are Google Analytics and Google Tag Manager: if either is already on your site, Search Console will accept it as proof of control. Those two do collect visitor data - but they were doing that before Search Console was involved, and they carry their own obligations either way. Verifying with them adds nothing new to disclose. Verifying with a DNS record avoids the question completely, which is one more reason to prefer it.

One report deserves a closer look, because it does describe real people: Core Web Vitals. Those timings come from actual Chrome users. But Chrome collects them, from its own users, under Google's terms - nothing on your site gathers them. They reach you as a percentile across a group of URLs, never as a person, and a group is only reported once it has enough traffic to hide the individuals inside it.

The practical result is unusual for a Google product: Search Console adds nothing to your cookie banner, nothing to your consent records, and nothing to the list of things your privacy policy has to declare about tracking visitors. It is one of the few tools you can put on a website without changing anything a visitor is asked to agree to.

7.4 "Discovered - Currently Not Indexed" Is About Your Server

This label causes more unnecessary content rewriting than anything else in the product because it is read as "Google saw your page and judged it too weak". That is not what it says.

Google's own definition: "The page was found by Google, but not crawled yet. Typically, Google wanted to crawl the URL but this was expected to overload the site; therefore, Google rescheduled the crawl."

Google never fetched the page. It cannot have an opinion about the content because it has not read it. The sentence is about crawl capacity: Google estimated that fetching this URL would put too much load on your server, so it queued it for later.

Compare it with the label immediately next to it, which is the one that is a content signal: "The page was crawled by Google but not indexed. It may or may not be indexed in the future; no need to resubmit this URL for crawling."

LabelGoogle read the page?What it is really sayingWhere to look
Discovered - currently not indexed No Crawl capacity: fetching this would overload your site Server response times, hosting, internal linking, crawl waste
Crawled - currently not indexed Yes Quality or duplication: Google read it and declined The content itself, and near-duplicate pages

If the "Discovered" group is large and growing, the useful question is not "is my content good enough" but "what is consuming the crawling Google is willing to spend here". On a big site the usual answers are structural: faceted navigation and filter combinations generating an effectively unlimited URL space, calendars that go on for ever, session identifiers and tracking parameters creating a new URL for every visit, internal search-result pages, long redirect chains, and repeated 5xx or 429 responses that teach Google to back off. Slow responses make all of it worse, because a slower site earns fewer fetches.

Getting these two the wrong way round wastes months. A large and growing "Discovered" group on a slow site is a hosting and crawl-budget problem, and rewriting the pages will not move it. Note the last line of the "Crawled" definition too: "no need to resubmit this URL for crawling". Resubmitting is the first thing most people try, and Google says plainly that it does nothing.

7.5 Knowing Where Search Console Stops

Good tools have edges. These are the ones that matter:

  • It stops at Google. Bing has its own Webmaster Tools, with its own index and its own crawler. An AI assistant fetching your pages appears in neither.
  • It stops at what Google chose to tell you. Sampled reports, 1,000-row tables, anonymised queries. Your server log has every request Googlebot ever made, with no cap and no sampling - it is the only complete record of crawling that exists, and it is on your own disk. One warning before you trust it: a user agent string can be spoofed, and plenty of traffic calls itself Googlebot without being Googlebot. Google's documented check is a reverse DNS lookup on the IP, confirming the name ends in googlebot.com, google.com, or googleusercontent.com, then a forward lookup on that name to confirm it resolves back to the same IP. Google also publishes its crawler ranges as JSON at https://www.gstatic.com/ipranges/, including common-crawlers.json.
  • It stops at your verified property. It says nothing about competitors. Every tool claiming to show a competitor's search data is estimating from the outside. The one question you can still ask about a site you do not own is a site: search (section 4.1), and it answers only the yes half.
  • It stops at field data. Core Web Vitals reports what real visitors experienced over 28 days. To find out why a page is slow you need a lab tool - Lighthouse, WebPageTest, or browser developer tools - which measures a single controlled load and can point at the specific asset.
  • It stops at describing. Search Console diagnoses; it does not fix. Every repair happens in your own templates, server configuration, or content.
Back to top

8. Best Practices

  • Verify a domain property rather than a URL-prefix property, unless you have a specific reason to report on one subdirectory separately.
  • Never read a metric alone. Position needs impressions beside it. CTR needs position. A single number from this tool is almost always misleading.
  • Compare year-on-year, not week on week, for anything seasonal. This is what the 16-month window is for.
  • Judge the reasons in the Pages report, not the total. A large "not indexed" number is normal; the reasons are what carry information.
  • Read "Discovered" as a server problem and "Crawled" as a content problem. They look alike and lead in opposite directions.
  • Export before you calculate. Anything summed across more than 1,000 rows is wrong if you took it from the screen.
  • Turn on the BigQuery bulk export early, even before you need it. It only records from the day you enable it, and Search Console deletes at 16 months regardless.
  • Use the live test to verify a fix and the indexed version to explain current behaviour. Confusing them wastes a debugging session.
  • Give the data 2 to 3 days before drawing conclusions, and remember that dataState: "all" shows partial recent days that always look like a crash.
  • Check what you asked for. Before investigating why a page is missing, inspect it: a noindex left over from a staging site is the most common cause of a page that "Google refuses to index".
  • Go to the source. The product documentation is at support.google.com/webmasters and the API reference at developers.google.com/webmaster-tools. Report definitions and quotas change; both pages carry the current wording, and this article was checked against them in August 2026.
Back to top

9. Common Mistakes

9.1 Nine Myths

MythReality
"Submitting a URL gets it indexed" Submitting requests a crawl. Indexing is a separate decision Google makes afterwards, and it can decline. The word "submit" is a survival from 2005, when the product was a sitemap form.
"Not indexed means something is broken" Most "not indexed" URLs are redirects, canonicalised duplicates, and pages you marked noindex yourself. Read the reason, not the count.
"Average position is my ranking" It is a mean across every query, weighted by impressions. It can improve while your traffic falls.
"The Pages report is a quality score" It reports crawling and indexing decisions. It contains no judgement of how good your content is and no ranking information at all.
"The totals are wrong, the rows do not add up" The chart includes anonymised queries; the table cannot. The gap is a privacy mechanism working correctly.
"It is not in site: results, so it is not indexed" A site: hit proves indexing; a miss proves nothing. Google says the operator "doesn't necessarily return all the URLs that are indexed", and tells you to check URL Inspection instead.
"My traffic dropped, so Google must have penalised me" A penalty is a manual action, issued by a human, and it is reported. If the manual actions report is green, no penalty exists. Nearly all traffic loss is algorithmic and is never reported anywhere.
"Search Console needs a place in my cookie banner" It sets no cookie and runs no script on your site. The verification file, meta tag, or DNS record is inert, and the data comes from Google's own search logs rather than from your visitors. Nothing to consent to.
"Fixing Core Web Vitals shows up immediately" The report is a 75th percentile over 28 days of real visits. A fix takes weeks to appear, however good it is.

9.2 Other Traps to Avoid

  • Comparing a URL-prefix property with a domain property and calling the difference a traffic drop. They cover different sets of URLs.
  • Panicking at the last three days of any graph. Recent data is incomplete and always slopes downward.
  • Filtering by query and then reading the total. That filter removes anonymised queries from the total as well, so the number changes for a reason that has nothing to do with your filter.
  • Treating the sitemap "Success" message as an indexing confirmation. It confirms the file parsed.
  • Requesting indexing repeatedly for the same URL. Google states plainly there is no need to resubmit, and repeating it changes nothing.
  • Using the temporary removals tool to hide a page permanently. It hides results for about six months. To remove a page, delete it or mark it noindex.
  • Verifying with Google Analytics or Tag Manager out of convenience. It works, but it ties your Search Console access to a tracker that may be removed or blocked by a consent choice. A DNS record depends on nothing and keeps the property free of any visitor-facing component.
  • Letting verification lapse. Remove the DNS record or the HTML file during a migration, and the property unverifies, taking the reports with it at exactly the moment you need them.
  • Assuming the property is the whole site. A domain property covers every subdomain; a URL-prefix property covers one prefix, and www and non-www are different prefixes.
Back to top

10. Summary

  • Search Console reports what Google did with your site. It is not analytics, not a ranking tool, and not real time.
  • It started in 2005 as a sitemap submission form, and the word "submit" still causes most of the false beliefs about indexing.
  • Crawling, indexing, and serving are three separate stages, and not every page survives all three. Name the stage before you look for a cause.
  • An empty manual actions report is not approval. Algorithmic demotions produce no report and no notification anywhere.
  • Clicks and impressions are counts you can trust. Average position is an average of averages and can improve while traffic falls.
  • The chart total is larger than the sum of the rows because anonymised queries are counted but never listed.
  • Discovered - currently not indexed means Google never fetched the page and is a statement about crawl capacity. Crawled - currently not indexed means Google read it and declined.
  • The interface caps tables at 1,000 rows. The API returns 25,000 per call, and the BigQuery export has no cap at all.
  • The URL Inspection API gives you index status at scale but cannot run a live test. Only the interface can.
  • Core Web Vitals is field data at the 75th percentile over 28 days, so improvements appear slowly.
  • It sets no cookie and tracks no visitor. The data flows from Google to you, not from your visitors to Google, so there is nothing to add to a cookie banner.
THE FOUR PERFORMANCE METRICS
Impressions   a link was seen, or potentially seen
Clicks        a click leaving Google Search / Discover / News
CTR           clicks / impressions
Position      TOPMOST position, AVERAGED over queries  (handle with care)

IS THIS PAGE INDEXED?  (two tools, different guarantees)
site:https://example.com/path/page    hit = yes; miss = INCONCLUSIVE
                                      no account needed, works on ANY site
URL Inspection (Search Console)       authoritative both ways, gives reasons
                                      your verified properties only

THE THREE STAGES  (name the stage before hunting for a cause)
crawl    fetched?   fails as: Discovered - currently not indexed
index    kept?      fails as: Crawled - currently not indexed
serve    shown?     fails as: indexed, but zero impressions
                    rendering sits inside crawl, canonicals inside index

THE TWO LABELS PEOPLE SWAP
Discovered - currently not indexed   never fetched   → server / crawl capacity
Crawled   - currently not indexed    fetched         → content / duplication

LIMITS THAT EXPLAIN CONFUSING NUMBERS
1,000 rows        maximum in any on-screen table
16 months         how long Search Console keeps Performance data
2-3 days          before collected data appears
28 days, p75      the Core Web Vitals window
anonymised        rare queries: in the chart total, never in the table

THE THREE WAYS OUT OF THE INTERFACE
Search Analytics API   rowLimit 1-25,000 (default 1,000), page with startRow
                       dimensions: query page country device
                                   searchAppearance date hour
                       dataState: final (default) | all | hourly_all
                       quota: 1,200 QPM per site
URL Inspection API     index status only, NO live test
                       quota: 2,000 QPD and 600 QPM per site
BigQuery bulk export   searchdata_site_impression
                       searchdata_url_impression
                       ExportLog
                       no row cap; keeps history past 16 months
                       is_anonymized_query lets you COUNT what you cannot read

HUMAN DECISIONS  (the only two reports where a person at Google acted)
Manual actions    spam-policy violation, reviewed by a human; Request Review
Security issues   hacked, malware, injected spam - someone broke IN
green tick        NOT approval: algorithmic demotions are never reported

MIGRATING A DOMAIN
Change of Address    both properties verified, same account, domain level only
180 days             how long Google forwards signals; keep redirects at least
does NOT cover       http→https, www changes, path moves, subdomains
does NOT clear       the old site stays in the index

PRIVACY: WHICH WAY THE DATA TRAVELS
Analytics        visitor → your page → Google    you track, you ask consent
Search Console   google.com → Google → you      you track nothing
verification     file / meta tag / DNS record are inert: no script, no cookie
exception        verifying via Analytics or Tag Manager reuses an existing
                 tracker; its obligations were already yours

CORE WEB VITALS THRESHOLDS        good        poor
LCP   main content painted        <= 2.5s     > 4s
INP   response to interaction     <= 200ms    > 500ms
CLS   layout movement             <= 0.1      > 0.25
a group takes the status of its WORST metric

Verified August 2026 against support.google.com/webmasters
and developers.google.com/webmaster-tools

Read this way, the tool stops being a source of alarm and becomes a source of evidence. And when a site's traffic falls month after month while the average position on the graph quietly improves, the answer is almost never a penalty: it is a long tail of small queries that stopped appearing, each one too rare for Google to name, counted in a total that no table will ever show you.

Back to top
Google Search Console: How to Read the Reports Correctly
Peter Martin
Peter Martin
Joomla Specialist

Peter is a Joomla specialist and a Linux admin for fast, secure and scalable websites.