I opened Yandex Webmaster and saw a number that was hard to ignore: 2,000 pages had disappeared from Yandex search overnight. The project had about 8,000 pages in total, so roughly 25% of the site was no longer shown as participating in search.
My first reaction was the obvious one: SEO can be brutal. But the more useful lesson is more precise. A sudden drop in “pages in search” is an observation, not a diagnosis. The number was real. The reason was still unknown.
What I could actually confirm
At that moment, I had three facts: Yandex Webmaster showed a loss of 2,000 pages, the project contained about 8,000 pages, and the change appeared overnight. What I did not have was evidence that Yandex had penalized the site, that crawling had failed, or that one specific technical change had caused the drop.
That distinction matters because Yandex separates several states that are easy to collapse into one vague idea of “indexing.” A URL can be crawled and still be excluded from search. Yandex also says its robot database can contain pages that cannot currently be displayed in search results. In Webmaster, the useful question is therefore not simply “Did the crawler see this URL?” but “Is this page participating in search, and if not, what status explains the exclusion?”
Yandex documents these states in its pages on pages included in search and pages excluded from search.
Crawling, search participation, ranking, and traffic are different problems
This incident reminded me how easy it is to jump between four different layers: crawling, inclusion in the search system, participation in search, and actual rankings or traffic. They are related, but they are not interchangeable.
- Crawling answers whether the robot fetched the URL.
- Search participation answers whether Yandex currently considers the page eligible to appear in search.
- Ranking answers where an eligible page appears for particular queries.
- Traffic depends on rankings, demand, snippets, click-through rate, seasonality, and many other factors.
So a 25% drop in pages participating in search does not automatically mean a 25% traffic loss. It also does not prove a crawl problem. And it certainly does not, by itself, prove an algorithmic penalty.
Why the size of the drop still mattered
Two thousand URLs is large enough that I would treat it as a pattern, not as a handful of random pages. The important next question is whether the affected URLs have something in common: the same directory, template, content type, canonical setup, status code, internal-linking pattern, or publishing period.
That kind of segmentation is much more useful than staring at one total number. If most excluded pages share one technical characteristic, the investigation becomes narrower. If the losses are spread across unrelated parts of the site, the hypothesis changes.
The key point is that this is an investigation strategy, not a claim about what happened in my case. From the original observation alone, I could not prove the cause.
What I would check before blaming an algorithm
If I saw the same graph again, I would work through it in this order:
- Verify the metric. Confirm that the change is really in “pages in search,” then inspect the excluded-pages view and the dates of the change.
- Look at exclusion reasons. Yandex Webmaster can report reasons such as a page being considered low-value or low-demand, being non-canonical, carrying a
noindexdirective, redirecting, or returning an error. Those statuses are evidence; guessing from the graph is not. - Group affected URLs. Compare directories, templates, page types, languages, generated sections, and publishing periods. A cluster often tells you more than the total count.
- Check the technical basics on samples. Response codes, robots directives, canonical URLs, redirects, page availability, and whether the HTML the robot receives matches what you expect.
- Separate index changes from ranking and traffic changes. Search participation, impressions, clicks, and analytics sessions answer different questions. I would not use one as a proxy for another.
- Only then form a causal hypothesis. If a configuration change, deployment, template update, or content pattern lines up with the affected pages, it becomes a candidate explanation. It still needs evidence.
Yandex recommends checking the specific exclusion reason and, after fixing an actual problem, submitting the page for recrawling. That is a much stronger workflow than reacting to a large number first and searching for a story afterward.
What I would not claim from this incident
I would not write that “Yandex punished the site,” because I did not establish that. I would not say the crawlers simply “became picky,” because that phrase hides multiple technically different outcomes. I would not call the 2,000 pages permanently lost, because exclusion decisions and technical states can change. And I would not assume that all 2,000 URLs disappeared for the same reason without checking the statuses.
This is where SEO stories often become less useful than they could be: a dramatic graph gets converted into a confident explanation too quickly. The graph is evidence that something changed. It is not evidence of every explanation we can imagine.
The lesson I kept from the drop
I still think the original reaction was fair: losing 2,000 of 8,000 pages from search overnight feels brutal. But the better lesson is not “SEO is random.” It is that search systems expose several layers of state, and you have to identify which layer changed before you can explain why.
For me, the useful rule is simple: record the observation first, keep the cause open, then narrow it with page-level evidence. The number was 2,000. The cause was still a question. Keeping those two statements separate makes the incident much more useful.