Jak oczyścić nagłówek WordPressa (RSS, emojis, generator)

Jak oczyścić nagłówek WordPressa (RSS, emojis, generator)

Ostatnio zweryfikowano: 22 września 2026
7 min czytania
Przewodnik
Full-stack developer

Rozszerzona i aktualna wersja tego tematu: Jak oczyścić nagłówek WordPress (usuń RSS, emoji, shortlinki).

Otwórz kod źródłowy swojej strony w przeglądarce (Ctrl+U lub Cmd+Option+U). Przyjrzyj się uważnie sekcji <head>. Czy widzisz tam kilkanaście lub kilkadziesiąt linii kodu, których przeznaczenia nie znasz? Większość z nich w 2026 roku to zwykły balast: przestarzałe manifesty dla dawno niewspieranych programów, osobne kanały RSS dla każdego wątku komentarzy, polyfille dla emotikonów oraz tagi zdradzające wersję WordPressa.

Czyszczenie nagłówka to nie tylko zabieg kosmetyczny. Każdy zbędny element <link> i niepotrzebny skrypt powiększa wagę dokumentu HTML, wydłuża czas parsowania przez przeglądarkę i może generować dodatkowe zapytania DNS. W rozbudowanych sklepach WooCommerce z wieloma wtyczkami narzut ten szybko się kumuluje. Czyste wywołanie wp_head() ułatwia debugowanie i ogranicza ryzyko wycieku informacji o wersji systemu.

Oficjalne źródła dokumentacji: funkcja wp_head(), Podręcznik dewelopera WordPress oraz materiały web.dev dotyczące metryki LCP.

#Co WordPress domyślnie wstawia do sekcji head

Standardowa instalacja WordPressa generuje w nagłówku szereg automatycznych wpisów:

  • Kanały RSS dla wpisów, kategorii, tagów oraz komentarzy
  • Plik manifestu wlwmanifest dla programu Windows Live Writer
  • Odnośnik Really Simple Discovery (rsd_link)
  • Tag meta name="generator" z dokładnym numerem wersji WordPressa
  • Skrypt detekcji emotikonów oraz powiązane style CSS
  • Odnośniki do skróconych adresów URL (?p=123)
  • Linki relacji wpisów sąsiadujących (rel="prev" oraz rel="next")
  • Linki discovery dla REST API i oEmbed
Element nagłówkaPrzydatność w 2026 rokuRyzyko usunięcia
Feed komentarzyZnikomaBardzo niskie
Główny feed /feed/Średnia (czytniki, newslettery)Średnie
wlwmanifest oraz RSDPrzestarzałe (legacy)Bardzo niskie
Generator wersjiBrak (potencjalny wyciek)Bardzo niskie
Skrypty emojiZastąpione przez silnik przeglądarkiBardzo niskie
REST API discoveryIstotne w headless i aplikacjachWysokie przy integracjach API
ShortlinkZnikomaBardzo niskie

Tabela stanowi praktyczną wskazówkę decyzyjną: usuwamy przestarzałe elementy i tagi ujawniające wersję systemu, zachowując te odnośniki, które są świadomie wykorzystywane przez aplikacje zewnętrzne.

#Dlaczego warto oczyścić sekcję head w WordPressie

#Zysk wydajnościowy po usunięciu zbędnych tagów

Przed optymalizacją nagłówek zawiera często kilkanaście nadmiarowych znaczników oraz skrypt pobierany z serwerów s.w.org. Usunięcie niepotrzebnych deklaracji zmniejsza objętość kodu HTML, przyspiesza budowanie drzewa DOM i eliminuje zbędne połączenia sieciowe. Efekt jest szczególnie zauważalny dla użytkowników na urządzeniach mobilnych przy słabszym zasięgu.

#Bezpieczeństwo i ochrona przed wyciekiem wersji

Znacznik meta name="generator" content="WordPress x.y.z" informuje każdego robota o wersji silnika. Nie jest to bezpośrednia luka, ale ułatwia zautomatyzowanym skanerom typowanie podatności znanych z publicznych baz CVE. Podobnie działają parametry wersji dopisywane do stylów CSS. Usunięcie generatora eliminuje niepotrzebną wizytówkę dla skanerów.

#Przejrzystość kodu i łatwiejsze testy stagingowe

Uporządkowany nagłówek upraszcza analizę kodu w środowiskach deweloperskich. Kiedy nowa wtyczka niespodziewanie wstrzykuje dodatkowe skrypty lub reguły prefetch, natychmiast rzuca się to w oczy podczas inspekcji diffów.

#1. Usuwanie linków do feedów komentarzy i kategorii

WordPress automatycznie tworzy osobne kanały RSS dla każdego posta, kategorii oraz komentarzy. O ile witryna nie jest portalem publicystycznym, którego odbiorcy subskrybują komentarze w czytnikach, linki te stanowią jedynie zbędny szum informacyjny:

// Wyłączenie linków do feedów komentarzy
add_filter( 'feed_links_show_comments_feed', '__return_false' );

// Wyłączenie dodatkowych feedów (kategorie, tagi, autorzy)
remove_action( 'wp_head', 'feed_links_extra', 3 );

// Wyłącznie w sytuacji, gdy główny feed nie jest nikomu potrzebny:
// remove_action( 'wp_head', 'feed_links', 2 );

Główny odnośnik feed_links warto pozostawić, jeśli z kanału korzystają narzędzia do automatyzacji newslettera lub agregatory treści.

#2. Usunięcie wlwmanifest oraz linku RSD

Windows Live Writer to program z odległej epoki, jednak WordPress wciąż generuje do niego odnośnik w nagłówku. Z kolei Really Simple Discovery (RSD) służył do zdalnej edycji wpisów przez protokół XML-RPC. Współcześnie oba te rozwiązania są bezużyteczne:

remove_action( 'wp_head', 'wlwmanifest_link' );
remove_action( 'wp_head', 'rsd_link' );

Powyższe instrukcje usuwają z kodu:

  • <link rel="wlwmanifest" type="application/wlwmanifest+xml" ...>
  • <link rel="EditURI" type="application/rsd+xml" ...>

#3. Wyłączenie skryptów i stylów emotikonów (emojis)

Przez lata WordPress ładował dedykowany skrypt JavaScript oraz reguły CSS, aby zamieniać tekstowe znaki na graficzne emotikony. Współczesne przeglądarki i systemy operacyjne obsługują emoji natywnie. Domyślny skrypt to niepotrzebne zapytanie HTTP oraz prefetch do zewnętrznej domeny:

remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );

Dla wydajności frontendu kluczowe jest usunięcie hooków powiązanych z wp_head oraz drukowaniem stylów.

#4. Ukrycie numeru wersji WordPressa (generator)

Ukrycie wersji silnika w kodzie źródłowym to podstawowa zasada higieny bezpieczeństwa:

remove_action( 'wp_head', 'wp_generator' );
add_filter( 'the_generator', '__return_empty_string' );

Filtr usuwa również deklarację generatora z nagłówków kanałów informacyjnych. Oczywiście nie zwalnia to z obowiązku regularnych aktualizacji, ale utrudnia wstępny rekonesans zautomatyzowanym botom.

#5. Usunięcie shortlinków oraz rel prev i next

Odnośniki typu shortlink (?p=123) oraz deklaracje sąsiednich artykułów w nagłówku nie przynoszą korzyści współczesnym robotom wyszukiwarek, a jedynie zwiększają wielkość nagłówka:

remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
remove_action( 'template_redirect', 'wp_shortlink_header', 11 );
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
remove_action( 'wp_head', 'index_rel_link' );
remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );

#6. Kontrola linków REST API i oEmbed w nagłówku

// Usuwać wyłącznie wtedy, gdy frontend nie korzysta z autowykrywania API:
// remove_action( 'wp_head', 'rest_output_link_wp_head', 10 );
// remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
// remove_action( 'template_redirect', 'rest_output_link_header', 11 );

Projekty headless bazujące na Next.js czy Astro oraz aplikacje mobilne często polegają na mechanizmie REST discovery. Na tradycyjnych stronach firmowych bez integracji zewnętrznych linki te można bezpiecznie wyłączyć.

#Wdrożenie oczyszczania nagłówka jako wtyczka must-use (MU)

Zamiast modyfikować plik functions.php aktywnego motywu, znacznie pewniejszym rozwiązaniem jest utworzenie wtyczki typu Must-Use pod adresem wp-content/mu-plugins/wppoland-clean-head.php:

<?php
/**
 * Plugin Name: WPPoland Clean Head
 * Description: Usuwa zbędne tagi i przestarzały kod z nagłówka wp_head.
 * Author: wppoland.com
 */

function wppoland_cleanup_head(): void {
	remove_action( 'wp_head', 'rsd_link' );
	remove_action( 'wp_head', 'wlwmanifest_link' );
	remove_action( 'wp_head', 'wp_generator' );
	remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );
	remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
	remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );
	remove_action( 'wp_head', 'index_rel_link' );
	remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );
	remove_action( 'wp_head', 'feed_links_extra', 3 );
	remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
	remove_action( 'wp_print_styles', 'print_emoji_styles' );

	add_filter( 'feed_links_show_comments_feed', '__return_false' );
	add_filter( 'the_generator', '__return_empty_string' );
}
add_action( 'init', 'wppoland_cleanup_head' );

Wtyczki umieszczone w folderze mu-plugins ładują się automatycznie i nie mogą zostać przypadkowo wyłączone w panelu administracyjnym ani nadpisane przy aktualizacji motywu.

#Jak sprawdzić poprawność zmian w kodzie źródłowym

  1. Otwórz stronę w oknie incognito i sprawdź źródło: znaczniki generatora, wlwmanifest i skrypt emoji powinny zniknąć.
  2. W zakładce Sieć (Network) narzędzi deweloperskich upewnij się, że przeglądarka nie wykonuje zapytania po plik wp-emoji-release.min.js.
  3. Zweryfikuj, czy główny adres /feed/ pozostaje aktywny, jeżeli jest używany przez marketing.
  4. Przetestuj zapisywanie wpisów w edytorze Gutenberg, aby upewnić się, że zapytania REST API w panelu działają prawidłowo.
  5. Przeklikaj ścieżkę zamówienia w sklepie WooCommerce.

#Jakich tagów w sekcji head nie wolno usuwać

Czyszczenie nagłówka polega na usuwaniu przestarzałych elementów, a nie na kasowaniu wszystkiego, co niewidoczne dla oka. W nagłówku bezwzględnie powinny pozostać:

  • Znaczniki viewport oraz deklaracja kodowania znaków (charset)
  • Link kanoniczny (canonical) oraz atrybuty hreflang dla wersji językowych
  • Skrypty obsługi zgód na pliki cookies (niezbędne prawnie)
  • Ustrukturyzowane dane JSON-LD (Schema)
  • Świadomie skonfigurowane tagi preconnect i preload dla kluczowych zasobów

#Lista kontrolna przed wdrożeniem produkcyjnym

  • Zmiany przetestowane w środowisku stagingowym z pełnym zestawem aktywnych wtyczek.
  • Sprawdzony kod źródłowy strony głównej, pojedynczego wpisu oraz karty produktu.
  • Potwierdzone działanie kanału RSS w zewnętrznym czytniku.
  • Edytor Gutenberg zapisuje zmiany bez błędów komunikacji z API.
  • Wyczyszczona pamięć podręczna na poziomie serwera (FastCGI / Varnish) oraz w usłudze CDN (Cloudflare).
Następny krok

Przekuj artykuł w realne wdrożenie

Pod tym wpisem dokładam linki, które domykają intencję użytkownika i prowadzą dalej w strukturze serwisu.

Chcesz wdrożyć ten temat na swojej stronie?

Jeśli problemem są Core Web Vitals, wolny frontend albo ciężki WordPress, rozpiszę i wdrożę konkretny plan optymalizacji.

Powiązany klaster

Sprawdź inne usługi WordPress i bazę wiedzy

Wzmocnij swój biznes dzięki profesjonalnemu wsparciu technicznemu w kluczowych obszarach ekosystemu WordPress.

Często zadawane pytania

Najważniejsze odpowiedzi, które pomagają wdrożyć temat w praktyce.

Czy mogę całkowicie usunąć linki do feedów RSS?#
Tylko wtedy, gdy żaden zewnętrzny czytnik ani usługa newslettera nie korzysta z głównego kanału /feed/. Linki do feedów komentarzy i kategorii można wyłączyć bez żadnego ryzyka.
Czy czyszczenie nagłówka wpływa negatywnie na edytor Gutenberg?#
Nie, o ile nie zablokujesz punktów końcowych REST API po stronie administracyjnej. Prezentowane reguły dotyczą wyłącznie wywołań w hooku wp_head na froncie witryny.
Gdzie najlepiej umieścić kod czyszczący nagłówek?#
Najlepiej w katalogu wp-content/mu-plugins jako wtyczkę Must-Use. Dzięki temu zmiana lub aktualizacja motywu nie skasuje wdrożonych optymalizacji.

Potrzebujesz FAQ dopasowanego do branży i rynku? Przygotujemy wersję pod Twoje cele biznesowe.

Porozmawiajmy

Polecane artykuły

Jak dodać Google Maps do WordPressa

Przestań używać iframe. Dowiedz się, jak poprawnie zintegrować Google Maps Platform API, obsłużyć zgody RODO, zoptymalizować Core Web Vitals i wybrać najlepszą wtyczkę lub implementację customową.