
🗂️ Jak wykluczyć strony z mapy witryny Yoast SEO
Wchodzi Pan do Search Console i widzi: z 200 stron witryny zindeksowanych jest 340. Te dodatkowe 140 to archiwalne tagi, duplikaty z ogonkami UTM, testowe zaślepki i strony załączników. Google wydaje budżet indeksowania na śmieci, a wartościowe adresy URL czekają na swoją kolej tygodniami.
Problem nie leży po stronie Google. Mapa witryny generowana przez Yoast SEO uczciwie raportuje robotowi wszystko, co widzi. A domyślnie widzi wiele zbędnych rzeczy. Pana zadaniem jest wyjaśnienie wtyczce, które strony nie powinny trafiać do sitemapy.
Poniżej cztery sposoby na wyczyszczenie mapy witryny XML: od jednego kliknięcia w interfejsie po filtry w functions.php. Z rzeczywistymi zrzutami ekranu i aktualnym kodem.
💡 Szybki przegląd:
- Wykluczenie pojedynczej strony przez zakładkę „Zaawansowane" w metaboksie Yoast SEO, bez kodu.
- Masowe usunięcie dziesiątek adresów URL przez filtr
wpseo_exclude_from_sitemap_by_post_ids, jedna tablica. - Wyłączenie całych taksonomii w Search Appearance lub przez
wpseo_sitemap_exclude_taxonomy. - Sprawdzenie wyniku w
sitemap_index.xmli w razie potrzeby dodanienoindex.
Dlaczego w ogóle trzeba czyścić sitemapę
Sitemapa to nie tylko lista linków. To instrukcja dla robota wyszukiwarki: „oto strony, które są naprawdę ważne, zindeksuj je w pierwszej kolejności". Gdy w mapie witryny znajdują się śmieci, Google napotyka trzy problemy.
Pierwszy: duplikaty. Ta sama treść pod dwoma adresami URL (na przykład /blog/ i /blog/?utm_source=telegram) jest dla wyszukiwarki sygnałem witryny niskiej jakości. Drugi: cienka treść (thin content). Strony zaślepki, puste archiwa autorów, strony załączników nie wnoszą wartości dla wyszukiwania, ale pochłaniają budżet indeksowania. Trzeci: adresy URL techniczne. Testowe landing page, strony z podziękowaniem po zakupie, konta klienta, ich miejsce z pewnością nie jest w wynikach wyszukiwania.
Regularny audyt sitemapy to podstawowa higiena SEO. Szczególnie jeśli witryna ma więcej niż rok: zbędne adresy URL przedostają się do mapy witryny niemal na pewno.
Yoast SEO daje kilka poziomów kontroli, od punktowego wyłączenia jednej strony po filtrowanie całych taksonomii przez hook. Omówmy każdy z nich.
Jak wykluczyć pojedynczą stronę z sitemapy
Najprostszy scenariusz: usunięcie z indeksu jednego konkretnego wpisu lub strony. Yoast SEO pozwala zrobić to bezpośrednio z edytora WordPress, bez ani jednej linii kodu.
Proszę otworzyć żądany wpis w panelu administracyjnym, przewinąć w dół do metaboksu Yoast SEO i przejść na zakładkę „Zaawansowane" (Advanced). Proszę znaleźć pytanie „Zezwolić wyszukiwarkom na pokazywanie tego wpisu w wynikach wyszukiwania?" i przełączyć z „Tak" na „Nie". Proszę kliknąć „Aktualizuj".

Po zapisaniu Yoast usunie wpis z sitemapy, a w kodzie źródłowym strony pojawi się metatag <meta name="robots" content="noindex, follow">. Sama strona pozostanie dostępna pod bezpośrednim linkiem. Z wyszukiwania i sitemapy zostanie wykluczona.
Sposób jest standardowy i najbezpieczniejszy. Nadaje się do punktowego ukrycia jednej-dwóch stron. Do masowego wykluczania dziesiątek adresów URL służy następna sekcja.
Jak masowo wykluczyć strony przez kod
Gdy trzeba jednocześnie wykluczyć 20-30 stron, klikanie każdej ręcznie to strata czasu. Yoast SEO udostępnia filtr wpseo_exclude_from_sitemap_by_post_ids: przyjmuje on tablicę identyfikatorów wpisów i wycina je z mapy witryny.
Kod dodaje się do functions.php aktywnego motywu lub przez wtyczkę Code Snippets:
1 add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', function() { 2 return array( 311, 322, 450, 512 ); 3 } );

Jak poznać ID strony? W panelu administracyjnym WordPress proszę otworzyć listę stron lub wpisów, najechać na tytuł, w adresie URL linku zobaczy Pan post=311. Liczba po post= to właśnie ID.
Po dodaniu filtra proszę wejść na yourdomain.com/sitemap_index.xml, otworzyć podrzędną sitemapę (na przykład page-sitemap.xml) i upewnić się: wskazane ID zniknęły z listy.
Ważne: filtr jedynie usuwa ID z sitemapy. Nie dodaje noindex na samą stronę. Jeśli strona jest już w indeksie Google, proszę dodatkowo ustawić noindex przez interfejs (poprzednia sekcja) lub zażądać usunięcia adresu URL przez Google Search Console.
Jak zwiększyć limit linków w sitemapie
Domyślnie Yoast SEO umieszcza w jednej podrzędnej sitemapie do 1000 linków. Dla dużej witryny, sklepu na 5000 produktów lub katalogu z dziesiątkami tysięcy artykułów oznacza to albo wzrost liczby plików (zmniejszenie limitu), albo więcej adresów URL w jednym pliku (zwiększenie limitu).
Ustawienie znajduje się w sekcji Yoast SEO → Ustawienia → Typy treści:

Co można tu wyregulować:
- Wyłączyć niepotrzebne typy treści. Na przykład, jeśli publikuje Pan tylko wpisy, a strony wykorzystuje jako techniczne, proszę usunąć „Strony" z sitemapy.
- Skonfigurować media. Zakładka Media (załączniki) w sitemapie jest domyślnie włączona. Dla fotoblogów ma to uzasadnienie, dla zwykłej witryny to zbędny wydatek budżetu indeksowania.
- Limit linków. Technicznie filtr
wpseo_sitemap_entries_per_pagepozwala ustawić dowolną liczbę wpisów na jeden plik sitemapy:
1 add_filter( 'wpseo_sitemap_entries_per_page', function() { 2 return 500; 3 } );
Standardowe 1000, złoty środek dla większości projektów. Limit warto zmieniać tylko wtedy, gdy dokładnie rozumieją Państwo konsekwencje dla szybkości indeksowania.
Jak usunąć kategorie i taksonomie z sitemap
Kategorie, tagi i niestandardowe taksonomie często zaśmiecają sitemap pustymi lub mało przydatnymi archiwami. Jest to szczególnie istotne w przypadku stron WooCommerce: atrybuty produktów („kolor", „rozmiar") generują setki adresów URL bez samodzielnej wartości dla wyszukiwarek.
Pierwszy, wizualny sposób, zakładka Taksonomie w ustawieniach Yoast SEO:

Każda taksonomia ma przełącznik „Pokazywać w wynikach wyszukiwania?". Pozycja „Tak" sprawia, że taksonomia trafia do sitemap, „Nie", wyklucza ją. Dla większości stron rozsądnie jest pozostawić w sitemap tylko kategorie, wyłączając tagi i atrybuty produktów.

Jeśli potrzebnej taksonomii nie ma na liście, jest ona zarejestrowana przez niestandardowy kod lub zewnętrzną wtyczkę, proszę użyć filtra. Kod do wykluczenia jednej taksonomii według slugu:
1 /* Исключить одну таксономию из sitemap Yoast SEO */ 2 function sitemap_exclude_taxonomy( $value, $taxonomy ) { 3 if ( $taxonomy === 'taxonomy_slug' ) { 4 return true; 5 } 6 return $value; 7 } 8 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );
Dla kilku taksonomii jednocześnie:
1 /* Исключить несколько таксономий из sitemap Yoast SEO */ 2 function sitemap_exclude_taxonomies( $value, $taxonomy ) { 3 $taxonomy_to_exclude = array( 4 'taxonomy_slug1', 5 'taxonomy_slug2', 6 'taxonomy_slug3' 7 ); 8 if ( in_array( $taxonomy, $taxonomy_to_exclude, true ) ) { 9 return true; 10 } 11 return $value; 12 } 13 add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomies', 10, 2 );

Proszę zastąpić taxonomy_slug1, taxonomy_slug2 i taxonomy_slug3 rzeczywistymi slugami Państwa taksonomii. Po zapisaniu kodu proszę wejść do sitemap_index.xml i sprawdzić podrzędny sitemap: archiwa wykluczonych taksonomii powinny zniknąć.
⁉️🤔 Często zadawane pytania
Strona wykluczona z sitemapy i tak pojawia się w wynikach wyszukiwania. Dlaczego?
Sitemapa to jedynie rekomendacja dla Google, a nie dyrektywa. Wykluczenie strony z sitemapy nie jest równoznaczne z
noindex. Jeśli strona została już zaindeksowana i prowadzą do niej linki zewnętrzne, Google może ją nadal wyświetlać. Rozwiązanie: razem z wykluczeniem z sitemapy proszę włączyćnoindex(ten sam przełącznik w zakładce „Zaawansowane" Yoast) i w razie potrzeby zażądać usunięcia adresu URL przez Google Search Console.
Czy można całkowicie wykluczyć typ treści z sitemapy bez kodu?
Tak. W sekcji Yoast SEO → Ustawienia → Typy treści dla każdego zarejestrowanego typu treści znajduje się przełącznik „Pokaż w wynikach wyszukiwania?". Proszę ustawić go na „Nie", a cały typ (na przykład „Strony" lub „Produkty") przestanie w całości trafiać do sitemapy. Działa to również dla taksonomii w zakładce Taksonomie.
Jak sprawdzić, czy strona rzeczywiście zniknęła z sitemapy?
Proszę otworzyć
вашсайт.com/sitemap_index.xmlw przeglądarce, zobaczy Pan/Pani listę podrzędnych sitemap. Proszę znaleźć odpowiednią (na przykładpage-sitemap.xmllubpost-sitemap.xml), przejść pod link i wyszukać po tytule lub adresie URL. Jeśli strony nie ma, filtr zadziałał. Do masowego porównywania wygodne są Screaming Frog lub Sitebulb: pokażą rozbieżność między sitemapą a rzeczywistymi stronami witryny.
Co zrobić, jeśli kod filtra nie działa?
Proszę sprawdzić trzy kwestie. Po pierwsze: kod został dodany do aktywnego motywu (
functions.php) lub przez Code Snippets, a plik zapisano bez błędów składniowych, proszę otworzyć witrynę w sąsiedniej karcie (biały ekran = błąd PHP). Po drugie: identyfikatory stron podano prawidłowo, bez zbędnych spacji wewnątrz tablicy. Po trzecie: pamięć podręczna. Yoast SEO buforuje sitemapę, po zmianach proszę wyczyścić pamięć podręczną wtyczki (SEO → Narzędzia → Optymalizacja danych SEO) lub odczekać do jednej doby.
Czy wykluczenie z sitemapy wpływa na linkowanie wewnętrzne?
Nie. Sitemapa i linki wewnętrzne to niezależne sygnały. Strona wykluczona z sitemapy nadal przekazuje moc przez linki wewnętrzne, jeśli inne strony witryny do niej linkują. Jednak Google będzie ją rzadziej ponownie indeksować: zniknęła z głównego źródła informacji o strukturze witryny.
Co wybrać w pierwszej kolejności: interfejs czy kod
Dla trzech do pięciu stron, tylko interfejs. Szybko, bezpiecznie, nie wymaga dostępu do plików motywu.
Dla dziesiątek stron, filtr wpseo_exclude_from_sitemap_by_post_ids. Jedna tablica z identyfikatorami zamiast ręcznego przełączania każdego wpisu.
Dla taksonomii, wizualny przełącznik w Search Appearance, jeśli taksonomia znajduje się na liście. Jeśli jej nie ma (niestandardowa), filtr wpseo_sitemap_exclude_taxonomy.
I najważniejsze: wykluczenie z sitemapy nie jest równoznaczne z wykluczeniem z indeksu. Jeśli strona ma całkowicie zniknąć z wyników wyszukiwania, zawsze proszę dodawać noindex. Yoast SEO udostępnia do tego jeden interfejs, proszę go nie lekceważyć.



