Elido
6 хв читанняІнженерія

301 проти 302: який редирект мають використовувати короткі посилання

301 - це постійний редирект, що передає сигнали ранжування; 302 - тимчасовий і зазвичай не передає. Що це означає для коротких посилань, SEO та кешування.

Marius Voß
DevRel · edge infra
Постійний редирект 301, що передає сигнали ранжування та кешується, поруч з тимчасовим редиректом 302, який залишається редагованим, у кольоровій палітрі Elido

Редирект 301 є постійним, а редирект 302 - тимчасовим - і для сервісу скорочення URL ця одна слова відмінність визначає, чи передають ваші посилання сигнали ранжування, наскільки агресивно браузери їх кешують та чи можна безпечно змінити їхню ціль пізніше. 301 каже: "це переміщено назавжди, надішліть SEO-цінність на нову адресу." 302 каже: "це об'їзд, збережіть оригінал у файлі." Обидва доставляють відвідувача в те саме місце; вони просто розповідають машинам дві протилежні історії.

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

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

Що таке редирект 301#

301 - це код статусу "Переміщено назавжди". Коли сервер відповідає на запит кодом 301 та заголовком Location, він робить сильне твердження: цей ресурс тепер постійно знаходиться за новим URL, і з цього моменту ви повинні вважати новий URL канонічним.

З цього твердження випливають два наслідки. Пошукові системи передають сигнали ранжування - авторитет та зворотні посилання, накопичені старим URL - цільовій сторінці, і саме тому 301 є стандартним кроком при міграції сайтів та перемиканні на HTTPS. І браузери кешують редирект, іноді дуже надовго, оскільки "постійний" сприймається буквально. Наступного разу, коли цей відвідувач перейде за посиланням, його браузер може навіть не звертатися до вашого сервера; він одразу переходить до кешованої цілі. Механіка детально описана у посібнику MDN з HTTP-редиректів, а оригінальне визначення міститься у розділі 6.4.2 RFC 7231.

Кешування є перевагою для постійного посилання та пасткою для редагованого. Запам'ятайте це - це ключовий момент у рішенні щодо короткого посилання.

Що таке редирект 302#

302 - це "Знайдено", тимчасовий редирект. Він направляє відвідувача так само, як і 301, але повідомлення машинам є протилежним: це короткострокове рішення, оригінальний URL повернеться, тому зберігайте його в індексі та не кешуйте редирект як постійний.

Варто сказати кілька слів про точнішого родича. 307 - це суворий тимчасовий редирект: той самий намір, що і 302, але він гарантує збереження HTTP-методу, тому POST залишається POST. Для коротких посилань, які є звичайними GET-запитами, 302 та 307 на практиці є неrozрізненними. Відмінність проявляє себе в API та надсиланні форм, а не у маркетинговому посиланні. Якщо ви хочете офіційну версію, RFC 7538 визначає постійний варіант 308, а тимчасовий 307 знаходиться поруч.

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

301 проти 302 для SEO: який передає ваговитість посилань#

Ось частина, яку всі насправді шукають. Класичне правило: 301 передає сигнали ранжування, а 302 - ні. Це було суворо правдою протягом років, і це досі безпечне припущення для планування. Google відтоді повідомив, що 301 передають сигнали ранжування і що стійкі 302 врешті-решт теж передають - але "врешті-решт" виконує важку роботу, і ви не контролюєте терміни.

Тому практичне SEO-резюме вміщується в одну таблицю.

Властивість301 (постійний)302 (тимчасовий)307 (тимчасовий, строгий)
Передає сигнали ранжуванняТак, повністю та швидкоПовільно, лише якщо зберігаєтьсяПовільно, лише якщо зберігається
Пошукова система зберігає старий URL в індексіНі, замінює на цільТак, очікує поверненняТак, очікує повернення
Кешування браузеромАгресивне, може бути незміннимНе кешується як постійнийНе кешується як постійний
HTTP-метод збереженоНе гарантованоНе гарантованоГарантовано
Підходить дляПереміщення, яке є остаточнимПереміщення, яке буде скасованоТимчасових переміщень для POST/API

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

Підводний камінь коротких посилань: кешування проти редагованості#

Тепер застосуємо все це до короткого посилання, де правила стикаються.

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

Жорстко кешований 301 порушує цю обіцянку. Якщо браузер відвідувача кешував 301 на стару ціль, перевказування посилання нічого для нього не дасть - він продовжуватиме потрапляти на застарілу ціль, поки кеш не закінчиться, що ви не можете примусити. Це саме та помилка, якої уникає 302. Оскільки браузер ніколи не вважає 302 постійним, ваше редагування набуває чинності для всіх при наступному кліку. Саме тому багато сервісів скорочення, включно з нашим, за замовчуванням призначають редагованим посиланням тимчасовий редирект: посилання залишається під вашим контролем. Рівень редиректу розв'язує поточну ціль при кожному запиті, тому редагування стає активним у момент збереження - стратегія кешування за цим описана у статті про наш рівень кешу для редиректів.

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

Який редирект мають використовувати ваші короткі посилання#

Відкиньте теорію, і все зводиться до одного питання: чи зміниться ціль цього посилання коли-небудь?

  • Ніколи не зміниться - постійне vanity-посилання на вашу домашню сторінку, вічне посилання у книзі. Використовуйте 301. Ви отримаєте повну, швидку передачу сигналу ранжування та бонус швидкості від кешування браузером, і не втрачаєте нічого, оскільки ви ніколи не збиралися перевказувати його.
  • Може змінитися - будь-яке посилання кампанії, будь-яке редаговане коротке посилання, будь-що, що ви хотіли б виправити без передруку. Використовуйте 302. Ви обмінюєте частку негайної SEO-передачі на гарантію того, що редагування миттєво досягає кожного відвідувача.

Для переважної більшості коротких посилань - URL кампаній, розумних посилань, що маршрутизують за країною або пристроєм, будь-чого на власному домені, яким ви активно керуєте - редагованість перемагає, тому 302 є розумним за замовчуванням. Залиште 301 для справді постійного. А якщо ви тільки починаєте, як скоротити URL охоплює процес створення, що лежить перед усім цим.

Як перевірити, який редирект використовує посилання#

Ніколи не вірте сервісу скорочення на слово. Запитайте посилання безпосередньо за допомогою HEAD-запиту:

curl -sI "https://go.yourbrand.com/spring"

Перший рядок відповіді - це код статусу - HTTP/2 301, HTTP/2 302 або HTTP/2 307 - а заголовок Location показує, куди воно вказує. Якщо ви бачите ланцюжок редиректів, кожен перехід є окремою відповіддю, і кожен додатковий перехід додає затримку та ймовірність витоку або втрати сигналу. Чисте коротке посилання - це один перехід: короткий URL до кінцевої цілі, нічого між ними. Відстеження ланцюжків редиректів є частиною того, як короткі посилання вирішуються зсередини, і утримання цього ланцюжка в межах одного переходу є половиною причини того, що затримка наших редиректів залишається низькою.

Ментальна модель - це вся публікація: 301 - це обіцянка, яку не можна забрати назад, 302 - обіцянка, яку можна. Обирайте ту, що відповідає тому, чи дозволено посиланню змінюватися, перевіряйте це за допомогою curl, і ваші редиректи робитимуть те, що ви мали на увазі, а не те, що ви припускали.

Пов'язані публікації в блозі#

Спробуйте Elido

Вставте URL - отримайте коротке посилання

Без реєстрації. Посилання живе 30 днів. Зареєструйтесь, щоб зберегти назавжди.

Безкоштовно, без реєстрації · 2 на день

Спробуйте Elido

URL-скорочувач із хостингом у ЄС: власні домени, глибока аналітика, відкритий API. Безкоштовний тариф - без кредитної картки.

Теги
301 vs 302 redirect
301 redirect
302 redirect
redirect status code
short link redirect
redirect seo

Читати далі