← All posts

Why Google rankings fluctuate: what 46,000 days of page data show

We measured how much pages move in Google with nobody touching them: day to day, week to week and month to month. Here is what is normal, and how to tell a real change from drift.

QueryScope team · · 11 min read · search console gsc rankings data

Google rankings fluctuate because the numbers you read in Search Console are averages over a small and changing set of searches, and because rankings really do drift by a few places a month with nobody touching the page. Most of the day-to-day movement is the first kind: arithmetic, not Google changing its mind about you. The month-to-month movement is real, and it is large enough to fool you into crediting a change that did nothing.

We measured both on the sites QueryScope runs on: about 46,000 page-days of Search Console data (one page on one day) across six sites and 1,250 URLs, going back up to ten months. These are small and mid-sized sites, so the numbers describe sites like that, not a news publisher.

TL;DR:

  • A busy page is shown every day. A page that averages under two impressions a day is shown on fewer than half of them, and that is the search being rare, not the page flickering in and out of Google.
  • A page's daily position is not reliable on a quiet day. With one impression, the typical day-to-day move is 3 places and one day in ten moves 20. Above 100 impressions it is under one place.
  • Weekends run 10% to 35% below weekdays on most sites.
  • A page can lose most of its impressions while its average position does not move. That is a lost search, not a demotion.
  • Over a month, searches nobody touched moved a median of 1.9 places, and more the lower they started. A climb has to beat that drift before it means anything.
  • When a busy page drops to zero overnight, check the page before blaming Google. In our data, more than half of those pages had been redirected or set to noindex.

Is it normal for Google rankings to change every day?

Yes, and on a quiet page most of the daily change is not a ranking change at all. The position Search Console shows for a page is an average over every search that page appeared for that day, weighted by impressions. Google describes it as the average of your topmost position across those appearances (What are impressions, position, and clicks?). With one or two impressions, that "average" is one or two samples.

Here is how far a page's position moved from one day to the next, grouped by how many impressions it had on the day:

  • 1 impression: typical move 3.0 places, one day in ten moved 20.
  • 2 to 3 impressions: typical 3.0, one in ten moved 16.5.
  • 4 to 10 impressions: typical 2.3, one in ten moved 12.4.
  • 11 to 30 impressions: typical 1.5, one in ten moved 7.5.
  • 31 to 100 impressions: typical 1.0, one in ten moved 4.3.
  • Over 100 impressions: typical 0.6, one in ten moved 2.6.

So when one person sees a page at 3 for one search and the next day one person sees it at 14 for a different search, the chart "drops 11 places" and nothing about the page changed. The busiest page in our sample sat between 5.8 and 7.4 for three straight weeks while showing up 315 to 479 times a day. That is what a stable ranking looks like once there is enough data behind it.

Why does a page get impressions one day and none the next?

Because only a few people type its searches, not because Google keeps adding and removing it. Over the last 60 days, for pages at least 60 days old:

  • Under 0.1 impressions a day (614 pages): shown on almost no days.
  • 0.1 to 0.5 a day (142 pages): shown on 17% of days.
  • 0.5 to 2 a day (122 pages): shown on 48% of days.
  • 2 to 10 a day (110 pages): shown on 88% of days.
  • 10 to 50 a day (44 pages): shown every day.
  • Over 50 a day (11 pages): shown every day.

For the low-volume pages, the median gap between two days with an impression was 2 days, and 11% of gaps lasted longer than a week. Whenever they did show, they held a steady position around 7. The page is ranked every day; you only see the days somebody searched.

This is also why the page totals and the query list in Search Console never agree. Rare searches are hidden from the query list for privacy, which we cover in page-level vs query-level data.

Do busy pages get the same impressions every day?

Close to it, with two kinds of wobble on top. For pages averaging ten or more impressions a day, daily impressions moved about 39% around their own 7-day trend. Pure chance at those volumes would give about 24%, so most of that movement is the results page genuinely reshuffling from one day to the next, not counting noise.

The other wobble is the calendar. Indexed against each site's own average over 120 days, weekends ran 10% to 35% lower on most sites, and Monday or Tuesday was usually the high point. One site dropped to 0.65 of its average on Saturdays. Not every site follows the pattern: on one, Saturday was its busiest day. Read any change across whole weeks, never Friday against Monday.

Why did my impressions drop while my position stayed the same?

Because the page stopped appearing for one of its searches, usually the biggest one, and kept ranking for the rest. On AppScreenshotStudio, a post about App Store metadata went from 306 impressions a day to 23 between late June and late July. Its average position over the same weeks stayed between 6.7 and 7.2.

Nothing demoted that page. It most likely fell out of the results for the one search that carried most of its volume, and kept ranking around 7 for small ones, so the average never moved. Across 113 pages on that site seen in both periods, the median position change was zero while site impressions fell 21%.

The same blend explains a result that looks backwards. In our sample, pages averaging position 1 to 3 got the fewest impressions (a median of 0.02 a day), and pages at 6 to 10 got the most (1.1 a day). A page at "position 2" is usually ranking first for something tiny, like its own exact title. A page at 8 is usually on page 1 for something people actually search.

So read position per search, not per page. The page average is in Search Console metrics explained; the per-search view is the one that tells you what moved.

Try it

Point an SEO agent at your own site, not just an essay about one.

QueryScope holds the plan for your site, reads your real Search Console, and hands the coding agent you already have one change at a time to rank for the searches you decided to win. From $49/month, everything included.

How much do rankings move in a month with nobody touching the page?

More than most people assume. We took 2,692 pairs of a search and the page ranking for it, read back-to-back across two separate 28-day windows, with no change recorded on the page in between and at least ten impressions on each side. Across five sites and fifteen window pairs:

  • Starting in the top 3: a median move of 0 places. These barely drift.
  • Starting at 3 to 10: a median move of 1.2 places.
  • Starting at 10 to 20: a median move of 2.7 places.
  • Starting past 20: a median move of 5.6 places.

What it scales with is where the search stood, not how many impressions it had. Searches with 100 to 299 impressions moved at least as much as searches with 10 to 19. Over a month, this is real movement, not counting noise.

Now apply a common rule of thumb: call a move real when it climbs by a fifth of its starting position, so 14 to 11 counts. Of those searches that nobody touched, 41% would have been called improved or declined. Require a climb of half the starting position, so 14 has to reach 7, and that falls to 9%. It held at 8% and 9% on the two halves of the data and stayed between 0% and 12% on every site.

That is the uncomfortable part. A three-place climb from 14 after you rewrote a page is something 37% of untouched searches starting between 12 and 16 did on their own in a month. It may still be your change. It is not evidence that it was.

Why did my page disappear from Google?

Check the page itself first. We looked for pages that were shown every day at ten or more impressions and then dropped to zero overnight, and found 63 of them. When we fetched each one live:

  • 28 redirected to another URL, usually a merge or a rename.
  • 6 carried a noindex tag.
  • 29 still loaded normally. Of those, 27 were still indexed according to URL Inspection, 1 was crawled but not indexed, and 1 was unknown to Google.

So more than half were the site's own doing. One site lost about 80% of its impressions in April, in the week after a Google core update finished rolling out, and all five pages that carried most of the drop had been redirected. A timing match with an update is the obvious explanation and it was the wrong one.

Before any content work, check that the page still returns 200, is not redirected, has no noindex in its HTML or its X-Robots-Tag header, and names itself as canonical. Then read it in URL Inspection.

If the page passes all of that and is still indexed, it was outranked, not removed: other results took its searches. Those often come back on their own. Six of the pages that vanished were pages their sites were deliberately trying to rank, and all six are being shown again without anyone touching them. One now gets over 200 impressions a day.

Do new pages get a burst in their first week?

A small one. Across 508 new pages, the first week after their first impression was shown on 58% of days at 6.4 impressions a day. From the second week that settled to about 38% of days and 4 a day, while the position improved from about 10 to about 8. Traffic recovered slowly from week 8 on. Do not judge a new page on its first week, in either direction.

How do you tell a real ranking change from normal fluctuation?

Compare it to what the same search would have done anyway. In practice that comes down to six habits:

  1. Judge per search, not per page. A page average moves when its mix of searches moves.
  2. Read whole weeks. Weekends alone can look like a 30% drop.
  3. Ignore position on quiet days. Under about 30 impressions, a single day's position is too thin to read.
  4. Start the clock when Google recrawls the page, not on deploy day. Until the recrawl, no searcher has seen the change.
  5. Ask for a move bigger than drift. On our data, only about one untouched search in ten moved half its starting position in a month, so that is the bar we use.
  6. Check the site before blaming Google. A drop to zero is usually a redirect, a noindex or a canonical.

Doing that by hand for every edit is tedious, which is why most changes never get judged at all. It is the method we built QueryScope to run: track an SEO change from the day Google rereads the page. It logs each change against the search it was made for, starts the clock at the recrawl, waits the window that kind of change needs, and only calls a ranking move when it clears the drift for that position. When a whole site drops, it fetches the pages that carried the drop before naming a Google update. We built those last two rules from the measurements in this post.

How we measured this

The data is the daily page-level Search Console history QueryScope stores for each connected site, plus its weekly 28-day snapshots of searches per page. Six sites, 1,250 URLs, up to ten months of history, read on 2026-10-12: 46,133 days on which a page was shown. Search Console returns no row for a day a page was not shown, so for the questions about how often a page is shown, every day between a page's first impression and the end of its site's data with no row counts as a day with zero impressions. The three most recent days were left out of every daily figure, because Search Console fills them in late and an unfinished day always reads low.

Limits worth knowing: these are small and mid-sized sites, mostly software and publishing, so a large publisher will see different volumes. Position comes from Google's own impression-weighted averages, so every caveat above about averages applies to our numbers too. The monthly drift only counts searches with at least ten impressions in both windows.

Sources

Try it

Put an SEO agent in your editor.

Ask your coding agent what to work on. QueryScope reads your real Search Console, holds the searches you decided to win, and hands back one move at a time with the proof it worked. From $49/month, everything included. 1, 3 or 10 sites.