Как вам уменьшить число переадресаций на сайте?

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

Как вам уменьшить число переадресаций на сайте?

В частности, я расскажу вам о том, как можно уменьшить число переадресаций на сайте и тем самым ускорить загрузку сайта. Найти переадресации мне поможет PageSpeed Insights, а решать я буду конкретные проблемы, выявленные этим сервисом на моем блоге.

И так, заходим на сайт, вводим URL-адрес интересующей веб-страницы и жмем кнопку «Анализ» (англ. Analyze). Сервис выдаст нам кучу всевозможных ошибок, нас же интересует пока группа «Исключить переадресации» (англ. Avoid Redirects). Вот, что я получил для одной из своих веб-страниц.

отчет Avoid Redirects - уменьшите число переадресаций в PageSpeed Insights

Как вы видите, каждая ошибка состоит из двух URL-адресов. Первый URL-адрес это тот, что есть на веб-странице, а второй – это куда перенаправляется пользователь по первому URL-адресу. Например, у меня на веб-странице блога, в CSS-стилях используется картинка, которую я вызываю по адресу без «www» в доменном имени:

.blog-pager {
  background: transparent url(//blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center;
  overflow:hidden;
}

в результате мы получаем перенаправление на URL-адрес с «www» в начале доменного имени. Избавиться от лишней переадресации можно, добавив «www» в доменном имени:

.blog-pager {
  background: transparent url(//www.blogblog.com/1kt/simple/paging_dot.png) repeat-x scroll top center;
  overflow:hidden;
}

Следующая проблема несколько сложнее. К ней мы вернемся чуть позже, т.к. в начале нам надо разобраться непосредственно с counter.yadro.ru, который используется рейтингом LiveInterent. Если сравнить два URL-адреса, то отличие между ними будет лишь в параметре q, но именно из-за него и происходит перенаправление.

http://counter.yadro.ru/hit?r;...
http://counter.yadro.ru/hit?q;r...

В коде счетчика LiveInternet мы легко можем найти отсутствие этого параметра. Вот начала кода счетчика (не информера):

<!--LiveInternet counter--><script type='text/javascript'>new Image().src = "//counter.yadro.ru/hit?r" + …

Чтобы избавиться от лишней переадресации достаточно добавить недостающий параметр:

<!--LiveInternet counter--><script type='text/javascript'>new Image().src = "//counter.yadro.ru/hit?q;r" + …

Вернемся к предыдущей проблеме. Здесь тоже используется counter.yadro.ru, но с параметром PLUSO. Нетрудно догадаться, что речь идет о сервисе Pluso, который недавно расширил круг своих функций. В частности, он теперь собирает статистику социальной активности. Хотя сказать с полной уверенностью, что для этого используются ресурсы LiveInternet, я не могу. В коде скрипта: share.pluso.ru/pluso.js – как и: share.pluso.ru/pluso-like.js – присутствуют вызовы счетчика LiveInternet. Плюс пока закомментированы счетчики сервисов DataMind и AdRiver. С учетом сказанного, решил отказаться от Pluso и попробовать кнопку «Поделиться» от Яндекс, только в расширенном и недокументированном виде. Пример, смотрите в конце данного поста. Я же приведу свой код для вставки в Blogger шаблон. Первую часть кода надо поместить в тег head:

<script charset='utf-8' src='//yandex.st/share/share.js' type='text/javascript'/>

Вторую часть кода в то места, где будут выводиться кнопки:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<div class='yashare-auto-init' data-yashareQuickServices='twitter,facebook,vkontakte,lj,moimir,odnoklassniki,gplus' data-yashareTheme='counter' data-yashareType='small' expr:data-yashareDescription='data:blog.metaDescription' expr:data-yashareImage='data:blog.postImageThumbnailUrl' expr:data-yashareLink='data:post.url' expr:data-yashareTitle='data:post.title'/>
</b:if>

Обращаю ваше внимание, что здесь уже учтена подстановка данных: URL, заголовок, описание и картинки.

Идём дальше. Теперь мы встречаемся с проблемой счетчика Яндекс.Метрика. Если верить PageSpeed Insights, то разница здесь всего лишь в «/1»:

http://mc.yandex.ru/watch/19563148?rn=426787...
http://mc.yandex.ru/watch/19563148/1?rn=426787...

Фишка в том, что переадресация происходит здесь где-то в недрах скрипта счетчика, и я никак не могу понять где. Возможно, я ещё обращусь с этим вопросом к разработчикам, а пока просто отказаться от всех прелестей и урезал счетчик до содержания тега noscript и добавления «/1» в конец значения атрибута src, например:

<img src="//mc.yandex.ru/watch/19563148/1" style="position:absolute; left:-9999px;" alt="" />

Дальше у нас идёт счётчик от Mail.ru. Проблема выглядит также как и с Яндекс.Метрика. Вот только речь идёт именно об информере, код которого вполне доступен для редактирования. Так что просто добавляем «2» и проблема решена.

<img src="//top-fwz1.mail.ru/counter2?id=2356444;t=479;l=1" …

Последняя ошибка явно связана с работой Google AdSense и вроде как речь идет о проверке - авторизован пользователь или нет, но исправить не представляется возможным, разве что убрать с блога рекламу.

После всех выше изложенных изменений у меня осталась только последняя переадресация.

после исправления ошибок

Конечно, на блоге есть и другие проблемы, но о них и их решениях я расскажу в других своих постах. На этом у меня всё. Если у вас возникли проблемы, которые не описаны в моем посте – пишите в комментариях (желательно со скриншотом, используйте bbcode тег [img]), будем разбираться. Спасибо за внимание. Удачи!

Twitter Facebook ВКонтакте Одноклассники Google+

4 комментария:

Сергей Викторович
«/1» со счетчиком Яндекс.Метрика не прокатило
Константин Кирилюк
2Сергей Викторович а в чём проблема? Нужно только галочку "для XML сайтов" не ставить и в коде будет эта однопикселевая картинка.
Сергей Викторович
Галочку "для XML сайтов" не ставил. я проверил.
Константин Кирилюк
2Сергей Викторович: Не знаю, у меня даже в новой метрике эта однопиксельная картинка есть:

[img]//lh6.googleusercontent.com/_W8hebv9r7lyEll6h6dTxUmJZgNASAHnt8fRkr-66w=w800-h414-no[/img]
Отправить комментарий