
⚙️ Jak usunąć kategorię z URL WordPress: wszystkie działające sposoby
Domyślny adres URL w WordPress wygląda tak: /category/plugins/, /category/news/ lub /category/wordpress/. Słowo „category" nie niesie żadnego znaczenia ani dla użytkownika, ani dla wyszukiwarki. To relikt, który jedynie wydłuża adres i rozmywa strukturę witryny.
Problem polega na tym, że standardowe narzędzia WordPress nie pozwalają usunąć tego prefiksu jednym przełącznikiem. Większość właścicieli witryn albo godzi się na /category/, albo instaluje pierwszy lepszy plugin, nie rozumiejąc konsekwencji. A konsekwencje bywają poważne: uszkodzone linki, błędy 404 na starych adresach, duplikaty w indeksie.
Oto szczegółowa analiza wszystkich działających sposobów na usunięcie /category/ z adresu URL WordPress: od najprostszego wbudowanego po kod w functions.php. Każda metoda została przetestowana na aktualnych wersjach WordPress, z wyjaśnieniem ograniczeń i pułapek.
💡 Szybki przegląd:
- Wbudowany mechanizm bezpośrednich odnośników: prosty, punktowy hack przez ustawienia, bez pluginów
- Plugin Remove Category URL: najłatwiejszy sposób na jedno kliknięcie dla tych, którzy nie chcą grzebać w ustawieniach
- Yoast SEO lub Rank Math: jeśli plugin SEO jest już zainstalowany, bazę kategorii usuwa się jego własnymi siłami
- .htaccess: opcja dla tych, którzy wolą ręczną kontrolę na poziomie serwera
- Kod w functions.php: metoda programistyczna bez pluginów, z pełną kontrolą nad logiką zamiany
1. Wbudowane ustawienia bezpośrednich odnośników
To najprostsza metoda, która nie wymaga instalowania żadnego pluginu. Wykorzystuje standardowy mechanizm „Bezpośrednich odnośników" w samym WordPress.
Proszę wejść do panelu administracyjnego, otworzyć Ustawienia → Bezpośrednie odnośniki. W bloku „Ustawienia ogólne" wybrać opcję „Struktura niestandardowa".
W polu po prawej stronie proszę wpisać konstrukcję:
1 /%category%/%postname%/
Teraz kluczowy moment. Proszę przewinąć stronę do pola „Baza kategorii" i wpisać w nim kropkę, symbol . (bez cudzysłowów). To niestandardowy, ale skuteczny trik: WordPress interpretuje kropkę jako pustą bazę i przestaje wstawiać /category/ do adresów URL kategorii.

Proszę kliknąć „Zapisz zmiany". Gotowe, adresy URL Pana/Pani kategorii mają teraz postać site.ru/wordpress/, a nie site.ru/category/wordpress/.
⚠️ Ważny niuans: proszę nie zostawiać pola „Baza kategorii" pustego. Jeśli nic w nim nie ma, WordPress przywraca domyślną /category/. Właśnie dlatego wpisujemy kropkę: pusty ciąg nie działa, kropka działa.
Ta metoda sprawdza się w przypadku większości witryn, ale ma jedną wadę: kropka w polu bazy to hack, który może przestać działać podczas aktualizacji WordPress lub po zmianie struktury bezpośrednich odnośników na inną i z powrotem. Jeśli szukają Państwo bardziej niezawodnego rozwiązania, proszę spojrzeć na kolejne sposoby.
2. Plugin Remove Category URL
Remove Category URL, minimalistyczny plugin, który robi dokładnie jedno: usuwa /category/ z adresu URL. Żadnych ustawień, żadnych zbędnych pozycji w panelu administracyjnym.

Po instalacji plugin zaczyna działać natychmiast. Żadnych dodatkowych kroków: pobrać, aktywować, sprawdzić adres URL kategorii, /category/ znika.

Dlaczego akurat ten plugin, a nie dziesiątki analogicznych? Ma minimalną wagę, nie dodaje banerów reklamowych w panelu administracyjnym i jest kompatybilny z WPML oraz WordPress Multisite. Podczas dezaktywacji pluginu adresy URL automatycznie wracają do standardowej struktury z /category/, plugin nie psuje bezpośrednich odnośników na stałe.
Dla tych, którzy potrzebują nie tylko prefiksu kategorii, ale także pracy z kategoriami nadrzędnymi, istnieje alternatywa, FV Top Level Categories. Pozwala on wyświetlać kategorie dowolnego poziomu zagnieżdżenia jako główne w URL, bez /category/ i bez slugów nadrzędnych.
🔗 Remove Category URL na WordPress.org
3. Wtyczki SEO: Yoast SEO i Rank Math
Jeśli na stronie jest już zainstalowany Yoast SEO lub Rank Math, osobna wtyczka do usuwania /category/ nie jest potrzebna. Obaj giganci SEO mają wbudowaną funkcję usuwania bazy kategorii.
W Yoast SEO:
- W menu WordPress kliknij Yoast SEO
- Przejdź do zakładki Advanced (Zaawansowane)
- Otwórz sekcję Permalinks (Bezpośrednie odnośniki)
- Włącz opcję „Remove the categories prefix" (Usuń prefiks kategorii)
- Zapisz zmiany
W Rank Math:
- W panelu administracyjnym przejdź do Rank Math → General Settings
- Otwórz zakładkę WooCommerce (tak, właśnie tam, nie w Permalinks)
- Znajdź opcję „Remove Category Base" i włącz ją
Obie wtyczki robią to samo co Remove Category URL, ale za pomocą własnego wewnętrznego mechanizmu. Plus: nie potrzeba dodatkowych wtyczek. Minus: w przypadku zmiany wtyczki SEO na inną baza kategorii może powrócić, trzeba będzie ją ponownie skonfigurować.

Przy okazji, jeśli dopiero wybierają Państwo między Yoast a Rank Math, oto nasz szczegółowy przegląd różnic, który pomoże podjąć decyzję.
4. Ręczna edycja.htaccess
Metoda dla tych, którzy wolą kontrolę na poziomie serwera. Usunięcie /category/ przez.htaccess działa poprzez regułę mod_rewrite, która transparentnie przekierowuje wszystkie adresy URL kategorii na adresy bez prefiksu.
Wymaga to dostępu do pliku .htaccess w katalogu głównym strony, przez FTP, menedżer plików hostingu lub cPanel. Należy otworzyć plik i dodać następujący wiersz do bloku # BEGIN WordPress:
1 RewriteRule ^category/(.+)$ http://www.site.com/$1 [R=301,L]

Proszę zastąpić www.site.com swoją rzeczywistą domeną. Reguła wykonuje przekierowanie 301 ze wszystkich adresów URL zaczynających się od /category/ na adresy bez tego prefiksu.
⚠️ Uwaga: ta metoda działa tylko na serwerach Apache. Na Nginx potrzebny jest analogiczny wiersz w konfiguracji:
1 rewrite ^/category/(.+)$ /$1 permanent;
Przed wprowadzeniem zmian koniecznie wykonaj kopię zapasową pliku .htaccess. Błąd składni w tym pliku powoduje pad całej witryny z błędem 500.
Jeśli Pana/Pani strona działa na Nginx, bezpośredni odpowiednik powyższej reguły wygląda równie prosto, ale dodaje się go do konfiguracji bloku serwera, a nie do.htaccess. Po dodaniu reguły należy przeładować Nginx poleceniem nginx -s reload. W przeciwieństwie do Apache, Nginx nie czyta.htaccess, więc błąd składni w głównej konfiguracji również powoduje pad witryny, ale nie tak nieodwracalnie: Nginx po prostu nie uruchomi się po przeładowaniu, pozostawiając poprzedni działający proces. Proszę przetestować konfigurację poleceniem nginx -t przed zastosowaniem.
5. Kod w functions.php
Metoda programistyczna dla tych, którzy chcą usunąć /category/ bez wtyczek i bez edycji konfiguracji serwera. Kod dodaje się raz w pliku functions.php aktywowanego motywu i działa przez standardowy filtr WordPressa.
Przed dodaniem kodu proszę upewnić się, że pole „Baza kategorii" w ustawieniach bezpośrednich odnośników nie jest puste i nie zawiera kropki, powinno być standardowe (category). Filtr szuka słowa „category" w URL i jeśli go nie znajduje, metoda nie zadziała.
Proszę otworzyć Wygląd → Edytor plików motywu, wybrać functions.php i dodać ten kod przed zamykającym tagiem ?> (jeśli tagu nie ma, po prostu na końcu pliku):
1 function remove_category_from_url($string, $type) { 2 if ($type !== 'single' && $type === 'category' && strpos($string, 'category') !== false) { 3 $url_without_category = str_replace('/category/', '/', $string); 4 return trailingslashit($url_without_category); 5 } 6 return $string; 7 } 8 add_filter('user_trailingslashit', 'remove_category_from_url', 100, 2);
Jak to działa:
- Filtr
user_trailingslashitjest wywoływany za każdym razem, gdy WordPress generuje URL kategorii - Funkcja sprawdza, czy to rzeczywiście kategoria (nie post, nie tag) i czy w URL znajduje się
/category/ - Jeśli oba warunki są spełnione,
/category/jest usuwane, a ukośnik na końcu zachowywany przeztrailingslashit()
Po dodaniu kodu proszę wejść w Ustawienia → Bezpośrednie odnośniki i po prostu kliknąć „Zapisz", to zresetuje cache bezpośrednich odnośników i zastosuje nową regułę.
Ta metoda jest najbardziej elastyczna: ma Pan/Pani pełną kontrolę nad logiką zamiany, może dodać wyjątki dla poszczególnych kategorii lub dostosować kod do niestandardowej struktury URL.

Jeśli woli Pan/Pani zobaczyć proces na żywo, oto krótka instrukcja wideo po angielsku: instalacja wtyczki Remove Category URL i weryfikacja rezultatu w dwie minuty.
⁉️🤔 Często zadawane pytania
Czy kategorie znikną ze strony po usunięciu /category/ z URL?
Nie. Kategorie pozostają w pełni funkcjonalne: archiwa kategorii działają, posty są w nich wyświetlane, taksonomia nie ulega uszkodzeniu. Zmienia się tylko adres w przeglądarce. To wyłącznie kosmetyczna zmiana struktury bezpośrednich odnośników, WordPress nadal rozpoznaje kategorie po wewnętrznym ID, a nie po prefiksie URL.
Czy po zmianie URL trzeba skonfigurować przekierowania 301?
Tak, koniecznie. Po usunięciu
/category/stare adresy z/category/stają się niedostępne. Jeśli prowadziły do nich linki zewnętrzne lub zostały już zaindeksowane przez wyszukiwarki, pojawi się błąd 404. Metoda przez.htaccess (sposób 4) automatycznie dodaje przekierowanie 301. W przypadku użycia wtyczek lub kodu w functions.php proszę się upewnić, że WordPress poprawnie przekierowuje stare URL-e, zazwyczaj dzieje się to automatycznie, ale warto po zmianach sprawdzić kilka starych adresów.
Co zrobić, jeśli po zmianach część URL-i nadal zawiera /category/?
Najprawdopodobniej problem leży w cache'owaniu. Proszę zresetować cache bezpośrednich odnośników: wejść w Ustawienia → Bezpośrednie odnośniki i po prostu kliknąć „Zapisz", nic nie zmieniając. Jeśli używają Państwo wtyczki cache'ującej (WP Rocket, W3 Total Cache), proszę wyczyścić jej cache. Na poziomie serwera proszę upewnić się, że reguły mod_rewrite w.htaccess nie kolidują z nowymi ustawieniami.
Czy usunięcie /category/ wpływa na SEO?
Tak, ale tylko pozytywnie, jeśli zrobione prawidłowo. Krótsze URL-e mają lepszy współczynnik klikalności w wynikach wyszukiwania, są łatwiejsze do przeczytania i szybciej indeksowane. Badania Backlinko pokazują, że krótkie URL-e korelują z wyższymi pozycjami. Najważniejsze to nie zapomnieć o przekierowaniach 301 ze starych adresów, aby nie stracić zgromadzonego PageRank.
Który sposób wybrać dla WooCommerce?
Dla sklepów internetowych na WooCommerce najlepiej sprawdza się albo wtyczka Remove Category URL (poprawnie obsługuje kategorie produktowe), albo wbudowana funkcja Rank Math (Remove Category Base). Obie metody nie kolidują z endpointami WooCommerce, takimi jak
/product-category/. Metoda z kropką w polu „Baza kategorii" również działa dla WooCommerce, ale proszę ją najpierw przetestować na środowisku stagingowym, niektóre kompilacje WooCommerce są wrażliwe na niestandardowe wartości w tym polu.
Czy te metody działają na WordPress Multisite?
Częściowo. Wtyczka Remove Category URL jest deklarowana jako kompatybilna z Multisite, ale w praktyce przy aktywacji sieciowej obsługuje tylko główną stronę, dla stron podrzędnych trzeba ją aktywować indywidualnie. Metoda z kropką w polu „Baza kategorii" działa na każdej stronie sieci osobno, ustawienia nie są dziedziczone. Kod w functions.php dla Multisite wymaga dodatkowego sprawdzenia
is_multisite()i najlepiej wydzielenia go do wtyczki MU, aby nie wiązać go z szablonem. Ręczna edycja.htaccess na Multisite jest najmniej pożądana: struktura URL sieci jest bardziej złożona, a błąd w RewriteRule psuje od razu wszystkie strony.
Który sposób usunięcia /category/ jest dla Państwa odpowiedni?
Każda z pięciu metod ma swój scenariusz zastosowania. Oto krótka matryca wyboru:
- Nie chcą Państwo instalować zbędnych wtyczek, sposób 1 (kropka w polu bazy). Zajmuje 30 sekund, nie dodaje kodu na stronę.
- Chcą Państwo minimum działań, sposób 2 (Remove Category URL). Zainstalować i zapomnieć.
- Na stronie jest już Yoast lub Rank Math, sposób 3. Proszę użyć tego, co już działa.
- Wolą Państwo kontrolę na poziomie serwera, sposób 4 (.htaccess). Proszę jednak pamiętać o kopii zapasowej.
- Jest Pan/Pani programistą potrzebującym elastyczności, sposób 5 (kod w functions.php). Dodają Państwo logikę, która jest konkretnie potrzebna.
Dla większości użytkowników optymalny jest sposób 2 (Remove Category URL): jest prosty, nie wymaga wiedzy technicznej i nie psuje strony przy dezaktywacji. Jeśli już używają Państwo Yoast SEO, proszę włączyć opcję w nim, nie mnożyć zbędnych wtyczek.
Proszę wypróbować metodę, która lepiej wpisuje się w Państwa proces pracy, i sprawdzić wynik na dwóch-trzech URL-ach kategorii. Jeśli wszystko działa, to znaczy, że dokonali Państwo właściwego wyboru.
Po zmianach warto przeskanować stronę dowolnym crawlerem SEO (Screaming Frog, Sitebulb lub Netpeak Spider): pokaże on, czy nie pojawiły się błędy 404 na stronach kategorii i czy przekierowania 301 ze starych URL-i działają poprawnie. Osobno proszę sprawdzić swoją mapę witryny XML: po zmianie struktury bezpośrednich odnośników powinna zaktualizować się automatycznie, ale czasami generowana jest z wersji zcache'owanej. W Yoast SEO wystarczy kliknąć „Zapisz" w ustawieniach mapy witryny, dla Rank Math przycisk „Refresh Sitemap" znajduje się w sekcji Sitemap Settings. Zajmuje to minutę, ale zabezpiecza przed sytuacją, gdy Google otrzymuje mapę ze starymi URL-ami.



