Skip to content

Все для WordPress, веб-розробки — і не тільки

⚙️ Як прибрати категорію з URL WordPress: всі робочі способи

⚙️ Як прибрати категорію з URL WordPress: всі робочі способи

URL-адреса в WordPress за замовчуванням має такий вигляд: /category/plugins/ або /category/news/ або /category/wordpress/. Слово «category» не несе жодного сенсу ні для користувача, ні для пошукової системи. Це рудимент, який лише подовжує адресу й розмиває структуру сайту.

Проблема в тому, що стандартними засобами WordPress не дає прибрати цей префікс простим перемикачем. Більшість власників сайтів або миряться з /category/, або ставлять перший-ліпший плагін, не розуміючи наслідків. А наслідки бувають: биті лінки, 404 на старих адресах, дублі в індексі.

Ось покроковий розбір усіх робочих способів прибрати /category/ з URL WordPress: від найпростішого вбудованого до коду в functions.php. Кожен метод перевірений на актуальних версіях WordPress, із поясненням обмежень і підводних каменів.

💡 Швидкий огляд:

  • Вбудований механізм постійних посилань: простий точковий хак через налаштування, без плагінів
  • Плагін Remove Category URL: найлегший спосіб в один клік для тих, хто не хоче лізти в налаштування
  • Yoast SEO або Rank Math: якщо SEO-плагін уже встановлено, база категорій прибирається його ж силами
  • .htaccess: варіант для тих, хто віддає перевагу ручному контролю на рівні сервера
  • Код у functions.php: програмний метод без плагінів, із повним контролем над логікою заміни

1. Вбудовані налаштування постійних посилань

Це найпростіший метод, який не потребує встановлення жодного плагіна. Він використовує стандартний механізм «Постійних посилань» у самому WordPress.

Заходьте в адмінку, відкрийте Налаштування → Постійні посилання. У блоці «Загальні налаштування» виберіть опцію «Довільна структура».

У полі праворуч введіть конструкцію:

1/%category%/%postname%/

Тепер ключовий момент. Прокрутіть сторінку до поля «База категорій» і поставте в ньому крапку, символ . (без лапок). Це нестандартний, але робочий прийом: WordPress інтерпретує крапку як порожню базу й перестає вставляти /category/ в URL категорій.

Налаштування довільної структури постійних посилань

Натисніть «Зберегти зміни». Готово, URL ваших категорій тепер мають вигляд site.ru/wordpress/, а не site.ru/category/wordpress/.

⚠️ Важливий нюанс: не залишайте поле «База категорій» порожнім. Якщо там нічого немає, WordPress повертає стандартну /category/. Саме тому ми ставимо крапку: порожній рядок не працює, крапка працює.

Цей метод підходить для більшості сайтів, але має один мінус: крапка в полі бази — це хак, який може злетіти під час оновлення WordPress або зміни структури постійних посилань на іншу й назад. Якщо хочете більш надійне рішення, дивіться наступні способи.

2. Плагін Remove Category URL

Remove Category URL, мінімалістичний плагін, який робить рівно одне: прибирає /category/ з URL. Жодних налаштувань, жодних зайвих пунктів в адмінці.

Сторінка плагіна Remove Category URL в каталозі WordPress

Після встановлення плагін починає працювати одразу. Жодних додаткових кроків: завантажили, активували, перевірили URL категорії, /category/ зник.

Активований плагін Remove Category URL в адмінці WordPress

Чому саме цей плагін, а не десяток аналогів? Він важить мінімум, не додає рекламних банерів в адмінку й сумісний із WPML та WordPress Multisite. Під час деактивації плагіна URL автоматично повертаються до стандартної структури з /category/, плагін не ламає постійні посилання назавжди.

Для тих, кому потрібен не лише категорійний префікс, а й робота з батьківськими категоріями, є альтернатива, FV Top Level Categories. Він дозволяє виводити категорії будь-якого рівня вкладеності як кореневі в URL, без /category/ і без батьківських слагів.

🔗 Remove Category URL на WordPress.org

3. SEO-плагіни: Yoast SEO та Rank Math

Якщо на сайті вже встановлено Yoast SEO або Rank Math, окремий плагін для видалення /category/ не потрібен. Обидва SEO-гіганти мають вбудовану функцію прибирання категорійної бази.

У Yoast SEO:

  • У меню WordPress натисніть Yoast SEO
  • Перейдіть у вкладку Advanced (Розширені)
  • Відкрийте розділ Permalinks (Постійні посилання)
  • Увімкніть опцію «Remove the categories prefix» (Прибрати префікс категорій)
  • Збережіть зміни

У Rank Math:

  • В адмінці перейдіть Rank Math → General Settings
  • Відкрийте вкладку WooCommerce (так, саме там, не в Permalinks)
  • Знайдіть опцію «Remove Category Base» і увімкніть її

Обидва плагіни роблять те саме, що й Remove Category URL, але своїм внутрішнім механізмом. Плюс: не потрібно зайвих плагінів. Мінус: у разі зміни SEO-плагіна на інший категорійна база може повернутися, доведеться переналаштовувати.

Сторінка налаштувань Yoast SEO в адмінці WordPress

До речі, якщо ви тільки обираєте між Yoast і Rank Math, ось наш детальний розбір відмінностей, який допоможе визначитися.

4. Ручне редагування.htaccess

Метод для тих, хто віддає перевагу контролю на рівні сервера. Видалення /category/ через.htaccess працює через правило mod_rewrite, яке прозоро перенаправляє всі категорійні URL на адреси без префікса.

Для цього потрібен доступ до файлу .htaccess у корені сайту, через FTP, файловий менеджер хостингу або cPanel. Відкрийте файл і додайте наступний рядок до блоку # BEGIN WordPress:

1RewriteRule ^category/(.+)$ http://www.site.com/$1 [R=301,L]
Код правила RewriteRule для .htaccess у текстовому редакторі

Замініть www.site.com на ваш реальний домен. Правило робить 301-редирект з усіх URL, що починаються з /category/, на адреси без цього префікса.

⚠️ Обережно: цей метод працює тільки на Apache-серверах. На Nginx потрібен аналогічний рядок у конфігурації:

1rewrite ^/category/(.+)$ /$1 permanent;

Перед змінами обов’язково зробіть резервну копію .htaccess. Помилка в синтаксисі цього файлу кладе весь сайт із помилкою 500.

Якщо ваш сайт на Nginx, прямий аналог вищезгаданого правила виглядає так само просто, але додається в конфігурацію серверного блоку, а не в.htaccess. Після додавання правила перезавантажте Nginx командою nginx -s reload. На відміну від Apache, Nginx не читає.htaccess, тому помилка в синтаксисі основної конфігурації теж кладе сайт, але не так безповоротно: Nginx просто не запуститься після перезавантаження, залишивши попередній робочий процес. Протестуйте конфіг командою nginx -t перед застосуванням.

5. Код у functions.php

Програмний метод для тих, хто хоче прибрати /category/ без плагінів і без редагування серверних конфігів. Код додається один раз у functions.php активованої теми і працює через стандартний фільтр WordPress.

Перед додаванням коду переконайтеся, що поле «База категорій» у налаштуваннях постійних посилань не порожнє і не містить крапки, воно повинно бути стандартним (category). Фільтр шукає слово «category» в URL, і якщо не знаходить його, метод не спрацьовує.

Відкрийте Зовнішній вигляд → Редактор файлів теми, виберіть functions.php і додайте цей код перед закривальним тегом ?> (якщо тега немає, просто в кінець файлу):

1function 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}
8add_filter('user_trailingslashit', 'remove_category_from_url', 100, 2);

Як це працює:

  • Фільтр user_trailingslashit викликається щоразу, коли WordPress генерує URL категорії
  • Функція перевіряє, що це справді категорія (не пост, не тег) і що в URL є /category/
  • Якщо обидві умови виконані, /category/ видаляється, а слеш у кінці зберігається через trailingslashit()

Після додавання коду зайдіть у Налаштування → Постійні посилання і просто натисніть «Зберегти» — це скине кеш постійних посилань і застосує нове правило.

Цей метод найбільш гнучкий: ви повністю контролюєте логіку заміни, можете додати винятки для окремих категорій або адаптувати код під нестандартну структуру URL.

Програмний код на екрані, налаштування URL WordPress

Якщо ви віддаєте перевагу побачити процес наживо, ось коротка відеоінструкція англійською: встановлення плагіна Remove Category URL і перевірка результату за дві хвилини.

⁉️🤔 Часті запитання

Чи зникнуть категорії з сайту після видалення /category/ з URL?

Ні. Категорії залишаються повністю функціональними: архіви категорій працюють, пости в них відображаються, таксономія не ламається. Змінюється тільки адреса в браузері. Це суто косметична зміна структури постійних посилань, WordPress продовжує розпізнавати категорії за внутрішнім ID, а не за URL-префіксом.

Чи потрібно налаштовувати 301-редиректи після зміни URL?

Так, обов'язково. Після видалення /category/ старі адреси з /category/ стають недоступними. Якщо на них були зовнішні посилання або вони вже проіндексовані пошуковиками, ви отримаєте 404. Метод через.htaccess (спосіб 4) автоматично додає 301-редирект. При використанні плагінів або коду в functions.php переконайтеся, що WordPress коректно перенаправляє старі URL, зазвичай це відбувається автоматично, але варто перевірити кілька старих адрес після змін.

Що робити, якщо після змін частина URL все ще містить /category/?

Швидше за все, проблема в кешуванні. Скиньте кеш постійних посилань: зайдіть у Налаштування → Постійні посилання і просто натисніть «Зберегти», нічого не змінюючи. Якщо використовуєте кешуючий плагін (WP Rocket, W3 Total Cache), очистіть його кеш. На серверному рівні переконайтеся, що правила mod_rewrite у.htaccess не конфліктують із новими налаштуваннями.

Чи впливає видалення /category/ на SEO?

Так, але тільки позитивно, якщо зроблено правильно. Коротші URL краще клікаються у видачі, легше читаються і швидше індексуються. Дослідження Backlinko показують, що короткі URL корелюють з вищими позиціями. Головне, не забути про 301-редиректи зі старих адрес, щоб не втратити накопичений PageRank.

Який спосіб вибрати для WooCommerce?

Для інтернет-магазинів на WooCommerce найкраще підходить або плагін Remove Category URL (він коректно обробляє товарні категорії), або вбудована функція Rank Math (Remove Category Base). Обидва методи не конфліктують з WooCommerce-ендпоінтами на кшталт /product-category/. Метод з крапкою в полі «База категорій» теж працює для WooCommerce, але протестуйте його спершу на стейджингу, деякі збірки WooCommerce чутливі до нестандартних значень цього поля.

Чи працюють ці методи на WordPress Multisite?

Частково. Плагін Remove Category URL заявлений як сумісний з Multisite, але на практиці при мережевій активації він обробляє лише основний сайт, для дочірніх сайтів його потрібно активувати індивідуально. Метод через крапку в полі «База категорій» працює на кожному сайті мережі окремо, налаштування не наслідуються. Код у functions.php для Multisite потребує додаткової перевірки is_multisite() і в ідеалі винесення в MU-плагін, щоб не прив'язуватися до теми. Ручне редагування.htaccess на Multisite найменш бажане: структура URL мережі складніша, і помилка в RewriteRule ламає одразу всі сайти.

Який спосіб прибрати /category/ підходить саме вам?

Кожен з п'яти методів має свій сценарій застосування. Ось коротка матриця вибору:

  • Не хочете ставити зайвих плагінів, спосіб 1 (крапка в полі бази). Займає 30 секунд, не додає коду на сайт.
  • Хочете мінімум рухів, спосіб 2 (Remove Category URL). Поставили і забули.
  • На сайті вже є Yoast або Rank Math, спосіб 3. Використовуйте те, що вже працює.
  • Віддаєте перевагу контролю на рівні сервера, спосіб 4 (.htaccess). Але пам'ятайте про бекап.
  • Розробник, якому потрібна гнучкість, спосіб 5 (код у functions.php). Додаєте логіку, яка потрібна саме вам.

Для більшості користувачів оптимальним є спосіб 2 (Remove Category URL): він простий, не вимагає технічних знань і не ламає сайт при деактивації. Якщо ви вже використовуєте Yoast SEO, увімкніть опцію в ньому, не плодіть зайві плагіни.

Спробуйте той метод, який краще вписується у ваш робочий процес, і перевірте результат на двох-трьох URL категорій. Якщо все працює, значить, ви зробили правильний вибір.

Після змін корисно прогнати сайт через будь-який SEO-краулер (Screaming Frog, Sitebulb або Netpeak Spider): він покаже, чи не з'явилося 404 на категоріальних сторінках і чи коректно відпрацьовують 301-редиректи зі старих URL. Окремо перевірте свою XML-карту сайту: після зміни структури постійних посилань вона має оновитися автоматично, але іноді генерується за кешованою версією. У Yoast SEO досить натиснути «Зберегти» в налаштуваннях карти сайту, для Rank Math кнопка «Refresh Sitemap» знаходиться в розділі Sitemap Settings. Це займає хвилину, але страхує від ситуації, коли Google отримує карту зі старими URL.