Stručne: Donedávna stačilo pri Google vyhľadávaní pridať parameter num=100 a získali ste naraz prvých 100 výsledkov. Po zmene zo strany Google sa tento prístup už nedá spoľahlivo používať – výsledky je potrebné prechádzať po stránkach. Pre SEO a monitorovanie tém to znamená upraviť zber dát a skripty.

Prečo sa nás to týka

  • Viditeľnosť & konkurencia: na jednu obrazovku sme zvykli zachytiť celé TOP100 SERP a rýchlo porovnať konkurenciu.
  • Monitoring tém: pri mapovaní zdrojov a trendov sme si vedeli „stiahnuť“ oveľa viac výsledkov naraz. Teraz treba prechádzať stranu po strane.
  • Nástroje a skripty: SEO nástroje aj naše vlastné skripty musia stránkovať(napr. pomocou parametra start=).

Čo to znamená prakticky

  • Manuálne: rýchle „ručne dám si 100 výsledkov“ už nefunguje.
  • Automatizovane: skript musí ísť po stránkach (0–9 → 10–19 → 20–29 …), až kým nezíska požadovaný počet výsledkov.
  • Interpretácia dát: zber je pomalší a treba rátať s väčším počtom requestov (a tým pádom aj robustnejším throttlingom).

Príklady

Príklad 1 (kedysi): 100 výsledkov naraz pre „LLMO“

Stačilo otvoriť URL s parametrom num=100:

https://www.google.com/search?q=LLMO&num=100

➜ Jedna stránka, prvých 100 výsledkov, rýchly export/skríning konkurencie.

Príklad 2 (teraz): stránkovanie (10–20 výsledkov na stranu)

Rovnaká URL s num=100 už 100 výsledkov nevráti. Výsledky treba zbierať po stránkach cez parameter start=:

https://www.google.com/search?q=LLMO           (strana 1: výsledky 1–10/20)
https://www.google.com/search?q=LLMO&start=10 (strana 2: výsledky 11–20/30)
https://www.google.com/search?q=LLMO&start=20 (strana 3: výsledky 21–30/40)
… a tak ďalej

Odporúčané kroky „čo s tým“

  1. Upraviť skripty tak, aby prechádzali strany pomocou start= a ukladaním výsledkov až do požadovaného limitu (napr. TOP100).
  2. Pridať throttling (náhodné čakacie časy), rotáciu hlavičiek a robustnejšie ošetrenie chýb.
  3. Spoliehať sa na nástroje, ktoré už zmenu zapracovali (a porovnať ich výstupy s vlastným zberom pre validáciu).

Ukážka: C# + Selenium (zmena v našom kóde)

U nás sme jemne upravili C# kódy so Seleniom takto – prechod z jednorazového num=100 na stránkovanie so start=. Kľúčová zmena je v generovaní URL a cykle prechádzajúcom stránky:

// PREDTÝM (jedna URL s num=100):
// var url = $"https://www.google.com/search?q={query}&num=100";
// driver.Navigate().GoToUrl(url);
// ... scrapovanie jedinej strany ...

// TERAZ (stránkovanie so 'start='):
var baseUrl = "https://www.google.com/search";
var wanted = 100;              // koľko výsledkov chceme
var pageSize = 10;             // Google typicky vráti 10 (niekedy 15/20) – počítame konzervatívne
var collected = new List<YourResultModel>();

for (int start = 0; start < wanted; start += pageSize)
{
    var url = $"{baseUrl}?q=LLMO&start={start}";
    driver.Navigate().GoToUrl(url);

    // DÔLEŽITÉ: pridajte primerané WaitUntil podmienky a náhodný delay (throttling)
    // Example: Thread.Sleep(Random.Shared.Next(1200, 2500));

    // Extrahujte organické výsledky z aktuálnej strany:
    var results = ExtractOrganicResults(driver); // vaša metóda: parsovanie titulkov/URL/snippetov
    collected.AddRange(results);

    // Bezpečnostná brzda: ak sme už nazbierali >= wanted, končíme.
    if (collected.Count >= wanted) break;

    // Voliteľne: ak stránka vracia menej výsledkov (koniec SERP), tiež ukončite cyklus
    if (results.Count == 0) break;
}

// Ďalej: deduplikácia, persist do DB/CSV, spracovanie...

Poznámky k implementácii:

  • Pridajte explicit waits (napr. WebDriverWait) na načítanie výsledkov.
  • Implementujte throttling (náhodné pauzy) a ošetrujte chybové stavy (dočasné bloky, captcha, prázdne SERP).
  • ExtractOrganicResults by mal cieliť na stabilné selektory (napr. kontajnery výsledkov) a ošetriť drobné zmeny HTML.