Блог

Избегайте большого количества переадресаций

Больше всего люди не любят делать две вещи — ждать и догонять. Даже несколько лишних секунд ожидания при открытии страницы, зачастую приводят к тому, что человек её покидает. Чем быстрее пользователь сможет полноценно взаимодействовать с сайтом, тем больше шансов на успешную конверсию.

Любое дополнительное действие, которое требуется осуществить браузеру, снижает производительность и увеличивает время отклика. При проведении аудита PageSpeed Insights, вы можете увидеть рекомендацию: «Избегайте большого количества переадресций». Устранение данной ошибки позволяет существенно ускорить сайт и повысить его в ранжировании.

Что такое переадресации и зачем они нужны

Для выполнения переадресаций используются коды 301 и 302. К примеру, в заголовке HTTP ответ 301 будет выглядеть таким образом:

HTTP / 1.1 301 перемещено навсегда

Расположение: http://example.com/newuri

Тип контента: текст / HTML

Таким образом, браузер отправит юзера по URL-адресу, который указан в поле «Location». Информация, которая требуется для осуществления переадресации расположена в заголовках, а тело ответа, как правило, остаётся пустым.

Ни код 301, ни код 302, на практике практически никогда не кэшируются. Исключения составляют случаи, когда другое прописано в дополнительных заголовках.

Стоит учитывать, что любое перенаправление будет замедлять работу пользователя, так как браузеру необходимо выполнить дополнительные действия. Если без этого обойтись невозможно — отдайте предпочтение стандартным кодам состояния 3xx HTTP. Это может потребоваться, чтобы привязать старый сайт к новому, или в случае, когда текущая версия страницы временно не работает.

Переадресация в HTTP

Переадресация URL-адресов — метод, позволяющий транице, форме или целому веб-приложению использовать более одного URL-адреса. HTTP-перенаправления могут использоваться для различных целей — временное перенаправление во время обслуживания сайта, постоянное перенаправление для поддержания работы внешних ссылок после изменения архитектуры сайта, страницы прогресса при загрузке файла, и так далее.

В HTTP перенаправление инициируется сервером путем отправки специальных ответов на запрос. Это ответы с кодом состояния 3xx. При их получении, браузер использует предоставленный новый URL-адрес и сразу же загружает его. В целом ряде случаев пользователь даже не замечает, что он был перенаправлен. Но снижение производительности может на себе ощутить.

По своей сути, все переадресации делятся на 3 типа:

  • Перманентные переадресации. Они не имеют срока действия и предполагается, что будут происходить всегда. Такие перенаправления подразумевают, что оригинальный URL больше не должен использоваться, а приоритетным является новый. В поисковых ресурсах роботы сами инициируют обновление соответствующего URL-адреса ресурса в своих индексах. Наиболее частыми вариантами их применения являются ситуации, когда происходит реорганизация сайта.
  • Временные переадресации. Коды временных переадресаций используются в случаях, когда вэб-страница не доступна по неизвестным причинам. К её постоянному местоположению получить доступ не удаётся, но он доступен из другого места. В этом случае можно использовать временное перенаправление. Роботы поисковых систем не запоминают новую временную ссылку. Временные перенаправления также используются при создании, обновлении и удалении ресурсов для представления временных страниц прогресса.
  • Специальные переадресации. Они имеют свои два конкретные названия. 304(Not Modified) перенаправляет страницу локально сохраненную копию. 300(Multiple Choice) является перенаправлением вручную. Все возможные переадресации перечислены в теле страницы и пользователь может выбрать нужное именно ему.

В качестве альтернативного способа задать переадресацию, можно использовать тег <meta> и переадресации JavaScript с применением DOM. Если не доступен контроль или настройка сервера, можно создать страницу HTML с <meta> элементом и http-equiv атрибутом. Он должен быть интегрирован в refresh в <head> страницы. Именно его найдёт браузер при отображении.

Выглядит это таким образом:

  1. <head>
  2. <meta http-equiv=”refresh” content=”0; URL=http://www.example.com/” />
  3. </head>

В атрибуте content указывается, сколько времени браузеру стоит подождать прежде чем осуществить переадресацию. Данное значение нужно указывать равным 0.

Переадресация в JavaScript

Переадресации в JavaScript создаются путем установки значения для window.location. К примеру:

  1. window.location = “http://www.example.com/“;

Создать JS-переадресацию можно для любого рессурса, который поддерживает данную функцию. Это особенно актуально при работе с мобильными устройствами, когда пользователи набирают короткий адрес сайта. В данном случае убедитесь, что переход от http://example.com к https://www.example.com будет осуществляться в одну маршрутизацию.

Помимо прочего, можно установить и порядок приоритета переадресаций:

  • HTTP-перенаправления всегда выполняются первыми, если страница не передаётся и не читается
  • HTML переадресации ( <meta>) выполняются, если не было никаких перенаправлений HTTP.
  • Переадресации JavaScript используются в качестве конечного аспекта и только в случае, если у пользователя включён JavaScript.

В идеале, один рессурс должен иметь только одно расположение и один URL. Но есть причины, когда хочется создать дополнительные имена для сайта. К примеру, несколько доменов, имеющих атрибут «www», либо без такового. Или адреса, которые будут быстро запоминаться. В таком случае, можно прибегнуть к псевдониму домена. Использовать для выполнения переадресации стоит один URL, который и является истинным.

Когда использование псевдонима является выгодным для сайта и вполне оправдано:

  • Чтобы увеличить охват пользователей. Распространенный случай – когда сайт находится в домене www.example.com, при этом, доступ к нему существует через example.com. В этом случае настраиваются переадресации страниц example.com на www.example.com. Помимо этого, вы можете добавить транслитерацию, частые опечатки, которые допускаются при написании сайта или синонимы, по которым его могут искать.
  • Переезд в другой домен. К примеру, компания была переименована. Логично предположить, что пользователи будут искать её не только по новому названию, но и по старому. Убрав возможность посещать сайт привычным способом, через старый вэб-адрес, вы потеряете большое количество своих пользователей.
  • Принудительный HTTPS. Запросы к HTTP-версии вашего сайта будут перенаправлены на HTTPS-версию вашего сайта.

Чтобы увеличить производительность сайта, максимально снизьте число возможных переадресаций. Если обойтись без них не удастся — настройте их грамотно.

Похожие записи