Skip to content

Wszystko o WordPressie, tworzeniu stron — i nie tylko

🗂️ Jak wykluczyć strony z mapy witryny Yoast SEO

🗂️ 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.xml i w razie potrzeby dodanie noindex.

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".

Przełącznik indeksowania strony w zakładce Zaawansowane Yoast SEO

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:

1add_filter( 'wpseo_exclude_from_sitemap_by_post_ids', function() {
2 return array( 311, 322, 450, 512 );
3} );
Kod PHP masowego wykluczania stron przez filtr wpseo_exclude_from_sitemap_by_post_ids

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:

Ustawienia typów treści i limitu linków w mapie witryny Yoast SEO

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_page pozwala ustawić dowolną liczbę wpisów na jeden plik sitemapy:
1add_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:

Zakładka taksonomii w ustawieniach mapy witryny 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.

Lista taksonomii z przełącznikami widoczności w wyszukiwaniu Yoast SEO

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 */
2function sitemap_exclude_taxonomy( $value, $taxonomy ) {
3 if ( $taxonomy === 'taxonomy_slug' ) {
4 return true;
5 }
6 return $value;
7}
8add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomy', 10, 2 );

Dla kilku taksonomii jednocześnie:

1/* Исключить несколько таксономий из sitemap Yoast SEO */
2function 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}
13add_filter( 'wpseo_sitemap_exclude_taxonomy', 'sitemap_exclude_taxonomies', 10, 2 );
Kod PHP wykluczania wielu taksonomii przez filtr mapy witryny Yoast SEO

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.xml w przeglądarce, zobaczy Pan/Pani listę podrzędnych sitemap. Proszę znaleźć odpowiednią (na przykład page-sitemap.xml lub post-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ć.

🔗 Yoast SEO na WordPress.org