Google Site Search
Stop treating site: as a complete inventory of your site — it only shows what Google has chosen to index, and that difference matters more than most SEOs realise.
Start here
- Run
site:yourdomain.comin Google to see which pages are indexed today. - Add a keyword after the domain to find specific content, e.g.
site:example.com pricing. - Use
intitle:andfiletype:withsite:to narrow results further. - Compare
site:competitor.comagainst your own to spot gaps in coverage. - Pair the operator with a crawl tool or your sitemap for the full URL inventory.
Plain-English take
Think of Google's index as a library card catalogue. The site: operator is like asking the librarian, "Show me every book from this author." It only returns books the library has catalogued — not every book the author ever wrote. If a page isn't indexed, it won't show up, no matter how many times you search. That is the single most important thing to understand: site: is a window into the index, not the site itself.
You would not diagnose a site's health based on site: alone, but it is the fastest check you can run without a crawl tool. I use it daily to spot whether a new page has been picked up, or to see if a competitor is ranking for a term I thought they had dropped. It is also the cheapest competitive research available — zero cost, zero logins.
The syntax is straightforward: site:example.com returns all indexed pages from that domain. Add a keyword: site:example.com SEO guide narrows results to pages Google thinks are about SEO guides. Use quotes for exact phrases: site:example.com "content audit" reduces noise. Combine with intitle: to find pages with a specific word in the title: intitle:contact site:example.com. Or filetype:pdf site:example.com to locate PDFs. These combos turn a blunt tool into a precise one.
But know the limits. The operator does not show page titles, meta descriptions, or internal linking structure. It does not reveal why a page ranks where it does. And it only reflects what Google has chosen to index — pages blocked by [robots.txt](/robots-txt/), noindexed, or behind login walls will be invisible. For a complete picture, pair site: with your [sitemap](/sitemap/) to compare what you intended to be indexed against what actually is.
When it actually matters
Content audits: I recently ran site:myclient.com and saw 340 results. Their sitemap had 410 URLs. That 70-page gap meant 70 pages were either not indexed or not discovered. I used site:myclient.com intitle:blog to find which blog posts had made it — only half of them. That told me where to prioritise crawling or internal linking fixes. A proper [SEO audit](/seo-audit/) would dig deeper, but site: gave me the heads-up in 30 seconds.
Competitive research: For a client in travel insurance, I checked site:competitor.com and saw they had indexed 1,200 pages. But when I added site:competitor.com "travel insurance", only 40 showed. That told me they had not optimised most of their pages for that key term. I used site:competitor.com filetype:pdf to find downloadable guides — a content format they were using that my client was not.
Debugging visibility: After a site migration, site:newdomain.com is the first thing I check. If the old domain still shows 500 pages and the new one shows 50, the 301s are not working, or Google has not recrawled. I once saw a client lose 80% of indexed pages post-migration because they forgot to update internal links — site: caught it in 30 seconds.
Finding specific assets: Looking for a contact page? site:example.com contact | about. Need a list of all PDF case studies? site:example.com "case study" filetype:pdf. This is faster than any site search bar.
Edge case: The operator works on subdomains too. site:blog.example.com shows the blog index separately. Useful for segmenting large sites. But it does not work on URL fragments. And if a site uses subdirectories for different languages, site:example.com/en/ narrows to that folder.
Also, the operator can return results from different Google country versions. If you suspect geo-filtering, try site:example.com on google.co.uk versus google.de. For sites with a lot of thin pages, watch out for [duplicate content](/duplicate-content/) issues — site: will surface them if they're indexed, but not always clearly.
What I got wrong
I used to treat site: as a complete inventory. When a client asked "how many pages do we have live?" I would run site: and quote that number. Then I found a set of pages that had been live for months but never indexed — they were hidden behind a [JavaScript login wall](/javascript-seo/). Now I always cross-reference with a sitemap and a crawl.
I also searched too broadly. Just site:example.com returns everything, including garbage pages like tag archives or thin affiliate pages. I now start with site:example.com intitle:keyword to cut noise.
Syntax is finicky. Extra spaces break the operator. site: example.com (space after colon) returns nothing useful. And you cannot combine site: with other operators inside a path — site:example.com inurl:blog works, but not site:example.com/blog.
I thought site: showed all URLs that Google knew about, including those from backlinks or sitemaps. But it only shows indexed pages. I once reported a client had 500 pages indexed, but their crawl showed 600. The missing 100 were pages Google had decided were low-quality and dropped. The client fixed the content, resubmitted via sitemap, and within weeks site: showed 580.
Also, I used to forget that site: results are not ordered by importance — just roughly by relevance to the overall query. I wasted time scrolling through page 10 of results looking for a specific URL. Now I combine with inurl: to jump straight to it. And I always check [canonical tags](/canonical-tag/) separately: if a paginated series has canonicals pointing to page 1, site: may only show that page — not the full set.
Next step
Quick answers
Why do some pages on my site not show up in a site: query?
The site: operator only returns pages that Google has indexed. If a page is not indexed, it won't appear. Common reasons: the page is blocked by robots.txt, has a noindex directive, requires JavaScript login, or Google simply hasn't crawled it yet. Compare against your sitemap to spot gaps.
Is site: the same as a site search tool like Google Custom Search?
No. The site: operator queries Google's public index. Google Custom Search (CSE) creates a separate search engine for your site that can index content behind logins or use custom ranking rules. They are different tools for different purposes.
How often does Google update the results shown by site:?
The site: results reflect the most recent indexed version of each page in Google's index. There is no fixed schedule; updates happen as Google crawls and re-indexes. If you recently published a page, it may take days before it appears.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central: How Google Search Works — Explains crawling, indexing, and serving, which are the foundation for understanding why site search only shows indexed pages.
- Google Search Central: How To Use the Site Search Operator — Primary source for the site: operator syntax and scope.
- Google Search Help: Refine Google searches — Official Google guidance on search refinement and search tools.
Notes from Callum Bennett.