Як правильно прибрати / з URL у WordPress і не втратити SEO
Коли я тільки запускав блог, у структурі постійних посилань для записів стояла кінцівка /
. На той момент це було поширено: ми як би «підказували» пошуковикам, що сторінка статична. Зараз це неактуально: чисті адреси зі слешем (/stattya/
) виглядають коротше, зрозуміліше й краще масштабується технічно. У цій статті розберемо, як безпечно перейти з /page/
на /page/
, зберігши позиції та трафік.
Коротко: що саме робимо
- Фіксуємо єдиний стандарт адрес: рекомендую зі слешем (
/post/
). - Робимо 1:1-мапінг усіх старих URL → нових.
- Налаштовуємо 301-редіректи без ланцюжків.
- Оновлюємо внутрішні посилання, canonical, hreflang, sitemap, JSON-LD.
- Переіндексовуємо ключові сторінки в Google Search Console і моніторимо 404/переходи 4–6 тижнів.
Чому варто прибрати /
Плюси | Пояснення |
---|---|
Коротші, «чисті» URL | Вище CTR, краще сприйняття, легше читати й ділитися. |
Технологічна гнучкість | Адреса не «зашиває» стек. Хоч сьогодні WP, завтра headless — URL стабільні. |
Канонікалізація | Єдина форма адрес зі слешем зменшує ризики дубляжу. |
Легша локалізація | Структури на кшталт /ua/blog/seo/ очевидні та масштабовані. |
Важливо: сам по собі суфікс /
не шкодить SEO. Проблеми з’являються через дублікати, ланцюжки редіректів і змішані форми URL.
Ризики міграції
- Тимчасова «турбулентність» у видачі, якщо робити без плану.
- Втрата частини ваги при 302 замість 301, при ланцюжках чи пропущених сторінках.
- Зламані внутрішні посилання, якщо не оновити меню/віджети/сніпети.
Підготовка: чек-лист перед стартом
- Зробіть повний бекап файлів і БД. Бажано тест на staging.
- Збережіть повний список URL (скрінер або sitemap) і складіть 1:1-мапінг
*/ → */
. - Визначте єдиний стандарт: рекомендую завжди зі слешем (
/services/
). - Переконайтеся, що canonical і hreflang генеруються для нових адрес.
Крок 1. Встановіть «чисту» структуру посилань у WordPress
Перейдіть: Налаштування → Постійні посилання і оберіть Назва запису. Якщо раніше стояло /%postname%/
, змініть на /%postname%/
.
Крок 2. 301-редіректи без ланцюжків
Налаштуйте редіректи так, щоб /page/
відразу вів на /page/
(одним хопом), і зберігайте параметри запитів.
Apache (.htaccess)
# Увімкнути механізм
RewriteEngine On
# 1) /page/ -> /page/
RewriteCond %{REQUEST_URI} \/$
RewriteRule ^(.+)\/$ /$1/ [R=301,L]
# 2) Довантажити фінальний слеш для всіх (крім файлів/папок)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+[^/])$ /$1/ [R=301,L]
# 3) (Опціонально) Виключення для admin, feed, sitemap тощо
RewriteRule ^(wp-admin|wp-json|feed|sitemap_index\.xml) – [L]
Nginx (server блок)
Якщо у вас віртуальний хостинг на Апаче, не замарачуйтесь та пропускайте цей пункт
# /page/ -> /page/
location ~ ^/(.+)\/$ {
return 301 /$1/;
}
# Финальний слеш (обережно з API/JSON)
location / {
try_files $uri $uri/ /index.php?$args;
}
Cloudflare (якщо використовується)
- Transform Rules → URL Rewrite: правило
*/ → */
. - Redirect Rules: 301 із збереженням Query String.
Крок 3. Оновіть усі внутрішні посилання
- Меню, футер, віджети, кнопки, шаблони.
- Посилання в контенті сторінок/записів (у т.ч. візуальні редактори/шорткоди).
- hreflang, canonical, JSON-LD, sitemap.xml.
Зручно скористатись плагіном пошуку/заміни в БД. На великих сайтах — робіть на staging і перевіряйте диф.
Тут є такий спорний момент що можно зачипити посилання на сторонні ресурси. Для вирішення цієєї проблеми після правки треба запустит сканування битих посилань , як це робиться дивмося тут.
Крок 4. Перевірки після запуску
- Google Search Console: URL Inspection → Request indexing для ключових сторінок; розділ Coverage на 404.
- Перегенеруйте sitemap.xml (лише нові адреси) і надішліть у GSC.
- Логи/аналітика: відстеження 301, помилок 404, падіння/повернення трафіку (4–6 тижнів).
- Переконайтесь, що жодних редірект-ланцюжків і 302 немає.
Приклади 1:1-мапінгу
Було | Стало |
---|---|
/service/ | /service/ |
/portfolio/project-x/ | /portfolio/project-x/ |
/blog/yak-prybraty-html/ | /blog/yak-prybraty-html/ |
Polylang та багатомовність: що врахувати
- Оновіть hreflang на нові адреси по кожній мові (
ua
,ru
,en
тощо). - Переконайтесь, що перемикач мов та меню посилаються на нові URL.
- Перегенеруйте мовні sitemap — щоб індекси для кожної локалі вказували на «чисті» адреси.
Коли краще почекати з міграцією
- Якщо на
/
веде багато сильних беклінків і немає ресурсу зробити міграцію «чисто». Краще поетапно. - Якщо сайт у розпалі великого редизайну/міграції на інший хостинг — не змішуйте кілька ризикованих змін.
Типові помилки, яких слід уникати
- 302 замість 301 при постійному перенаправленні.
- Редірект-ланцюжки
/old/ → /old/ → /new/
— має бути одразу/old/ → /new/
. - Змішані стандарти (
/post
та/post/
одночасно) — оберіть один. - Забуті внутрішні посилання в шаблонах, сайдбарах, JSON-LD, hreflang.
Висновок
Переходити на «чисті» URL — гарна ідея для UX і SEO. Ключ — у дисципліні: 1:1-мапінг, 301 без ланцюжків, оновлені внутрішні посилання, коректні canonical
/ hreflang
і контроль у GSC. Робите послідовно — індексація збережеться, а адреси стануть акуратнішими й зрозумілішими.
FAQ: Прибирання .html з URL у WordPress
Питання | Відповідь |
---|---|
Чи шкодить .html у кінці URL SEO? | Ні, саме по собі .html не шкодить. Проблеми виникають через дублікати, ланцюжки редіректів і змішані форми адрес. |
Який редірект ставити при переході? | Використовуйте тільки 301 редіректи. Вони передають вагу сторінки і зберігають позиції в пошуку. |
Чи впаде трафік після переходу? | Може бути тимчасове коливання у видачі (2–6 тижнів), якщо все зроблено правильно — трафік відновлюється. |
Що обрати: слеш чи без слеша? | Рекомендовано використовувати єдину форму /page/ . Це простіше для масштабування і SEO. |
Чи потрібно оновлювати sitemap і canonical? | Так, обов’язково. Sitemap має містити тільки нові адреси, а canonical і hreflang повинні вказувати на оновлені URL. |
Поки що нема коментарів.