301 редирект без втрати позицій: переїзд сторінок, домену і https

Правильно налаштований 301 редирект передає на нову адресу майже всю вагу старої, тому позиції після переїзду просідають тимчасово, зазвичай на два-чотири тижні, і повертаються. Трафік втрачають не через сам редирект, а через помилки навколо нього: усе перенаправили на головну, вийшли ланцюжки з трьох стрибків, у меню лишились старі посилання, а в sitemap старі URL. Нижче розбираємо, чим 301 відрізняється від 302 і 308, у яких випадках він потрібен, як прописати правила в .htaccess та nginx і як переконатись, що все спрацювало.

SEO-спеціаліст перевіряє 301 редирект командою curl у терміналі на екрані ноутбука

301, 302, 307, 308 і meta refresh: у чому різниця

Код відповіді сервера каже браузеру і пошуковику, що сторінка переїхала, і як до цього ставитись. Для SEO принципова різниця між постійним і тимчасовим переїздом: у першому випадку Google поступово замінює стару адресу в індексі на нову, у другому продовжує тримати стару і чекає, коли вона повернеться.

КодЩо означаєМетод запитуКоли доречний
301Постійний переїздМоже змінитись на GETЗміна URL, домену, злиття сторінок, перехід на https
302Тимчасове перенаправленняМоже змінитись на GETАкції, A/B-тести, сторінка тимчасово недоступна
307Тимчасове, метод зберігаєтьсяНе змінюєтьсяФорми та API, де POST має лишитись POST
308Постійне, метод зберігаєтьсяНе змінюєтьсяТе саме, що 301, але для POST-запитів
meta refreshПеренаправлення на рівні HTML-сторінкиНе застосовуєтьсяЛише без доступу до сервера; Google обробляє повільніше

Для більшості сайтів вибір зводиться до двох варіантів: 301 назавжди, 302 на кілька днів. Дилема «302 чи 301» вирішується одним питанням: чи повернеться стара адреса. Якщо ні, ставте 301. Google давно підтверджує, що обидва коди передають PageRank, але з 302 пошуковик довше тримає в індексі стару сторінку і може взагалі не переключитись на нову. Ми в Query не раз бачили сайти, де після редизайну рік стояв 302, а в пошуку далі висіли старі URL, які на кліку віддавали 404.

Meta refresh і JavaScript-перенаправлення Google теж розуміє, але обробляє повільніше і не завжди. Це запасний варіант для конструкторів сайтів без доступу до конфігурації сервера, не основний інструмент.

Коли потрібен 301 редирект

  • Зміна URL сторінки. Перейменували категорію, прибрали дати з адрес блогу, змінили структуру ЧПУ. Кожен старий шлях має вести на свій новий.
  • Злиття сторінок. Три схожі статті об'єднали в одну: дві зайві перенаправляються на ту, що лишилась.
  • Перехід із http на https. Редирект https ставиться на всі адреси без винятку, разом із картинками, PDF та іншими файлами.
  • Дзеркала www і без www. Обирається одна головна версія, друга перенаправляється на неї. Те саме зі слешем у кінці адреси та регістром літер.
  • Переїзд сайту на новий домен. Найризиковіший сценарій: редиректи тут працюють у парі з повідомленням Google про зміну адреси. Що ще треба врахувати, ми зібрали на сторінці послуги SEO при зміні домену.
  • Видалення товару чи послуги. Якщо є близький аналог, редирект на нього. Якщо аналога немає, чесніше віддати 404 або 410, ніж відправляти всіх на головну.

Як зробити редирект 301 і не втратити позиції

Сам рядок у конфігурації пишеться за хвилину. Позиції втрачають на підготовці, тому послідовність має значення.

  1. Зберіть повний список старих URL. Вивантажте адреси з Search Console, аналітики, sitemap і краулера (Screaming Frog або аналог). Окремо позначте сторінки з трафіком і зовнішніми посиланнями: їх втрачати найболючіше.
  2. Складіть карту відповідностей 1:1. Кожна стара адреса отримує конкретну нову з тим самим змістом. Масове перенаправлення всього на головну Google трактує як soft 404 і вагу не передає.
  3. Один стрибок, не ланцюжок. Старий URL веде одразу на кінцевий. Якщо на сайті вже є давні редиректи, перепишіть їх на нову ціль, інакше з'являться ланцюжки з двох-трьох переходів, а Googlebot проходить обмежену їх кількість.
  4. Оновіть внутрішні посилання. Меню, футер, текстові лінки, canonical, hreflang: усі мають вести напряму на нові адреси, а не через редирект.
  5. Перегенеруйте sitemap.xml лише з новими URL і надішліть його в Search Console. Старий sitemap зі старими адресами не тримайте.
  6. При зміні домену повідомте Google. У Search Console є інструмент «Зміна адреси»: він працює тільки для переїзду між доменами і прискорює перенесення сигналів. Офіційна інструкція: Site moves with URL changes.
  7. Обирайте спокійний період. Не перед сезоном і не в день запуску реклами. Перші два-три тижні щодня дивіться на покриття в Search Console.
Таблиця відповідності старих і нових URL сайту на моніторі перед налаштуванням 301 редиректу

Приклади для .htaccess і nginx

На Apache редиректи живуть у файлі .htaccess у корені сайту, на nginx у конфігурації сервера (nginx.conf або файл сайту в sites-available). Після правок nginx треба перезавантажити командою nginx -s reload, Apache підхоплює .htaccess одразу.

.htaccess (Apache)

Одна сторінка на нову адресу:

Redirect 301 /stara-storinka/ https://site.ua/nova-storinka/

Увесь сайт із http на https і на версію без www одним правилом:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\. [NC]
RewriteRule ^(.*)$ https://site.ua/$1 [R=301,L]

Переїзд на новий домен зі збереженням шляхів:

RewriteCond %{HTTP_HOST} ^(www\.)?old-site\.ua$ [NC]
RewriteRule ^(.*)$ https://new-site.ua/$1 [R=301,L]

nginx

Окрема сторінка:

location = /stara-storinka/ { return 301 https://site.ua/nova-storinka/; }

Увесь домен, http і www разом:

server {
    listen 80;
    server_name old-site.ua www.old-site.ua;
    return 301 https://new-site.ua$request_uri;
}

В nginx правила через return 301 виконуються швидше за rewrite, і саме їх варто брати для масових переїздів. Для WordPress та інших CMS є плагіни редиректів, але для сотень адрес правило на рівні сервера надійніше і не навантажує PHP на кожному запиті.

Залиште заявку

Вкажіть ваше ім'я та email, наші менеджери зв'яжуться з Вами найближчим часом

Як перевірити, що редирект працює

Найшвидший спосіб: у терміналі виконати curl -I https://old-site.ua/stara-storinka/. У відповіді має бути рядок HTTP/2 301 і заголовок location: із кінцевою адресою. Якщо за першим 301 іде ще один 301 або 302, це ланцюжок, і його треба скоротити до одного стрибка. Команда curl -IL покаже весь ланцюжок одразу.

Для масової перевірки прогоніть старий список URL через Screaming Frog у режимі List: він покаже код відповіді, кінцеву адресу і кількість стрибків для кожного рядка. Безкоштовних онлайн-чекерів редиректів теж вистачає, для десятка адрес їх достатньо.

У Search Console дивіться два звіти. «Сторінки» (індексування) покаже, чи не зависли старі адреси в категорії «Сторінка з переадресацією» без індексації нової. «Ефективність» через два-три тижні має показати, що кліки з нових адрес відновились до рівня старих. Інструмент перевірки URL дає змогу окремо подивитись, як Googlebot бачить конкретну адресу і яку сторінку вважає канонічною.

Звіт Search Console з індексуванням сторінок після переїзду сайту на новий домен на екрані монітора

Скільки тримати редиректи

Google рекомендує тримати 301 редиректи щонайменше рік: приблизно стільки потрібно, щоб пошуковик переобійшов усі старі адреси, переніс сигнали і перестав на них повертатись. На практиці ми радимо не прибирати їх узагалі, поки живе старий домен або поки на старі адреси є переходи. Зовнішні посилання з інших сайтів ніхто не переписуватиме, і кожне з них через рік так само впиратиметься в стару адресу.

Виняток: технічні правила, що створюють навантаження або конфліктують із новою структурою. Їх переглядають через рік за серверними логами: якщо на адресу ніхто не заходив 12 місяців, правило можна прибрати без наслідків.

Типові помилки, які з'їдають позиції

  • Усе на головну. Найпоширеніша і найдорожча помилка. Google ігнорує такий редирект як soft 404, позиції старих сторінок зникають.
  • 302 замість 301. Стара адреса роками лишається в індексі, нова не набирає ваги.
  • Ланцюжки і петлі. Стара адреса веде на проміжну, та ще на одну. Кожен зайвий стрибок сповільнює сканування, а петля повністю блокує сторінку і для людей, і для бота.
  • Редирект тільки для сторінок. Забувають картинки, PDF і файли, які збирали трафік із пошуку зображень і мали зовнішні посилання.
  • Старий домен не продовжили. Через два роки домен звільнився, редиректи зникли разом із ним, а з ними і всі зовнішні посилання.
  • Нова сторінка закрита від індексації. Вона віддає noindex або заборонена в robots.txt, і вага передається в нікуди.
  • Різний зміст. Стара сторінка про доставку веде на сторінку про оплату. Формально редирект є, за змістом це той самий soft 404.

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

З чого почати

  1. Вивантажте повний список поточних URL і позначте ті, що дають трафік і мають зовнішні посилання.
  2. Складіть таблицю відповідностей «стара адреса і нова» 1:1, без масових перенаправлень на головну.
  3. Пропишіть правила на рівні сервера і перевірте вибірку через curl -I на відсутність ланцюжків.
  4. Оновіть внутрішні посилання, canonical і sitemap, надішліть sitemap у Search Console, при зміні домену запустіть «Зміну адреси».
  5. Три тижні стежте за звітами «Сторінки» та «Ефективність» і не прибирайте редиректи щонайменше рік.

Інші статті

Інші послуги

Зв'яжіться з нами
Месенджери