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“
- Upraviť skripty tak, aby prechádzali strany pomocou
start=
a ukladaním výsledkov až do požadovaného limitu (napr. TOP100). - Pridať throttling (náhodné čakacie časy), rotáciu hlavičiek a robustnejšie ošetrenie chýb.
- 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.
Komentáre
Zverejnenie komentára