Najlepsze ustawienia Cloudflare /crawl dla dowolnej strony internetowej
Endpoint /crawl w ramach Cloudflare Browser Rendering to jeden z najszybszych sposobow na ekstrakcje tresci stron internetowych na duzej skali, ale domyslne ustawienia nie sa optymalne dla wiekszosci zastosowan. Po przeprowadzeniu crawli na dziesiaatkach witryn – od sklepow Shopify, przez aplikacje SPA w React, po strony dokumentacji – oto ustawienia, ktore konsekwentnie daja najlepsze wyniki.
Ten przewodnik opisuje, co robi kazde ustawienie, kiedy je zmieniac i jakie konkretne polecenia najlepiej sprawdzaja sie dla popularnych typow stron.
Najwazniejsza decyzja: tryb renderowania
Kazdy crawl zaczyna sie od jednego wyboru: czy Cloudflare powinien zaladowac strone w przegladarce bezglowej, czy po prostu pobrac surowy HTML?
render: false (--no-render) pobiera HTML bez wykonywania JavaScript. Jest szybki, darmowy w okresie beta i generuje czysty wynik dla kazdej strony, ktora serwuje tresc w poczatkowej odpowiedzi HTML.
render: true (domyslny) laduje kazda strone w bezglowej instancji Chromium, wykonuje JavaScript, czeka az strona sie ustabilizuje, a nastepnie wyodrebnia tresc. Jest wolniejszy, zuzywa godziny przegladarki i kosztuje po przekroczeniu darmowych 10 godzin/miesiac.
Kiedy kazdy tryb ma sens
| Typ strony | Zalecany tryb | Powod |
|---|---|---|
| Sklepy Shopify | --no-render |
Produkty, kolekcje i strony sa renderowane po stronie serwera |
| Strony WordPress | --no-render |
Tresc znajduje sie w poczatkowej odpowiedzi HTML |
| Strony statyczne i blogi | --no-render |
Brak tresci zaleznej od JavaScript |
| Strony Hugo, Jekyll, Astro | --no-render |
Gotowy HTML generowany w czasie wdrozenia |
| Aplikacje SPA React lub Vue | render: true |
Tresc ladowana przez JavaScript po pierwszym zaladowaniu strony |
| Strony z leniwie ladowanymi danymi | render: true |
Recenzje, ceny i rekomendacje moga wymagac JS |
W naszych testach sklepy Shopify zwracaly okolo 90% identycznej tresci w obu trybach renderowania. Dodatkowa tresc z renderowania to glownie dynamiczne elementy interfejsu, takie jak szuflady koszyka i widgety rekomendacji, a nie istotne dane produktowe. Pelne porownanie trybow renderowania z benchmarkami bezposrednimi omawiamy w artykule Zalety i wady endpointu Cloudflare Crawl dla sklepow Shopify.
Zasada ogolna: zacznij od --no-render. Jesli w wynikach brakuje potrzebnej tresci, przelacz sie na tryb renderowania.
Wykrywanie adresow URL: mapy witryn vs linki
Flaga --source kontroluje sposob, w jaki Cloudflare znajduje strony do crawlowania.
--source sitemaps odczytuje plik sitemap.xml witryny i crawluje tylko adresy URL w nim wymienione. Jest to przewidywalne, obejmuje strony, ktore wlasciciel witryny uwaza za kanoniczne, i pozwala uniknac crawlowania zduplikowanych lub malo wartosciowych stron.
--source links zaczyna od podanego adresu URL i podaza za linkami <a href> znajdowanymi na kazdej stronie. Wykrywa strony w sposob, w jaki robilaby to wyszukiwarka, ale moze pominac osierocone strony i moze wchodzic w paginacje, filtry lub inne malo wartosciowe wzorce adresow URL.
--source all (domyslny) laczy obie metody.
Ktore wybrac
Uzyj --source sitemaps, gdy strona ma kompletna, dobrze utrzymywana mape witryny. Wiekszosc stron Shopify i WordPress ja posiada. Jest to najbardziej niezawodna opcja do ekstrakcji tresci calej witryny.
Uzyj --source links lub all, gdy mapa witryny jest brakujaca, niekompletna lub gdy chcesz specjalnie przeprowadzic audyt wewnetrznej struktury linkow witryny.
Blokowanie zasobow dla crawli render-true
To pojedyncza najskuteczniejsza optymalizacja dla crawli render-true. Domyslnie przegladarka bezglowa laduje kazdy obraz, czcionke, arkusz stylow i plik multimedialny na kazdej stronie. Jest to marnotrawstwo, gdy potrzebujesz tylko tresci tekstowej.
Dodaj --block-resources image media font stylesheet do kazdego crawla render-true. Efekt jest znaczacy:
- Szybkosc: czas crawla spada z okolo 7 sekund na strone do okolo 2 sekund na strone
- Koszt: zuzycie godzin przegladarki zmniejsza sie o 60-70%
- Niezawodnosc: strony, ktore zawieszalyby sie w nieskonczonosc czekajac na wolne zasoby CDN, teraz koncza sie normalnie
Przegladarka nadal wykonuje JavaScript i buduje DOM. Po prostu pomija pobieranie zasobow, ktore nie wplywaja na tresc tekstowa.
Warunek oczekiwania
Flaga --wait-until mowi przegladarce, kiedy przestac czekac i wyodrebniac tresc. Domyslna wartosc czeka na zakonczenie calej aktywnosci sieciowej, co jest wolne i niepotrzebne do ekstrakcji tresci.
--wait-until domcontentloaded mowi przegladarce, aby wyodrebnila tresc, gdy tylko DOM bedzie gotowy. Do ekstrakcji tekstu jest to prawie zawsze wystarczajace. JavaScript ladujacy tresc zostanie juz wykonany, ale pingi analityczne w tle i wywolania sieci reklamowych nie beda opozniac crawla.
Zalecane polecenia wedlug typu strony
Sklep Shopify (cala witryna)
python crawl.py run https://example.com \
--limit 500 \
--format markdown \
--no-render \
--source sitemaps \
-o results.json
Szybki, darmowy i obejmuje caly katalog produktow. Mapy witryn Shopify sa kompleksowe, wiec --source sitemaps daje pelne pokrycie bez crawlowania paginowanych kolekcji czy stron wynikow wyszukiwania.
Sklep Shopify (tylko produkty)
python crawl.py run https://example.com \
--limit 1000 \
--format markdown \
--no-render \
--include-patterns "https://example.com/products/**" \
-o products.json
Flaga --include-patterns ogranicza crawl do adresow URL pasujacych do podanego wzorca. Przydatna, gdy potrzebujesz tylko stron produktowych i chcesz pominac kolekcje, wpisy na blogu i strony z regulaminami.
WordPress lub blog statyczny
python crawl.py run https://example.com \
--limit 500 \
--format markdown \
--no-render \
--source sitemaps \
-o results.json
Te same ustawienia co dla Shopify. Strony WordPress sa renderowane po stronie serwera i maja niezawodne mapy witryn. Generatory stron statycznych (Hugo, Jekyll, Eleventy, Astro) produkuja gotowy HTML, wiec render-false przechwytuje wszystko.
Aplikacja SPA React lub Vue
python crawl.py run https://example.com \
--limit 500 \
--format markdown \
--source sitemaps \
--block-resources image media font stylesheet \
--wait-until domcontentloaded \
-o results.json
Render-true jest domyslny, wiec nie jest potrzebna dodatkowa flaga. Kluczowe dodatki to --block-resources i --wait-until domcontentloaded. Bez nich crawl bedzie wolny i kosztowny.
Jesli aplikacja SPA nie ma mapy witryny, przelacz sie na --source links.
Strona dokumentacji
python crawl.py run https://docs.example.com \
--limit 500 \
--format markdown \
--no-render \
--depth 5 \
--exclude-patterns "*/changelog/**" "*/archive/**" \
-o docs.json
Strony dokumentacji czesto maja glebokie struktury linkow. Zwieksz --depth, aby sledzic zagniezdzone hierarchie stron. Uzyj --exclude-patterns, aby pominac strony z logiem zmian, zarchiwizowane wersje lub inna tresc, ktorej nie potrzebujesz.
Benchmarki wydajnosci
Te liczby pochodza z rzeczywistych crawli sklepow Shopify i e-commerce w marcu 2026 roku. Nazwy witryn zostaly zanonimizowane.
| Witryna | Strony | Tryb | Rozmiar tresci | Czas przegladarki | Calkowity czas |
|---|---|---|---|---|---|
| Sklep z suplementami (z ochrona przed botami) | 89/100 | no-render | 5,9 MB | 0s | ~3,5 min |
| Marka odziezowa (duzy katalog) | 500/500 | no-render | 77,1 MB | 0s | ~18 min |
| Marka odziezowa (duzy katalog) | 4/5 | render-true | 0,6 MB | 0,9s | ~10s |
| Marka outdoorowa DTC | 256/266 | no-render | 11,0 MB | 0s | ~5 min |
| Marka outdoorowa DTC | 256/266 | render-true | 12,5 MB | 1 338s | ~25 min |
| Sklep z odziezia medyczna | 1 200 | no-render | duzy | 0s | ~55 min |
Kluczowe wzorce z danych:
- No-render jest 5 do 10 razy szybszy niz render-true dla tej samej witryny
- No-render zuzywa zero czasu przegladarki (darmowy w okresie beta)
- Rzeczywisty czas skaluje sie liniowo z liczba stron dla crawli no-render
- Witryny z dyrektywami crawl-delay w
robots.txtbeda wolne niezaleznie od ustawien, poniewaz crawler je respektuje
Optymalizacja kosztow
Plan Workers Paid kosztuje 5$/miesiac. Poza tym koszty wynikaja z godzin przegladarki zuzywanych przez crawle render-true.
Darmowy poziom: 10 godzin przegladarki/miesiac. Crawl render-true na 500 stronach z blokowaniem zasobow zuzywa okolo 15-20 minut czasu przegladarki. Mozesz przeprowadzic ponad 30 zoptymalizowanych crawli miesiecznie w ramach darmowego poziomu.
Bez blokowania zasobow: ten sam crawl na 500 stronach moze zuzyc ponad 60 minut czasu przegladarki, co zmniejsza twoja darmowa pojemnosc do okolo 10 crawli miesiecznie.
Crawle no-render sa darmowe w okresie beta. Dla stron renderowanych po stronie serwera nie ma powodu, aby uzywac render-true.
Wzor na koszt
Browser cost = (pages x seconds_per_page) / 3600 x $0.09
Przy 2 sekundach na strone (zoptymalizowany render-true): 500 stron = 0,28 godziny = 0,025$
Przy 7 sekundach na strone (niezoptymalizowany): 500 stron = 0,97 godziny = 0,087$
Roznica jest niewielka na jeden crawl, ale kumuluje sie przy codziennym lub tygodniowym crawlowaniu wielu witryn.
Limity, ktore warto znac
| Zasob | Limit |
|---|---|
| Strony na crawl | 100 000 |
| Zadania crawl na dzien | Bez limitu (Workers Paid) |
| Godziny przegladarki | 10 godz./miesiac darmowych, potem 0,09$/godz. |
| Zapytania API | 600/minute |
| Rownolegle przegladarki | 30 na konto |
| Czas zycia zadania | Maks. 7 dni, wyniki dostepne przez 14 dni |
Czeste problemy i rozwiazania
Bledy 403 na wiekszosci stron: witryna ma ochrone przed botami (Cloudflare Bot Management, Akamai, Datadome). Nie mozna tego obejsc przez endpoint /crawl. Crawl zakonczy sie, ale wiekszosc stron zwroci bledy.
Crawl render-true zawiesza sie pod koniec: jedna lub wiecej stron ma wolno ladujace sie zasoby blokujace przegladarke. Dodaj --block-resources image media font stylesheet i --wait-until domcontentloaded.
Brakujaca tresc w trybie no-render: strona laduje tresc przez JavaScript. Przelacz sie na render-true z optymalizacjami blokowania zasobow i oczekiwania.
Skrypt ulega awarii w trakcie crawla: zadanie crawl kontynuuje dzialanie na serwerach Cloudflare. Sprawdz status i pobierz wyniki, gdy sie zakonczy:
python crawl.py status <job_id>
python crawl.py results <job_id> -o out.json
Puste wyniki ze zrodla sitemaps: mapa witryny moze byc brakujaca lub zablokowana. Przelacz sie na --source links lub --source all.
Znane ograniczenia
Przed zbudowaniem przepywu pracy wokol endpointu /crawl, nalezy byc swiadomym tych ograniczen:
- Bledne rozwiazywanie wzglednych adresow URL: konwerter markdown Cloudflare nieprawidlowo rozwiazuje wzgledne adresy URL, takie jak
//www.example.com/path, poprzedzajac je adresem URL strony. Tworzy to znieksztalcone sciezki w wynikach, szczegolnie na stronach Shopify. - Tresc szablonowa na kazdej stronie: menu nawigacyjne, mega menu i stopki pojawiaja sie w formacie markdown na kazdej stronie. Dla typowej strony Shopify okolo 90% tresci na strone to powtarzajaca sie tresc szablonowa. Zobacz nasza analize wskaznikow tresci szablonowej na prawdziwych crawlach Shopify.
- Brak ekstrakcji danych strukturalnych: dane JSON-LD, schema.org i OpenGraph nie sa parsowane w trybie no-render. Render-true przechwytuje podstawowe tagi OG w metadanych, ale nie pelny schemat.
- Brak wykrywania bledow 404: crawl przetwarza tylko aktywne adresy URL. Martwe linki i uszkodzone linki wewnetrzne nie sa raportowane.
- Pojedynczy poczatkowy adres URL: API akceptuje jeden adres URL i rozchodzi sie na zewnatrz. Nie akceptuje listy adresow URL. Do wsadowego pobierania adresow URL uzyj zamiast tego endpointow
/markdownlub/scrape.
Czesto zadawane pytania
Czy powinienem uzywac render true czy render false w Cloudflare /crawl?
Uzyj render false (--no-render) dla stron renderowanych po stronie serwera, takich jak Shopify, WordPress i strony statyczne. Uzyj render true tylko dla aplikacji jednostronicowych zbudowanych w React, Vue lub Angular, gdzie tresc ladowana jest przez JavaScript. W testach sklepy Shopify zwracaly okolo 90% identycznej tresci w obu trybach.
Ile kosztuje Cloudflare Browser Rendering /crawl?
Plan Workers Paid kosztuje 5$/miesiac. Crawle w trybie render-false nie zuzywaja czasu przegladarki i sa darmowe w okresie beta. Crawle w trybie render-true zuzywaja godziny przegladarki: 10 godzin/miesiac jest darmowych, potem 0,09$/godzine. Blokowanie obrazow, czcionek i arkuszy stylow podczas crawli render-true znaczaco zmniejsza czas przegladarki.
Jakie jest najlepsze zrodlo wykrywania adresow URL dla Cloudflare /crawl?
Uzyj --source sitemaps dla stron z kompletnymi mapami witryn, takich jak Shopify i WordPress. Daje to przewidywalne, pelne pokrycie. Uzyj --source links lub all, gdy mapa witryny moze byc niekompletna lub chcesz odkrywac strony w sposob, w jaki robilaby to wyszukiwarka.
Dlaczego moj crawl Cloudflare render-true zawiesza sie na ostatnich stronach?
Strony z wolno ladujacymi sie zasobami, takimi jak duze obrazy lub skrypty firm trzecich, moga blokowac przegladarke bezglowa na ponad 60 sekund. Napraw to, dodajac --block-resources image media font stylesheet i --wait-until domcontentloaded do polecenia crawla.