Crawl budget w dużym sklepie WooCommerce: co blokować, co udostępnić

Dlaczego WooCommerce generuje za dużo URL-i

3000 produktów. Brzmi jak mały sklep. Wchodzę do Google Search Console, otwieram raport indeksacji: 47 000 URL-i. Skąd te dodatkowe 44 000?

WordPress, na którym WooCommerce jest zbudowany, został zaprojektowany jako system blogowy. Każda funkcja dodawana przez lata tworzy kolejne adresy URL, o których istnieniu właściciel sklepu często nie wie. Tagi produktowe, archiwa dat, strony załączników, feedy RSS, parametry filtrów. Wszystko to mnożnik, który zamienia Twoje 3000 produktów w 50 000 adresów dla Googlebota.

Googlebot ma ograniczony budżet indeksacji i jeśli większość tego budżetu marnuje się na bezwartościowe strony, Twoje kluczowe produkty i kategorie mogą miesiącami czekać na zaindeksowanie. Zanim zaczniesz blokować i ustawiać noindex, musisz zrozumieć, skąd biorą się te wszystkie adresy.

Tagi produktowe

WooCommerce pozwala dodawać tagi do produktów, a każdy tag automatycznie dostaje własną stronę archiwum. Jeśli masz tag “bawełna” przypisany do 15 produktów, WordPress generuje stronę /product-tag/bawelna/ z listingiem tych produktów. Problem w tym, że większość sklepów tworzy tagi bez strategii. Ostatnio audytowałem sklep, który miał 340 tagów produktowych. Trzysta czterdzieści. Na 1200 produktów. Każdy tag to osobna strona w indeksie Google, każda kanibalizuje frazy z właściwych kategorii.

Archiwa atrybutów

WooCommerce tworzy oddzielne strony archiwów dla każdego atrybutu produktowego. Jeśli masz atrybut “kolor” z wartościami “czerwony”, “niebieski”, “zielony”, to WordPress generuje trzy osobne strony: /kolor/czerwony/, /kolor/niebieski/, /kolor/zielony/. Pomnóż to przez liczbę atrybutów (rozmiar, materiał, marka, styl) i ich wartości, a liczba URL-i rośnie błyskawicznie.

Archiwa dat

WordPress domyślnie tworzy strony archiwów dla każdego miesiąca i roku, w którym opublikowano jakikolwiek wpis lub produkt. Sklep działający od 2020 roku ma co najmniej kilkadziesiąt stron archiwów dat. Żadna z nich nie odpowiada na realne zapytanie użytkownika i każda stanowi duplikat treści dostępnych na stronach kategorii.

Paginacja

Kategoria z 500 produktami, przy domyślnym ustawieniu 12 produktów na stronę, generuje 42 strony paginacji. Pomnóż to przez liczbę kategorii, tagów i archiwów atrybutów. Paginacja jest potrzebna dla użytkowników, ale większość jej stron nie wnosi wartości do indeksu Google.

Feedy RSS i Atom

WordPress generuje feedy RSS dla: strony głównej, każdej kategorii, każdego tagu, każdego autora, a nawet komentarzy pod poszczególnymi wpisami. Te URL-e to /feed/, /category/nazwa/feed/, /product-tag/nazwa/feed/ i dziesiątki podobnych wariantów. W sklepie internetowym feedy RSS nie pełnią żadnej użytecznej funkcji, a Googlebot regularnie je crawluje.

Strony załączników (attachment pages)

Każdy obraz przesłany do WordPressa domyślnie dostaje własną stronę. 3000 produktów x 5 zdjęć = 15 000 stron załączników. Piętnaście tysięcy URL-i, z których każdy zawiera jedno zdjęcie bez treści. To więcej niż sam katalog produktowy. I Googlebot grzecznie je crawluje, zamiast zajmować się Twoimi produktami.

Parametry sortowania i filtrowania

Gdy klient sortuje produkty po cenie lub filtruje po atrybutach, WooCommerce dodaje parametry do URL-a: ?orderby=price, ?filter_kolor=czerwony. Każda kombinacja to nowy adres, który Googlebot może odkryć i próbować zaindeksować. Więcej o tym problemie przeczytasz w artykule o nawigacji fasetowej.

Co ustawić na noindex

Dyrektywa noindex mówi Google: “możesz tę stronę odwiedzić, ale nie dodawaj jej do indeksu”. To właściwe rozwiązanie dla stron, które muszą istnieć w serwisie (użytkownicy z nich korzystają), ale nie powinny pojawiać się w wynikach wyszukiwania.

Tagi produktowe

Jeśli nie prowadzisz przemyślanej strategii tagów (unikalne opisy, świadome budowanie hierarchii), ustaw wszystkie archiwa tagów na noindex. W Yoast SEO zrobisz to w SEO > Taksonomie > Tagi produktowe. W Rank Math: Tytuły i meta > Taksonomie > Tagi produktowe.

Alternatywa: zostaw na index 10-20 tagów, które odpowiadają na realne zapytania (np. “meble dębowe”, “buty do biegania w terenie”), i napisz dla nich unikalne opisy. Resztę na noindex.

Archiwa autorów

Nikt, dosłownie nikt, nie szuka w Google “produktów dodanych przez Jana Kowalskiego”. Archiwa autorów to relikt blogowego dziedzictwa WordPressa. Ustaw je na noindex globalnie. To pięć sekund pracy, które oszczędzają setki zmarnowanych crawli miesięcznie.

Archiwa dat

Strony /2025/01/, /2025/02/ itd. to duplikaty treści. Noindex na wszystkie. Większość wtyczek SEO pozwala wyłączyć archiwa dat jednym przełącznikiem.

Wyniki wewnętrznego wyszukiwania

Strony wyników wyszukiwania (/?s=zapytanie) to jedne z najczęściej marnujących crawl budget URL-i. Każde zapytanie wpisane przez użytkownika generuje nowy adres. Ustaw noindex na stronach wyszukiwania. Zarówno Yoast, jak i Rank Math robią to domyślnie, ale warto zweryfikować.

Strony koszyka, checkout, moje konto

Te strony są niezbędne dla użytkowników, ale nie mają wartości w wynikach wyszukiwania. Ustaw noindex na:

  • /koszyk/ (lub /cart/)
  • /zamowienie/ (lub /checkout/)
  • /moje-konto/ (lub /my-account/)
  • strona podziękowania za zamówienie
  • strona logowania i rejestracji

Strony załączników

Od WordPressa 5.7 i Yoast SEO 16.0 strony załączników są domyślnie przekierowywane na stronę, do której załącznik jest przypisany. W Rank Math: Ustawienia ogólne > Linki > Strony załączników mediów > Przekieruj. Jeśli z jakiegoś powodu przekierowanie nie działa w Twoim sklepie, ustaw noindex.

Co blokować w robots.txt

Blokada w robots.txt mówi Googlebotowi: “nie wchodź na tę stronę w ogóle”. To silniejsze rozwiązanie niż noindex, bo oszczędza crawl budget, ale ma istotne ograniczenie: jeśli zablokowana strona jest linkowana z zewnątrz, Google może ją zaindeksować bez dostępu do treści.

Poniżej szablon robots.txt dla typowego sklepu WooCommerce:

User-agent: *
Disallow: /koszyk/
Disallow: /zamowienie/
Disallow: /moje-konto/
Disallow: /wp-admin/
Disallow: /*?s=
Disallow: /*?orderby=
Disallow: /*?filter_*
Disallow: /*?add-to-cart=
Disallow: /*/feed/
Disallow: /wp-json/
Disallow: /wp-login.php

Allow: /wp-admin/admin-ajax.php

Sitemap: https://twojastrona.pl/sitemap_index.xml

Kilka uwag do powyższego:

  • /*?s= blokuje wyniki wyszukiwania
  • /*?orderby= blokuje warianty sortowania
  • /*?filter_* blokuje kombinacje filtrów. Jeśli niektóre filtry mają wartość SEO (np. /kategoria/?filter_marka=nike), rozważ dopuszczenie wybranych kombinacji i zastosowanie tagu canonical zamiast blokady
  • /*?add-to-cart= blokuje URL-e z parametrem dodawania do koszyka
  • /*/feed/ blokuje wszystkie feedy RSS
  • /wp-json/ blokuje REST API WordPressa, które Googlebot niepotrzebnie crawluje

Pamiętaj o regule Allow: /wp-admin/admin-ajax.php. WooCommerce używa tego endpointu do dynamicznego ładowania elementów strony (aktualizacja koszyka, filtrowanie AJAX). Jego zablokowanie może uniemożliwić Googlebotowi prawidłowe renderowanie strony.

Porządki w sitemap.xml

Mapa witryny powinna zawierać wyłącznie strony, które chcesz widzieć w indeksie Google. Każdy URL z noindex, każda strona przekierowywana i każda strona zablokowana w robots.txt to śmieć w sitemapie, który myli Googlebota.

Co usunąć z sitemap

  • wszystkie strony z noindex (tagi, archiwa dat, archiwa autorów)
  • strony koszyka, checkout, konta
  • strony załączników
  • strony z przekierowaniami 301
  • strony ze statusem “draft” lub “private”
  • paginacja (strony /page/2/, /page/3/ itd.)

Jak to zrobić w praktyce

Yoast SEO i Rank Math automatycznie wykluczają strony z noindex z sitemap. Ale jeśli stosujesz blokadę na poziomie robots.txt (bez noindex), musisz ręcznie wykluczyć te URL-e z mapy witryny.

W Yoast SEO: mapa witryny jest generowana automatycznie i uwzględnia ustawienia noindex. W Rank Math: analogicznie. Jeśli potrzebujesz większej kontroli, rozważ wtyczkę XML Sitemap Generator od Auctollo, która pozwala precyzyjnie określić, co trafia do sitemap, a co nie.

Po zmianach w sitemapie wymuś ponowne pobranie mapy w Google Search Console (Sitemapy > Prześlij ponownie).

Konfiguracja Yoast SEO i Rank Math pod kątem crawl budget

Obie wtyczki oferują ustawienia, które bezpośrednio wpływają na budżet indeksacji. Poniżej najważniejsze przełączniki.

Yoast SEO

Wejdź w SEO > Wygląd w wyszukiwarkach:

  • Taksonomie > Tagi produktowe: ustaw na “Nie” w “Pokaż tagi produktowe w wynikach wyszukiwania”
  • Archiwa > Archiwa autora: wyłącz lub ustaw noindex
  • Archiwa > Archiwa dat: wyłącz
  • Taksonomie > Format: ustaw noindex

W SEO > Crawl Optimization (Yoast Premium):

  • wyłącz feedy RSS dla komentarzy, autorów, kategorii, tagów
  • wyłącz REST API dla niezalogowanych użytkowników
  • wyłącz feedy globalne, jeśli nie prowadzisz bloga
  • wyłącz oEmbed
  • usuń skróty URL-i (shortlinks)

Rank Math

Wejdź w Rank Math > Tytuły i meta:

  • Tagi produktowe: ustaw “Robots Meta” na noindex
  • Archiwa autorów: noindex lub wyłącz całkowicie
  • Archiwa dat: wyłącz

W Rank Math > Ustawienia ogólne > Linki:

  • Strony załączników mediów: włącz przekierowanie na stronę nadrzędną
  • Usuń stopkę Replytocom: włącz
  • Usuń prefiksy kategorii (opcjonalnie, jeśli chcesz krótsze URL-e)

Monitoring w Google Search Console

Optymalizacja crawl budget to nie jednorazowa akcja. Google Search Console daje Ci narzędzia do monitorowania, czy zmiany przynoszą efekty.

Raport statystyk indeksowania

Wejdź w Ustawienia > Statystyki indeksowania. Zwróć uwagę na:

  • łączną liczbę żądań skanowania dziennie: po optymalizacji powinna się zmniejszyć (mniej marnowanych crawli), a potem ustabilizować. Jeśli drastycznie spada, to sygnał, że zablokowałeś za dużo
  • średni czas odpowiedzi serwera: powinien być poniżej 500 ms. Wartości powyżej 1000 ms oznaczają, że serwer jest wąskim gardłem
  • rozkład odpowiedzi wg kodu: wysoki udział 404 lub 301 to marnowanie budżetu. Napraw uszkodzone linki wewnętrzne i usuń zbędne przekierowania

Raport pokrycia indeksu

W sekcji Strony > Indeksowanie sprawdź:

  • ile stron ma status “Zaindeksowana, bez przesłania w mapie witryny” (to URL-e, które Google sam znalazł i zaindeksował, choć ich nie chciałeś)
  • ile stron ma status “Wykryta, ale aktualnie niezaindeksowana” (to mogą być Twoje ważne strony, do których Googlebot nie zdążył dotrzeć z powodu zmarnowanego budżetu)
  • ile stron jest oznaczonych jako “Zduplikowana, Google wybrał inną stronę kanoniczną” (wskazuje na problemy z tagiem canonical)

Praktyczna procedura monitoringu

  1. Sprawdzaj statystyki indeksowania raz w tygodniu przez pierwszy miesiąc po wdrożeniu zmian.
  2. Po miesiącu przejdź na monitorowanie dwutygodniowe.
  3. Reaguj na nagłe spadki liczby crawli lub wzrost błędów 5xx.
  4. Co kwartał porównuj liczbę zaindeksowanych stron z liczbą stron w sitemapie. Różnica większa niż 20% wymaga analizy.

Twój WooCommerce generuje tysiące zbędnych URL-i?

Zrobimy audyt indeksacji i wdrożymy porządki. Napisz do nas.

FAQ

Ile URL-i powinien mieć mój sklep WooCommerce w indeksie Google?

Zdrowa proporcja to taka, gdzie liczba zaindeksowanych stron jest zbliżona do liczby URL-i w sitemapie (z odchyleniem do 10-15%). Jeśli Google indeksuje dwa razy więcej stron niż masz w mapie witryny, to znaczy, że w indeksie są strony, których tam nie chcesz. Jeśli indeksuje znacznie mniej, to Googlebot nie dociera do ważnych podstron.

Czy mogę po prostu zablokować wszystko w robots.txt i zostawić tylko produkty i kategorie?

Technicznie tak, ale to ryzykowne podejście. Robots.txt blokuje crawlowanie, a nie indeksowanie. Zablokowane strony, do których prowadzą linki zewnętrzne, mogą pojawić się w wynikach wyszukiwania z komunikatem “Opis niedostępny”. Lepszą strategią jest połączenie robots.txt (dla parametrów i sekcji technicznych) z noindex (dla archiwów i stron o niskiej wartości).

Jak sprawdzić, które URL-e Googlebot crawluje najczęściej?

Najdokładniejszym źródłem jest raport Statystyki indeksowania w Google Search Console. Uzupełnieniem może być analiza logów serwera (server access logs), która pokaże każde żądanie Googlebota z dokładnością do URL-a i timestampu. Narzędzia typu Screaming Frog Log Analyzer lub JetOctopus pozwalają przetwarzać te logi wizualnie.

Czy wtyczki cache pomagają w optymalizacji crawl budget?

Pośrednio tak. Wtyczki cache (WP Rocket, LiteSpeed Cache, W3 Total Cache) przyspieszają czas odpowiedzi serwera. Szybszy serwer oznacza wyższy crawl rate limit, czyli Googlebot może przeskanować więcej stron w tym samym czasie. Ale sama szybkość nie rozwiązuje problemu zbyt wielu URL-i. Musisz jednocześnie ograniczyć liczbę stron dostępnych dla crawlera.

Po jakim czasie zobaczę efekty optymalizacji crawl budget?

Pierwsze zmiany w statystykach indeksowania w Google Search Console zobaczysz w ciągu 1-2 tygodni. Poprawa w indeksacji kluczowych stron (produkty, kategorie, które wcześniej nie były indeksowane) pojawia się zazwyczaj w ciągu 3-6 tygodni. Wzrost ruchu organicznego wynikający z lepszej indeksacji to kwestia 1-3 miesięcy. Dla dużych sklepów (powyżej 50 000 URL-i) cały proces może trwać dłużej.

Jeśli potrzebujesz kompleksowego podejścia do SEO technicznego w swoim sklepie WooCommerce, opisujemy nasze metody pracy na stronie usługi SEO dla WooCommerce. Pełny przewodnik po audycie technicznym WooCommerce znajdziesz w artykule SEO dla WooCommerce: kompletny audyt techniczny krok po kroku.

Gotowy na strategiczne partnerstwo w marketingu cyfrowym?

Porozmawiajmy o Twoich wyzwaniach i celach. Opracujemy dopasowaną strategię i plan działania, które przyniosą mierzalne rezultaty dla Twojego e-commerce lub instytucji.