Тег viewport: как настроить область просмотра в адаптивном дизайне

В статье:

  1. Экран и область просмотра в адаптивном дизайне

  2. Как работает мета-тег viewport

  3. Как и где указывать тег «viewport»

Экран и область просмотра в адаптивном дизайне

Пользователи заходят в интернет с разных устройств: компьютеров, ноутбуков, планшетов, смартфонов. У разных моделей может быть разное разрешение экрана, и если сайт некорректно отображается, часть пользователей закроет ресурс.

Для мобильного просмотра веб-мастеры в зависимости от потребностей бизнеса выбирают способ отображения сайта: разрабатывают отдельную мобильную версию, делают адаптивную верстку или динамическую — RESS (Responsive Design + Server Side). Для корректного отображения проекта на разных моделях планшетов и десктопов также нужен адаптив под разные разрешения.

Размер, разрешение экрана, плотность пикселей у разных устройств отличаются. Выделяют такие показатели:

  • диагональ экрана — размер дисплея в дюймах, измеряется от угла к углу;
  • размер экрана в точках — количество точек, их устройство использует для координат;
  • полное число пикселей (Rendered Pixels), которое визуализирует устройство. Значение считают с помощью множителя 1x, 2x, 3x, который устройство использует к размеру экрана в точках;
  • физические пиксели — фактическое разрешение экрана в пикселях; в экранах Retina, которые используют современные модели техники Apple, более высокое разрешение изображения на экране с меньшим количеством физических пикселей.

К примеру, возьмем смартфоны: у IPhone 3 с диагональю 3.5″ физическое разрешение экрана 320x480px, а плотность пикселей 163ppi. Разрешение соответствует диагонали, плотность пикселей невысокая. Если отобразить на нем текст, набранный размером 16px, он будет читаться так же хорошо, как и на экране компьютера. Модель IPhone 6 Plus с дисплеем Retina использует более высокое разрешение изображения на экране с меньшим количеством физических пикселей, полноэкранное изображение — 1242x2208px.

мобилопригодность сайта под модели IPhoneЭкран IPhone 6 Plus. Источник: kylejlarson.com

Из-за высокой плотности пикселей тот же текст, набранный в размере 16px, будет выглядеть на экране IPhone 6 Plus значительно мельче, чем на дисплее IPhone 3 . Чтобы сделать страницу с таким текстом пригодной для чтения, нужно отмасштабировать ее, увеличив в три раза.

Отношение пикселей зависит от плотности дисплея:

  • плотность менее 200 DPI (точек на дюйм) — соотношение 1.0;
  • от 200 до 300 DPI — 1.5.
  • более 300 DPI — соотношение представляет собой плотность/150 точек на дюйм.

В основе адаптивного дизайна лежат принципы подвижности и пропорциональности. Веб-мастеры создают макеты в высоком разрешении, располагая контент по модульной сетке из 12, 16 или 24 колонок
Bootstrap, и используют адаптивную верстку. Сервер отправляет одинаковый HTML-код на все устройства, но размеры элементов CSS масштабирует под устройства с помощью CSS-правила @viewport и мета-тега «viewport» в HTML. Это позволяет добиться четких изображений и читабельного текста.

Адаптивность есть во всех современных требованиях к PSD-макетам сайта. Пример
требований by andrey-hohlov на GitHub.

Как работает мета-тег viewport

Viewport — это видимая пользователю область страницы сайта без прокруток.

область просмотра сайта на десктопеВидимая страница сайта на десктопе

Моблопригодность сайтаВидимая страница сайта на смартфоне


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

Мета-тег «viewport» и CSS правило @viewport

Правило @viewport разработала компания Windows, сейчас оно поддерживается несколькими браузерами, но ожидается, что станет будущим стандартом для веб.

Разработчики контролируют масштаб отображения страницы сайта в окне устройства с помощью мета-тега «viewport» или правила
@viewport, которое управляет масштабированием с помощью CSS. Тег используют для адаптивных сайтов и для ресурсов с фиксированной или гибкой разметкой в том числе.

мета-тег viewportСлева страница без мета-тега viewport, справа с мета-тегом. Источник: developers.google.com

Справа мобилопригодная страница с тегом «viewport», в котором указана область просмотра страницы — она равна ширине экрана. Пользователь не масштабирует страницу и видит контент в удобном для чтения размере, блоки контента смещены так, что горизонтальной прокрутки нет.

Как и где указывать тег «viewport»

Страницы сайта должны корректно отображаться на разных дисплеях, для этого в HTML-страницу нужно включить мета-тег «viewport», а в CSS добавить правило @viewport.

Мета-тег «viewport» размещают в блок в таком виде:

<meta name=»viewport» content=»width=device-width, initial-scale=1″>

Особенности поддержки правила @viewport браузерами есть в
спецификации. Пока оно мало распространено, но скорее всего станет стандартом в CSS.

@viewport { width: device-width;}

Сейчас к правилу @viewport рекомендуют добавлять вендорный префикс:

@-ms-viewport {
width: device-width;
}
@-o-viewport {
width: device-width;
}
@viewport {
width: device-width;
}

Как настроить размер окна просмотра

Атрибут «width»

Атрибут «width» адаптирует ширину окна просмотра к экрану устройства. Указывают либо целое неотрицательное значение от 200px до 10 000px, либо константу «device-width» — она означает, что устройство масштабирует ширину страницы под размер экрана.

Веб-мастер может установить конкретное число пикселей в этом атрибуте, к примеру, width=600. Так делают, если макет должен быть не менее 600px шириной. Если экран окажется больше, браузер не будет увеличивать масштаб, а станет расширять область просмотра, чтобы она растянулась до размеров экрана.

<meta name=»viewport» content=»width=600, initial-scale=1″>

К примеру, на большинстве смартфонов действует стандарт «device-width» в 320px. Если пользователь смотрит сайт с мобильного устройства дисплеем 640px, изображение шириной 320px займет весь экран, используя удвоенное количество пикселей. Поскольку экран использует удвоенную плотность пикселей по сравнению со стандартным монитором, текст на маленьком экране будет казаться четче.

Какие значения масштаба использовать

Размеры видимой области страницы в окне устройства определяют по размеру экрана и плотности пикселей. Если плотность пикселей на устройстве не совпадает с плотностью изображения — фактическим количеством пикселей, то устройство должно масштабировать значения.

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

Веб-мастеру будет сложно работать с сайтом, если он задался целью определить контрольные точки на макете для разных классов и моделей устройств.
Список размеров экранов мобильных устройств и планшетов насчитывает 286 элементов, вместо этого достаточно вписать относительные величины в процентах. Если для блока верхнего уровня установить параметр «width=100%», на любом устройстве он поместится в экран и не будет слишком маленьким или слишком большим. 

div.fullWidth {
width: 100%;
}

Как использовать медиазапросы CSS

Для улучшения отображения на разных экранах в правило @viewport добавляют медиазапросы — фильтры, которые позволяют изменять стили CSS на основании характеристик устройства: ориентации, параметров экрана, ориентации и типа устройства.

С помощью медиазапросов CSS веб-мастер может настроить отображение стилей в зависимости от размера экрана устройства. Для этого применяют код:

@media (query) {
/* CSS Rules used when query matches */
}

В адаптивном дизайне применяют функции:

  • «min-width» — применимо к браузеру, ширина которого больше, чем указано в запросе;
  • «max-width» — к браузеру, ширина которого меньше;
  • «min-height» — к браузеру, высота которого больше значения, указанного в запросе;
  • «max-height» — к браузеру, высота которого меньше.

Если устройство имеет диапазон разрешения от 640 до 1024px, указанное правило @viewport будет масштабировать окно до 640px:

@media screen and (max-width: 400px) {
@-ms-viewport { width: 320px; }

}

К примеру, установим значения:

При ширине браузера от 0 до 640px применяется max-640px.css.

При ширине браузера 500-600px применяются стили из @media.

При ширине браузера 640px и выше применяется min-640px.css.

Если в браузере ширина больше высоты — горизонтальная ориентация, применяется landscape.css.

Если в браузере высота больше ширины — вертикальная ориентация, применяется portrait.css.

Код для этих значений будет выглядеть так:

<link rel=»stylesheet» media=»(max-width: 640px)» href=»max-640px.css»>
<link rel=»stylesheet» media=»(min-width: 640px)» href=»min-640px.css»>
<link rel=»stylesheet» media=»(orientation: portrait)» href=»portrait.css»>
<link rel=»stylesheet» media=»(orientation: landscape)» href=»landscape.css»>
<style>
@media (min-width: 500px) and (max-width: 600px) {
h1 {
color: fuchsia;
}
.desc:after {
content:» In fact, it’s between 500px and 600px wide.»;
}
}
</style>

Как настроить отображение в зависимости от ориентации дисплея

Атрибут «initial-scale=1»

Некоторые браузеры при изменении ориентации с вертикальной на горизонтальную увеличивают масштаб. Атрибутом «initial-scale=1» указывают браузеру соотношение пикселей CSS и устройства независимо от ориентации дисплея, в соотношении один к одному. В ориентации по горизонтали страница будет выглядеть лучше. Атрибут может иметь значение от 0.1 до 10, 1.0 означает «не масштабировать».

Атрибуты «maximum-scale», «minimum-scale» и «user-scalable»

Кроме настройки «initial-scale» у разработчика есть возможность настроить атрибуты «maximum-scale», «minimum-scale» и «user-scalable». Они ограничивают масштабирование страницы пользователем или вовсе запрещают его.

«maximum-scale» и «minimum-scale» определяют максимальный и минимальный масштаб окна. Могут иметь значения от от 0.1 до 10, 1.0 означает «не масштабировать».

Атрибут «maximum-scale=1» при переключении ориентации оставит настройки масштаба неизменными:

<meta name=»viewport» content=»initial-scale=1, maximum-scale=1″>

«user-scalable» определяет, может ли пользователь изменять масштаб. Он имеет значение «no» или «yes», по умолчанию стоит «yes».

Аналоги для правила @viewport

У «initial-scale» в мета-теге есть аналоги для правила @viewport — это дескрипторы «zoom», «max-zoom» и «min-zoom», они работают также.

@viewport {
width: device-width;
zoom: 2;
}

Свойство «user-scalable» в HTML имеет эквивалент «user-zoom» в CSS:

@viewport {
width: device-width;
user-zoom: fixed;
}

Дескриптор «orientation»

Ориентацией документа в @viewport можно управлять с помощью дескриптора «orientation». У него есть три значения:

  • auto — ориентация на основе положения устройства;
  • landscape — горизонтальная ориентация;
  • portrait — вертикальная ориентация.

По умолчанию установлено значение auto.

Медиазапросы и «device-width»

Google в
руководстве для веб-мастеров предлагает комбинировать значения «device-width» с медиа-запросами и настраивать макет в зависимости от ориентации устройства:

@media screen and (min-width:480px) and (max-width:800px) {
/* Target landscape smartphones, portrait tablets, narrow desktops
*/
}
@media screen and (max-width:479px) {
/* Target portrait smartphones */
}

Этот код позволяет настроить изменение сайта в зависимости от горизонтальной или вертикальной ориентации страницы, не указывая конкретные размеры в пикселях:

@media all and (orientation: landscape) {
/* Target device in landscape mode */
}
@media all and (orientation: portrait) {
/* Target device in portrait mode */
}
видимая область экрана на десктопе и мобильномСайт Института культуры в горизонтальной и вертикальной ориентации, webmasters.googleblog.com

Атрибуты «height» и «device-height»

Если на сайте есть элементы, которые меняют свой размер в зависимости от высоты окна просмотра контента, в мета-теге применяют атрибут «height» — он определяет высоту Viewport. Указывают целое неотрицательное значение «height» от 223px до 10000px или константу «device-height».

Если шаблон неадаптивный

Не рекомендуют использовать «initial-scale=1» для неадаптивных шаблонов — с такой установкой страница будет отображаться в масштабе 100%, в неадаптивном дизайне пользователю придется устанавливать масштаб вручную или прокручивать.

Не используйте «user-scalable=no» или «initial-scale=1» вместе с «maximum-scale=1» на неадаптивных шаблонах — это отключит масштабирование страницы, а без него пользователь не сможет увидеть всю страницу сайта.

Если не использовать «viewport»

В теге или правиле «viewport» браузер находит инструкции для масштабирования страницы ресурса, а если его не указать, браузер покажет пользователю стандартный размер десктопной страницы, который обычно составляет 960+px, и попробует оптимизировать содержимое увеличением шрифтов и элементов. Он покажет контент, поместившийся на экране, а пользователю придется масштабировать страницу вручную или использовать горизонтальную прокрутку.

Такие страницы поисковики не будут считать адаптивными, а значит не дадут им высокие позиции в топе. Высокий процент отказов поисковики расценят как сигнал бесполезности сайта.
Мобилопригодность важна при ранжировании в Яндексе и Google. В 2016 году в Яндексе появился
алгоритм «Владивосток», в 2018 «Андромеда», а Google в 2018 году заявил, что мобильный индекс будет в приоритете и для мобильной, и для десктопной выдачи. На начало 2019 перевод в мобильный индекс еще не завершен до конца.

Поисковики распознают адаптивный дизайн сайта, если у робота будет доступ к ресурсам страницы — CSS, JavaScript и изображениям. Убедитесь, что доступ в файле robots.txt открыт.

Проверить мобилопригодность страницы

Протестировать, адаптирована ли страница для мобильного просмотра, можно с помощью
теста от Google. Он определит мобилопригодность и перечислит ошибки, которые нужно исправить.

Проверка неадаптивного сайта тестом на мобилопригодностьРезультат проверки неадаптивного сайта тестом от Google

Отображение на мобильных устройствах в числе прочих тестов покажет
«Анализ сайта» от PR-CY. Он оценит мобилопригодность по нескольким параметрам, покажет область просмотра на экране и даст советы по исправлению ошибок.

Проверка мобилопригодности сайта онлайнФрагмент результатов проверки сервисом «Анализ сайта»

Мета-тег «viewport» не входит в официальные стандарты, но общепризнан, его поддерживают большинство браузеров и используют многие сайты. Работа с этим тегом описана в том числе в
документации Apple и в документации Android для разработчиков.

Материалы и руководства для веб-мастеров

  • Требования к PSD-макетам сайта by andrey-hohlov на GitHub.
  • Правило @viewport в справочнике CSS
  • Спецификация @viewport
  • Мета-тег «viewport» в справочнике HTML
  • Руководство для веб-мастеров от Google
  • Список размеров экранов мобильных устройств и планшетов
  • Документация для разработчиков
    Apple и Android

Сайты, не адаптированные для устройств с разными экранами, теряют большую часть трафика. Адаптивным будет сайт, если его контент удобно просматривать с любого устройства — для этого разработчики размечают область просмотра с помощью мета-тега «viewport» в HTML, а в CSS иногда добавляют правило @viewport.

Источник

Как продвинуть сайт в Google News в этом году

Сотрудник Google озвучил главные рекомендации, которые помогут ранжироваться выше в новостном агрегаторе поисковика.

Итак, для лучшей видимости в Google News:

  • не забывайте указывать авторов контента и контакты издания;
  • обозначайте точную дату и время публикации, используя для этого соответствующую микроразметку;
  • пишите материалы с четкими и точными заголовками;
  • не нужно намеренно обновлять старые новостные материалы, чтобы добиться большего числа просмотров;

  • не стоит дублировать чужой контент у себя на сайте;
  • не публикуйте новые статьи, содержание которых во многом повторяет опубликованные ранее;
  • не участвуйте в сомнительных схемах, призванных манипулировать поисковой выдачей;
  • по возможности используйте AMP-страницы и структурированные данные;
  • перейдите на HTTPS-протокол;
  • изучите рекомендации в Справочном центре Google для издателей.

Не сказать, что Дэнни сказал что-то новое, но вспомнить еще раз о главных шагах к успеху в Google News лишним не будет. Впрочем, эти советы помогут любому сайту и в основных результатах поиска Google.

Проверить, есть ли ваш ресурс в новостном агрегаторе, можно с помощью нашего анализа сайтов.

Источник

Как ускорить загрузку: оптимизируем код верхней части страницы

В статье:

Как оптимизировать код верхней части страницы:

  1. Удалить код JavaScript и CSS из верхней части страницы
  2. Использовать асинхронную загрузку Javascript и CSS
  3. Настроить асинхронную загрузку с jQuery
  4. Ускорить получение первых байтов (TTFB)
  5. Объединить CSS в один файл, объединить JavaScript
  6. Использовать алгоритмы сжатия
  7. Минифицировать файлы CSS и JavaScript
  8. Использовать кэш браузера
  9. Загружать данные с помощью CDN

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

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

Узнать примерную скорость загрузки можно с помощью инструмента
PageSpeed Insights от Google. Он оценивает скорость сайта и выводит советы по улучшению показателя.

Проверка скорости загрузки сайта PageSpeed InsightsФрагменты проверки инструментом PageSpeed Insights

Для оценки Google определил девять правил, инструмент считает количество баллов по соответствиям.

Правила PageSpeed Insights:

  1. Не используйте перенаправления с целевой страницы
  2. Включите сжатие
  3. Сократите время ответа сервера
  4. Используйте кэширование в браузере
  5. Сократите HTML, CSS и JavaScript
  6. Оптимизируйте изображения
  7. Оптимизируйте загрузку CSS
  8. Расставьте приоритеты загрузки контента
  9. Удалите блокировку рендера JavaScript

Бесплатный инструмент «Проверка скорости сайта» от PR-CY.RU использует такие же правила для анализа скорости и учитывает показатель Google Core Vitals, который поисковик обещает ввести в 2021 году. 

Бесплатная проверка скорости загрузки сайтаФрагмент проверки

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

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

Как оптимизировать код верхней части страницы:

Ускорить загрузку части страницы, которая первой появляется при переходе на сайт, поможет оптимизация. Для этого можно как минимум удалить лишние символы и скрипты из верхней части кода, сжать код алгоритмами, настроить загрузку из кэша.

Удалить код JavaScript и CSS из верхней части страницы

В верхней части кода HTML-страницы используйте только контент, нужный для загрузки первого экрана, остальной перенесите вниз. Скрипты JS и CSS влияют на отклик страницы, но не нужны в той части, которая загружается первой. Они тормозят браузер, и получается, что пользователь не видит часть страницы, на которую они влияют, но уже ждет ее загрузку.

Исходный HTML-код страницы:

<link rel=»stylesheet» href=»<a>small.css< a>»=»»>

<div class=»black»>
Текст
</div>

</a>small.css<></a>small.css<>

Стили small.css:

yellow {background-color: white;}
.blue {color: black;}
.big { font-size: 8em; }
.bold { font-weight: bold; }

Встраиваем CSS: 

<style>
.black{color:black;}
</style>

<div class=»black»>
Текст
</div>

<link rel=»stylesheet» href=»small.css»>

Файл стилей small.css будет подгружаться после загрузки первой страницы.

Использовать асинхронную загрузку Javascript и CSS

Браузер загружает код HTML построчно, но загрузка множества файлов Javascript может тормозить весь процесс. Для некоторых пользователей с медленным интернетом тормозить могут и файлы стилей. Чтобы браузер не останавливался на загрузке этих файлов, а продолжал подгружать остальной код, настраивают асинхронную загрузку Javascript и CSS.

Асинхронная загрузка позволит браузеру продолжать загружать основной код HTML и другие нужные ресурсы независимо от загрузки сторонних элементов.

Настроить асинхронную загрузку Javascript

Если на сайте есть видео со сторонних сервисов или другие внешние элементы, браузеру придется ждать загрузки всех элементов Javascript. Недоступное видео или другие проблемы с контентом могут вообще заблокировать загрузку сайта. Чтобы этого не произошло, используют
Friendly iFrame или асинхронную загрузку.

Создайте пустой div блок в том месте, где нужно отобразить элемент:

<div id=»script_block» class=»script_block»></div>

Перейдите в конец страницы и вставьте скрипт для асинхронной загрузки перед :

<div id=»script_ad» class=»script_ad» style=»display:none;»>
файл или скрипт для загрузки</div>
<script type=»text/javascript»>
*переместить на реальную позицию отображения*
document.getElementById(‘script_block’).appendChild(document.getElementById(‘script_ad’));
*показать*
document.getElementById(‘script_ad’).style.display = ‘block’;
</script>

Скрипт работает во всех современных браузерах.

Настроить асинхронную загрузку CSS

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

Настроить асинхронную загрузку CSS можно несколькими способами, к примеру, через «rel=preload»:

<link type=»text/css» href=»style.css» rel=»preload» as=»style» onload=»this.rel=’stylesheet'»>
<noscript>
<link type=»text/css» href=»style.css» rel=»stylesheet» />
</noscript>

В некоторых версиях браузеров, к примеру, в Firefox 57, «preload» по умолчанию отключен, поэтому событие «onload» не сработает. Учитывайте это и догружайте данные скриптом:

if (navigator.userAgent.indexOf("Firefox")>=0) {
var elms = document.querySelectorAll('link[rel=preload][as=style]');
for (i=0; i<elms.length; i++) {
elms[i].rel="stylesheet";
}
}

Скрипт
cssrelpreload.js by loadCSS на GitHub включает поддержку rel=preload для файлов CSS файлов. Он сработает, если в браузере нет родной поддержки «preload».

Еще по теме:
Как оптимизировать CSS сайта для улучшения Core Web Vitals

Настроить асинхронную загрузку с jQuery

Для своей работы веб-мастера используют библиотеки скриптов. По данным
графика популярности библиотек в вакансиях, в 2017 году библиотека jQuery была на пике популярности. Ее использование выросло и в 2018, хоть в вакансиях стал чаще появляться React.

Популярность библиотек скриптов javascript в 2017 и 2018График популярности библиотек в вакансиях: слева 2017, справа 2018

Библиотека скриптов jQuery содержит набор готовых функций Javascript, которые помогают писать код.

Последняя версия библиотеки jQuery для локального подключения

Для работы подключите версию библиотеки, которая у вас поддерживается.

Настроить асинхронную загрузку Javascript с jQuery

Для настройки асинхронной загрузки Javascript с jQuery нужно добавить свойство «async»:

<script async=»» src=»example.js»></script>

Это отключит последовательную загрузку, поэтому добавьте событие «onload»:

<script>function init() {
$(‘a’).addClass(‘ajax’);
}</script>
<script src=»/jquery.js» async=»» onload=»init()»></script>

Функция «init» будет вызвана после загрузки jQuery.

Настроить асинхронную загрузку CSS с jQuery

jQuery подходит и для асинхронной загрузки CSS. Для того используйте код:

$(«head»).append(«<link rel=»stylesheet» type=»text/css» href=»/stylesheet.css»>»);

Он должен загружаться после остальных элементов страницы и jQuery. К примеру, использование с методом «ready»:

<script>
$(document).ready(function() {
$(«head»).append(«<link rel=’stylesheet’ type=’text/css’ href=’/stylesheet.css’ />»);
});
</script>

Ускорить получение первых байтов (TTFB)

TTFB (Time To First Byte) — это время, которое прошло с момента отправки запроса клиентом до получения им первого байта. Чем меньше показатель, тем быстрее браузер начинает загружать страницу.

Яндекс и Google не используют показатель TTFB в ранжировании, но если это время больше 200 мс, нужно заняться оптимизацией, чтобы пользователь не ждал начала загрузки.

Чем больше запросов выполняет браузер, тем дольше может быть загрузка. Проверить, сколько HTTP-запросов генерирует страница, можно на панели разработчика браузера. В Google Chrome и Mozilla Firefox для этого нужно вызвать на странице команду «Посмотреть код» (Ctrl + Shift + I), найти вкладку Network, перезагрузить страницу и отфильтровать по типу HTML (Doc). Появится список запросов со статусами ответов и временем загрузки.

Окно опции Посмотреть код на сайтеСписок запросов со статусами на главной странице Яндекс

Почитать по теме:
Как оптимизировать показатель LCP | Ускоряем загрузку контента для пользователей

Также данные о TTFB есть в Pagespeed и в Google Analytics: перейдите в «Поведение» — «Скорость загрузки сайта» — «Обзор», в блоке «Среднее время ответа сервера» увидите TTFB в секундах.

Если проходит слишком много времени до загрузки верхней части страницы, проверьте гипотезы:

  1. На загрузку не хватает ресурсов.

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

  2. Работа с базой данных слишком медленная.

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

  3. На сайте не включен акселератор (для PHP).

    Разработчики сайтов на PHP используют акселераторы кода для его оптимизации — это расширение, которое кэширует байт-код и увеличивает производительность интерпретатора. При загрузке страницы сервер часто обрабатывает одни и те же участки кода, а акселератор будет предварительно компилировать PHP, что уменьшит время получения первого байта. В версиях PHP 5.5 и выше он идет в комплекте, в файле «php.ini» нужно найти «opcache.enable» и
    включить акселератор. В версиях 5.2 и 5.3 он доступен в PECL, нужно установить его и включить также через файл «php.ini» .

Объединить CSS в один файл, объединить JavaScript

На каждый отдельный файл нужен отдельный HTTP запрос. Некоторым разработчикам удобнее хранить разные стили CSS или коды JavaScript в разных файлах, но если стилей много, браузеру придется делать много запросов, что тормозит загрузку. Для оптимизации кода рекомендуют объединять все стили CSS в один файл.

Исходный код:

<link rel=»stylesheet» href=»structure.css» media=»all»>
<link rel=»stylesheet» href=»banner.css» media=»all»>
<link rel=»stylesheet» href=»layout.css» media=»all»>
<link rel=»stylesheet» href=»component.css» media=»all»>
<link rel=»stylesheet» href=»plugin.css» media=»all»>

Объединяем CSS-файлы:

<link rel=»stylesheet» href=»main.css» media=»all»>

Файлы JavaScript тоже нужно объединять, чтобы уменьшить количество HTTP запросов при загрузке страницы. Способ объединения такой же, как в случае CSS-файлов.

Исходный код:

<script src=»navbar.js»></script>
<script src=»component.js»></script>
<script src=»page.js»></script>
<script src=»framework.js»></script>
<script src=»plugin.js»></script>

Объединяем файлы JavaScript:

<script src=»main.js»></script>

Использовать алгоритмы сжатия

Меньше объем файла — быстрее загрузка. Алгоритмы сжатия данных хоть и нагружают сервер для выполнения архивирования, но уменьшают объем данных. За счет этого браузер принимает более легкие файлы и справляется с ними быстрее.

Сейчас популярны алгоритмы gzip или brotli. Сервер сжимает данные перед отправкой тем способом, который браузер может декодировать, и отправляет ему архивы. Лучше использовать оба алгоритма: большинство браузеров поддерживаеет только gzip, но в ряде случаев сработает brotli, который тратит чуть больше ресурсов, но сжимает данные сильнее.

Можно найти плагины для CMS или включить сжатие вручную. Подробно о подключении алгоритмов сжатия для разных серверов в статье «Как уменьшить вес сайта и ускорить загрузку страниц:
использовать сжатие gzip или brotli».

Минифицировать файлы CSS и JavaScript

Данные делают легче не только с помощью алгоритмов сжатия. Еще CSS, Javascript и HTML можно минифицировать — сократить методом удаления лишних символов, которые не влияют на работу кода, но занимают место. Удаляют пробелы, комментарии, переносы строк и табуляцию, в файлах стилей сокращают названия цветов.

После минификации файл будет сложнее читать, но зато он будет меньше весить и быстрее загружаться. Обычно сокращенную версию сохраняют отдельно с расширением «.min».

Минификация CSS

Исходный код:

<style>
body { background-image: url(«foo.png»); }
/* This comment will be stripped */
#iddy, .anotherId {
border: solid 1px #cccccc;
padding: 1.2em;
float: left;
color:##ff0000;
}
</style>

Минифицируем CSS:

<style>body{background-image:url((«foo.png»}#iddy,#anotherId{border:solid 1px #ccc;padding:1.2em;float:left;color:red}</style>

Минифицировать файлы CSS и JavaScript

Коды JavaScript тоже можно сократить — удалить лишние символы и сократить переменные. Чтобы не делать это вручную, для минификации есть автоматические сервисы — загружаешь в него код и скачиваешь версию в сокращении.

Подробнее о сервисах и особенностях минификации в статье «Как уменьшить вес сайта и ускорить загрузку страниц:
использовать минификацию HTML, CSS и JS»

Использовать кэш браузера

Когда пользователь заходит на сайт в первый раз, его браузер загружает всю графику, все элементы JavaScript и CSS-файлы. Последующие загрузки страницы будут быстрее, если настроить кэширование в браузере пользователя. Тогда браузер сохранит файлы, и ему не придется загружать их с сервера повторно.

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

Для сервера Nginx в файле конфигурации настройте модуль Expires: перечислите форматы файлов для кэширования через с прямой слэш «|», укажите время хранения в секундах.

location ~* .(js|css|png|jpg|jpeg|gif)$ {
expires 86400s;
log_not_found off;
}

Если вы используете Apache, добавьте в файл .htaccess строки с указанием сроков хранения в кэше для форматов файлов:

## EXPIRES CACHING ##
<ifmodule mod_expires.c=»»>
ExpiresActive On
ExpiresByType image/gif «access plus 6 months»
ExpiresByType image/jpeg «access plus 6 months»
ExpiresByType image/png «access plus 6 months»
ExpiresByType text/css «access plus 1 year»
ExpiresByType text/javascript «access plus 6 months»
ExpiresByType application/javascript «access plus 6 months»
</ifmodule>
## EXPIRES CACHING ##

О других способах настройки кэширования есть в статье «Как
использовать кэш браузера для ускорения: кэширование для Nginx и Apache, метод Cache-Control и кэширование по времени».

Загружать данные с помощью CDN

Еще один способ сократить время загрузки данных — использовать популярные CDN. CDN (Content Delivery Network) — это сетевая структура серверов в разных географических точках, которые хранят контент и быстро отдают его клиенту. CDN нужны, чтобы сайт открывался с одинаково быстрой скоростью для пользователей из разных географических точек. Они сокращают время загрузки, ускоряют рендеринг, защищают от DDoS, скраперов и ботов.

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

Разработчики выбирают CDN в зависимости от потребностей бизнеса и бюджета. Hhostings.info собрали двадцать CDN с лучшими отзывами и
составили топ CDN 2019.

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

Источник

Как составить robots.txt самостоятельно

В статье:

  1. Как поисковики сканируют страницу

  2. Robots.txt для Яндекса и Google

  3. Как составить robots.txt правильно

  4. Инструменты для составления и проверки robots.txt

Как поисковики сканируют страницу

Роботы-краулеры Яндекса и Google посещают страницы сайта, оценивают содержимое, добавляют новые ресурсы и информацию о страницах в индексную базу поисковика. Боты посещают страницы регулярно, чтобы переносить в базу обновления контента, отмечать появление новых ссылок и их доступность.

Зачем нужно сканирование:

  1. Собрать данные для построения индекса — информацию о новых страницах и обновлениях на старых.
  2. Сравнить URL в индексе и в списке для сканирования.
  3. Убрать из очереди дублирующиеся URL, чтобы не скачивать их дважды.

Боты смотрят не все страницы сайта. Количество ограничено
краулинговым бюджетом, который складывается из количества URL, которое может просканировать бот-краулер. Бюджета на объемный сайт может не хватить. Есть риск, что краулинговый бюджет уйдет на сканирование неважных или «мусорных» страниц, а чтобы такого не произошло, веб-мастеры направляют краулеров с помощью файла robots.txt.

Боты переходят на сайт и находят в корневом каталоге файл robots.txt, анализируют доступ к страницам и переходят к карте сайта —
Sitemap, чтобы сократить время сканирования, не обращаясь к закрытым ссылкам. После изучения файла боты идут на главную страницу и оттуда переходят в глубину сайта.

Какие страницы краулер просканирует быстрее:

  1. Находятся ближе к главной.
    Чем меньше кликов с главной ведет до страницы, тем она важнее и тем вероятнее ее посетит краулер. Количество переходов от главной до текущей страницы называется Click Distance from Index (DFI).
  2. Имеют много ссылок.
    Если многие ссылаются на страницу, значит она полезная и имеет хорошую репутацию. Нормальным считается около 11-20 ссылок на страницу, перелинковка между своими материалами тоже считается.
  3. Быстро загружаются.
    Проверьте скорость загрузки
    инструментом, если она медленная — оптимизируйте код верхней части и уменьшите вес страницы.

Все посещения ботов-краулеров не фиксируют такие инструменты, как Google Analytics, но поведение ботов можно отследить в лог-файлах. Некоторые SEO-проблемы крупных сайтов можно решить с помощью
анализа лог-файлов который также поможет увидеть проблемы со ссылками и распределение краулингового бюджета.

Посмотреть на сайт глазами поискового бота

Robots.txt для Яндекса и Google

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

В robots.txt можно открыть или закрыть доступ ко всем файлам или отдельно прописать, какие файлы можно сканировать, а какие нет.

Требования к robots.txt:

  • файл называется «robots.txt«, название написано только строчными буквами, «Robots.TXT» и другие вариации не поддерживаются;
  • располагается только в корневом каталоге — https://site.com/robots.txt, в подкаталоге быть не может;
  • на сайте в единственном экземпляре;
  • имеет формат .txt;
  • весит до 32 КБ;
  • в ответ на запрос отдает HTTP-код со статусом 200 ОК;
  • каждый префикс URL на отдельной строке;
  • содержит только латиницу.

Если домен на кириллице, для robots.txt переведите все кириллические ссылки в Punycode с помощью любого Punycode-конвертера: «сайт.рф» — «xn--80aswg.xn--p1ai».

Robots.txt действует для HTTP, HTTPS и FTP, имеет кодировку UTF-8 или ASCII и направлен только в отношении хоста, протокола и номера порта, где находится.

Его можно добавлять к адресам с субдоменами —
http://web.site.com/robots.txt или нестандартными портами — http://site.com:8181/robots.txt. Если у сайта несколько поддоменов, поместите файл в корневой каталог каждого из них.

Как исключить страницы из индексации с помощью robots.txt

В файле robots.txt можно запретить ботам индексацию некоторого контента.

Яндекс поддерживает
стандарт исключений для роботов (Robots Exclusion Protocol). Веб-мастер может скрыть содержимое от индексирования ботами Яндекса, указав директиву «disallow». Тогда при очередном посещении сайта робот загрузит файл robots.txt, увидит запрет и проигнорирует страницу. Другой вариант убрать страницу из индекса — прописать в HTML-коде мета-тег «noindex» или «none».

Google предупреждает, что robots.txt не предусмотрен для блокировки показа страниц в результатах выдачи. Он позволяет запретить индексирование только некоторых типов контента: медиафайлов, неинформативных изображений, скриптов или стилей. Исключить страницу из выдачи Google можно с помощью пароля на сервере или элементов HTML — «noindex» или атрибута «rel» со значением «nofollow».

Если на этом или другом сайте есть ссылка на страницу, то она может оказаться в индексе, даже если к ней закрыт доступ в файле robots.txt.

Закройте доступ к странице паролем или «nofollow» , если не хотите, чтобы она попала в выдачу Google. Если этого не сделать, ссылка попадет в результаты но будет выглядеть так:

Доступная для пользователей ссылка

Такой вид ссылки означает, что страница доступна пользователям, но бот не может составить описание, потому что доступ к ней заблокирован в robots.txt.

Содержимое файла robots.txt — это указания, а не команды. Большинство поисковых ботов, включая Googlebot, воспринимают файл, но некоторые системы могут его проигнорировать.

Если нет доступа к robots.txt

Если вы не имеете доступа к robots.txt и не знаете, доступна ли страница в Google или Яндекс, введите ее URL в строку поиска.

На некоторых сторонних платформах управлять файлом robots.txt нельзя. К примеру, сервис Wix автоматически создает robots.txt для каждого проекта на платформе. Вы сможете посмотреть файл, если добавите в конец домена «/robots.txt».

В файле будут элементы, которые относятся к структуре сайтов на этой платформе, к примеру «noflashhtml» и «backhtml». Они не индексируются и никак не влияют на SEO.

Если нужно удалить из выдачи какие-то из страниц ресурса на Wix, используйте «noindex».

Как составить robots.txt правильно

Файл можно составить в любом текстовом редакторе и сохранить в формате txt. В нем нужно прописать инструкцию для роботов: указание, каким роботам реагировать, и разрешение или запрет на сканирование файлов.

Инструкции отделяют друг от друга переносом строки.

Символы robots.txt

«*» — означает любую последовательность символов в файле.

«$» — ограничивает действия «*», представляет конец строки.

«/» — показывает, что закрывают для сканирования.

«/catalog/» — закрывают раздел каталога;

«/catalog» — закрывают все ссылки, которые начинаются с «/catalog».

«#» — используют для комментариев, боты игнорируют текст с этим символом.

User-agent: *
Disallow: /catalog/
#запрещаем сканировать каталог

Директивы robots.txt

Директивы, которые распознают все краулеры:

User-agent

На первой строчке прописывают правило User-agent — указание того, какой робот должен реагировать на рекомендации. Если запрещающего правила нет, считается, что доступ к файлам открыт.

Для разного типа контента поисковики используют разных ботов:

  • Google: основной поисковый бот называется Googlebot, есть Googlebot News для новостей, отдельно Googlebot Images, Googlebot Video и другие;
  • Яндекс: основной бот называется YandexBot, есть YandexDirect для РСЯ, YandexImages, YandexCalendar, YandexNews, YandexMedia для мультимедиа, YandexMarket для Яндекс.Маркета и другие.

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

User-agent: * — правило для всех поисковых роботов;

User-agent: Googlebot — только для основного поискового бота Google;

User-agent: YandexBot — только для основного бота Яндекса;

User-agent: Yandex — для всех ботов Яндекса. Если любой из ботов Яндекса обнаружит эту строку, то другие правила User-agent: * учитывать не будет.

Sitemap

Указывает ссылку на
карту сайта — файл со структурой сайта, в котором перечислены страницы для индексации:

User-agent: *
Sitemap: http://site.com/sitemap.xml

Некоторые веб-мастеры не делают карты сайтов, это не обязательное требование, но лучше составить Sitemap — этот файл краулеры воспринимают как структуру страниц, которые не можно, а нужно индексировать.

Disallow

Правило показывает, какую информацию ботам сканировать не нужно.

Если вы еще работаете над сайтом и не хотите, чтобы он появился в незавершенном виде, можно закрыть от сканирования весь сайт:

User-agent: *
Disallow: /

После окончания работы над сайтом не забудьте снять блокировку.

Разрешить всем ботам сканировать весь сайт:

User-agent: *
Disallow:

Для этой цели можно оставить robots.txt пустым.

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

User-agent: BadBot
Disallow: /

Чтобы разрешить одному боту сканировать сайт, нужно прописать разрешение для одного и запрет для остальных:

User-agent: Googlebot
Disallow:
User-agent: *
Disallow: /

Запретить ботам сканировать страницу:

User-agent: *
Disallow: /page.html

Запретить сканировать конкретную папку с файлами:

User-agent: *
Disallow: /name/

Запретить сканировать все файлы, которые заканчиваются на «.pdf»:

User-agent: *
Disallow: /*.pdf$

Запретить сканировать раздел
http://site.com/about/:

User-agent: *
Disallow: /about/

Запись формата «Disallow: /about» без закрывающего «/» запретит доступ и к разделу
http://site.com/about/, к файлу http://site.com/about.php и к другим ссылкам, которые начинаются с «/about».

Если нужно запретить доступ к нескольким разделам или папкам, для каждого нужна отдельная строка с Disallow:

User-agent: *
Disallow: /about
Disallow: /info
Disallow: /album1

Allow

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

Разрешено сканировать все, что начинается с «/catalog», а все остальное запрещено:

User-agent: *
Allow: /catalog
Disallow: /

Сканировать файл «photo.html» разрешено, а всю остальную информацию в каталоге /album1/ запрещено:

User-agent: *
Allow: /album1/photo.html
Disallow: /album1/

Заблокировать доступ к каталогам «site.com/catalog1/» и «site.com/catalog2/» но разрешить к «catalog2/subcatalog1/»:

User-agent: *
Disallow: /catalog1/
Disallow: /catalog2/
Allow: /catalog2/subcatalog1/

Бывает, что для страницы оказываются справедливыми несколько правил. Тогда робот будет отсортирует список от меньшего к большему по длине префикса URL и будет следовать последнему правилу в списке.

Директивы, которые распознают боты Яндекса:

Clean-param

Некоторые страницы дублируются с разными GET-параметрами или UTM-метками, которые не влияют на содержимое. К примеру, если в каталоге товаров использовали сортировку или разные id.

Чтобы отследить, с какого ресурса делали запрос страницы с книгой book_id=123, используют ref:

«www.site. com/some_dir/get_book.pl?ref=site_1& book_id=123»

«www.site. com/some_dir/get_book.pl?ref=site_2& book_id=123»

«www.site. com/some_dir/get_book.pl?ref=site_3& book_id=123»

Страница с книгой одна и та же, содержимое не меняется. Чтобы бот не сканировал все варианты таких страниц с разными параметрами, используют правило Clean-param:

User-agent: Yandex
Disallow:
Clean-param: ref/some_dir/get_book.pl

Робот Яндекса сведет все адреса страницы к одному виду:

«www.example. com/some_dir/get_book.pl? book_id=123»

Для адресов вида:

«www.example2. com/index.php? page=1&sid=2564126ebdec301c607e5df»

«www.example2. com/index.php? page=1&sid=974017dcd170d6c4a5d76ae»

robots.txt будет содержать:

User-agent: Yandex
Disallow:
Clean-param: sid/index.php

Для адресов вида

«www.example1. com/forum/showthread.php? s=681498b9648949605&t=8243»

«www.example1. com/forum/showthread.php? s=1e71c4427317a117a&t=8243»

robots.txt будет содержать:

User-agent: Yandex
Disallow:
Clean-param: s/forum/showthread.php

Если переходных параметров несколько:

«www.example1.com/forum_old/showthread.php?s=681498605&t=8243&ref=1311»

«www.example1.com/forum_new/showthread.php?s=1e71c417a&t=8243&ref=9896»

robots.txt будет содержать:

User-agent: Yandex
Disallow:
Clean-param: s&ref/forum*/showthread.php

Host

Правило показывает, какое зеркало учитывать при индексации. URL нужно писать без «http://» и без закрывающего слэша «/».

User-agent: Yandex
Disallow: /about
Host: www.site.com

Сейчас эту директиву уже
не используют, если в ваших robots.txt она есть, можно удалять. Вместо нее нужно на всех не главных зеркалах сайта поставить 301 редирект.

Crawl-delay

Раньше частая загрузка страниц нагружала сервер, поэтому для ботов устанавливали Crawl-delay — время ожидания робота в секундах между загрузками. Эту директиву можно не использовать, мощным серверам она не требуется.

Время ожидания — 4 секунды:

User-agent: *
Allow: /album1
Disallow: /
Crawl-delay: 4

Только латиница

Напомним, что все кириллические ссылки нужно перевести в Punycode с помощью любого конвертера.

Неправильно:

User-agent: Yandex
Disallow: /каталог

Правильно:

User-agent: Yandex
Disallow: /xn--/-8sbam6aiv3a

Пример robots.txt

Запись означает, что правило справедливо для всех роботов: запрещено сканировать ссылки из корзины, из встроенного поиска и админки, карта сайта находится по ссылке
http://site.com/sitemap, ref не меняет содержание страницы get_book:

User-agent: *
Disallow: /bin/
Disallow: /search/
Disallow: /admin/
Sitemap: http://site.com/sitemap
Clean-param: ref/some_dir/get_book.pl

Инструменты для составления и проверки robots.txt

Составить robots.txt бесплатно поможет
инструмент для генерации robots.txt от PR-CY, он позволит закрыть или открыть весь сайт для ботов, указать путь к карте сайта, настроить ограничение на посещение страниц, закрыть доступ некоторым роботам и установить задержку:

Инструмент для создания robots.txtГрафы инструмента для заполнения

Для
проверки файла robots.txt на ошибки у поисковиков есть собственные инструменты:

Инструмент проверки файла robots.txt от Google позволит проверить, как бот видит конкретный URL. В поле нужно ввести проверяемый URL, а инструмент покажет, доступна ли ссылка.

Инструмент проверки от Яндекса покажет, правильно ли заполнен файл. Нужно указать сайт, для которого создан robots.txt, и перенести его содержимое в поле.

Файл robots.txt не подходит для блокировки доступа к приватным файлам, но направляет краулеров к карте сайта и дает рекомендации для быстрого сканирования важных материалов ресурса.

Источник

Эффективная внутренняя перелинковка: как работать с внутренними ссылками на сайте

В статье:

Для чего нужна внутренняя перелинковка

Как сделать перелинковку на сайте:

  1. Структура сайта

  2. Сквозные ссылки

  3. «Хлебные крошки»

  4. Блок с популярными или похожими материалами

  5. Контекстные ссылки

  6. Анкоры для ссылок



Перелинковка сайта
— это связывание страниц ссылками. Она может быть внутренней, если друг на друга ссылаются страницы одного домена, или внешней, если участвуют ссылки разных сайтов.

Страницы сайта имеют ссылочный вес — чем больше ссылок ведут на страницу, тем она важнее и тем выше PageRank. Дело не только в количестве ссылок, но и в их качестве: авторитетные страницы передают больший вес.

Упрощенно о том, как устроен PR:

схема передачи ссылочного веса на страницыСхема передачи PR, ahrefs.com

Google скрыл значения счетчика PageRank у сайтов, но не отменил этот показатель — PR остался как часть алгоритма ранжирования.

Почитать по теме:
Google PageRank не мертв: зачем и как работать со ссылками

Этот материал о том, как правильно управлять ссылочным весом на одном сайте с помощью внутренней перелинковки.

О внешней перелинковке говорили в других статьях:
11 способов бесплатно получить обратные ссылки
10 экспериментов с продвижением сайтами-сателлитами (PBN)
Внешние ссылки: инструкция к применению
Внешние ссылки: инструкция к применению. Часть 2

Для чего нужна внутренняя перелинковка

Зачем нужна перелинковка внутренних страниц:

  1. Увеличивает авторитетность страницы.
    Авторитетность зависит от количества страниц, которые ссылаются на исходную.
  2. Передает страницам вес.
    Веб-мастеры с помощью ссылок с авторитетных страниц передают вес важным для продажи страницам, генерирующим трафик.
  3. Повышает релевантность страниц запросу.
    Роботы распознают, какому запросу отвечает страница, на которую ведет ссылка. Из похожих страниц при прочих равных выше будет та, на которую ссылаются.
  4. Ускоряет индексацию новых страниц.
    Поисковые
    боты сначала сканируют важные страницы: главную, страницы второго уровня вложенности и так далее. Ссылка на новый пост с важной страницы даст боту сигнал о том, что ее тоже нужно просканировать.
  5. Повышает юзабилити.
    Пользователи смогут прочитать дополнительную информацию по теме, если перейдут по ссылкам со страницы.
  6. Дополнительно защищает контент.
    При автоматическом копировании материалов из RSS-лент все внутренние гиперссылки остаются в тексте, читатели все равно смогут перейти на ваш сайт, и
    найти копипастеров будет проще.

«Ninja Outreach» провели кампанию по внутренней перелинковке. В результате за несколько месяцев органический трафик вырос на 40%. В это время никаких иных действий по продвижению не проводилось, поэтому нельзя списать эффект на что-то другое.

график дизамики органического трафикаГрафик изменений органического трафика

Компания рассортировала страницы по трем уровням:

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

В рамках кампании внутренней перелинковки топовые страницы отображались на всех страницах, включая категории. Они ссылались на страницы второго уровня, а те на страницы третьего уровня. В итоге перелинкованы были все страницы сайта, ссылочный вес авторитетных страниц грамотно распределялся, за счет этого количество трафика увеличилось.

Один участник команды протестировал эту же кампанию на сайте кулинарного блога AvocadoPesto, в результате трафик статей вырос на 20%.

Внутренней перелинковкой можно улучшить позиции страниц и увеличить трафик, но у нее есть свои правила.

Как сделать перелинковку на сайте


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

1. Структура сайта

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

Какую структуру сайта выбрать

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

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

Польский специалист Макс Сайрек три месяца проводил
эксперимент со ссылками: он изменял внутренние ссылки и отслеживал сканирование сайта краулером GoogleBot.

В структуре многих интернет-магазинов есть несколько больших категорий товаров с множеством подкатегорий. Причем в меню все подкатегории товаров связаны с главной страницей. На схеме структура выглядит так:

структура сайтаНеэффективная структура интернет-магазина по мнению Макса Сайрека

Такая структура неэффективна: GoogleBot видит все ссылки на каждой странице с меню, поэтому все страницы имеют одинаковое количество ссылок и одинаковое значение. В примере на схеме
ссылочный вес главной страницы распределяется равномерно на 24 категории с подкатегориями вместе, поэтому каждая страница получает около четырех процентов от веса главной.


Для перелинковки эта архитектура сайта неудобна.

Допустим, веб-мастер написал статью для своего блога и поставил в ней ссылку на одну из подкатегорий. Эксперимент Макса показал, что из нескольких ссылок на одну и ту же страницу Google учитывает только первую, остальные игнорирует. Если ссылка на подкатегорию уже будет в меню сайта, как на схеме, то GoogleBot проигнорирует вторую ссылку из статьи.

Структуру следовало бы построить по-другому:
разделить ссылочный вес главной страницы на четыре подкатегории, тогда каждая из них получила бы по 25% значимости и распределяла бы ее дальше.

структура сайтаПравильная структура интернет-магазина по мнению Макса Сайрека

Скрытые ссылки в пунктах меню, которые появляются только при наведении, и скрытые табы с внутренними ссылками бот воспринимает как обычные, акцептор можно найти по уникальному анкору. Не получится спрятать
ссылки от краулера, поместив их в скрытое меню.

У многих магазинов есть фильтры для удобного поиска товаров. Ссылки, которые образуют страницы фильтров, краулер тоже обрабатывает. Рекомендуют закрывать от сканирования ссылки с динамическими параметрами, чтобы бот ими не занимался.

Эффективной стратегией считают распределение ссылок по
SILO-структуре архитектуры сайта. SILO подразумевает распределение страниц сайта по иерархии: контент сгруппирован по темам и структурирован от общих категорий до подкатегорий и отдельных товаров.

Подробнее про SILO-структуру контента и другие советы по эффективной навигации на сайте

Такое распределение ссылочного веса в рунете называют
карусельной перелинковкой — вес переносят сверху вниз с главной страницы на крупные разделы, оттуда на категории, подкатегории и товары или статьи.

Лучше всего структуру проиллюстрирует схема:

SILO-структура контентаSILO-структура контента на сайте

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

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

С помощью ссылок с
авторитетных страниц можно придать вес важным конверсионным страницам.

Например, можно добавить блок «с этим покупают», блок ссылок-тегов, ссылки на категорию производителя из карточки товара.

Подробнее про блоки для эффективной перелинковки интернет-магазина.

Какие ссылки не передают вес

Эксперимент показал, что ссылочный вес не передают ссылки через JavaScript — onclick=»window.location.href =’page4.html'», но краулеры их воспринимают и могут по ним переходить.

Такая же ситуация со ссылками через JavaScript-функцию — class=»js-link» data-url=»page9.html», причем страницу, на которую вела такая ссылка, краулер посещал чаще остальных в этой категории.

GoogleBot игнорировал ссылки через JavaScript-функцию с закодированными данными — class=»js-link» data-url=»cGFnZTEwLmh0bWw=», как и ссылки с динамическим параметром — page2.html?parameter=1.

Не сработала и ссылка с якорем — page2.html#testhash, она не передавала вес и по запросу анкора в индексе страница не появилась.

Сквозные ссылки — те, которые находятся на всех страницах сайта, как бы пронизывают ресурс насквозь. В их числе внешние и внутренние страницы в шапке, сайдбаре или футере сайта.

Шапка интернет-магазинаШапка сайта магазина roseluxe.ru

Это может быть навигация или ссылки на сторонние сайты. Они дают такую же пользу, как и внешняя или внутренняя перелинковка, но поскольку ссылка находится на каждой странице сайта, то и вес на акцептор будет переходить с каждой страницы.

SEO-специалист Михаил Шакин в своем
Telegram-канале писал, что в связи с алгоритмами поисковиков сквозные ссылки могут дать положительный эффект или навредить сайту.

Положительный эффект дают
ссылки с естественными текстами, в виде адреса сайта или названия компании — Студия «Морошка», moroshka.ru.

Сквозные ссылки с текстами из ключей, к примеру, «купить букет в Москве», ссылки на другие сайты в главной навигации ресурса поисковики могут воспринять как спам. Такие ссылки могут подходить под определение «ссылок из низкокачественных каталогов и служб закладок» или «одинаковых ссылок в нижней части страниц на разных сайтах». Снять негативный эффект поможет исправление текста на естественный или удаление ссылки.

Важно ли место расположения ссылки?

Представитель Google
Джон Мюллер заявил, что для поисковика не имеет значения, в каком месте страницы расположены внутренние ссылки. Их наличие и актуальность для пользователя важнее того, где они размещены на странице.

С другой стороны, специалисты
компании «Zyppy» считают, что ссылкам внизу страницы достается меньший вес, чем верхним. Это полезно учитывать, если помещать в шапку или футер сайта ссылки на все разделы проекта: информацию о компании, доставке, оплате, разделы каталогов, вход в личный кабинет и контакты.

Подвал интернет-магазинаФутер сайта магазина labirint.ru

Некоторые специалисты советуют не перегружать ссылками навигацию по сайту. Чем меньше ссылок, тем проще за ними следить и направлять краулеров Google и Яндекс на самые важные URL для сканирования.

Компания «Wayfair» сделали навигацию по сайту легче —
удалили 150 ссылок. В подвале сайта была 51 ссылка, они удалили те, которые были не нужны на каждой странице, и оставили только 20 важных для пользователей. В итоге пользователям стало проще ориентироваться в разделах сайта, они быстрее находят нужный раздел и приступают к покупкам.

Старый и новый варианты футера

Релевантность страниц, удовлетворение потребностей пользователей влияют на SEO лучше, чем сквозные ссылки на как можно большую часть страниц сайта. Лучше сосредоточиться на страницах, которые важны для целевых действий и отвечают на популярные вопросы пользователей.

3. «Хлебные крошки»

«Хлебные крошки» — элемент навигации сайта, который показывает путь от главной до страницы, на которой находится пользователь. Каждая надпись в элементе — ссылка на предыдущую категорию в архитектуре сайта внутри SILO-структуры контента.

хлебные крошки для навигации на сайте«Хлебные крошки» на сайте магазина lamoda.ru

Ссылки из «хлебных крошек» передают вес страницам, их индексируют поисковые системы. Кроме того, это элемент юзабилити — пользователю будет проще вернуться в общий каталог или предыдущий раздел с помощью быстрых ссылок из «крошек».

4. Блок с популярными или похожими материалами

Кольцевой метод перелинковки — создание системы ссылок, замкнутой в кольцо. Каждая страница ссылается на несколько предыдущих страниц и таким образом система замыкается. Часто используют для блога: выводят под материалом ссылки на статьи по схожей теме так, чтобы все статьи внутри этой темы имели ссылки. В качестве текста ссылки рекомендуем использовать не «Следующая статья» или «Предыдущий материал», а названия статей, содержащие ключи.

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

Вывод других материалов по теме на странице статьи

Блоки с похожими статьями устанавливают с помощью плагинов для CMS.

Контекстные ссылки внутри статьи в первую очередь должны дополнить материал и помочь пользователю лучше понять тему.

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

контекстная ссылка в текстеСсылка в тексте статьи

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

6. Анкоры для ссылок

Анкор ссылки находится в HTML между тегом < a > и < /a > — < a href= «https://ссылка.ру» >Текст ссылки< /a >

Текст ссылки будет анкором.

Анкоры могут быть:

  • прямыми, состоят из ключевой фразы, обычно высокочастотной — «купить диван»;
  • разбавленными, ключевыми словами с уточнениями, высоко- и низкочастотными — «посмотреть полотна Дали желтого периода»;
  • естественными — в виде домена, ссылки на картинку, не ключевого слова.

Джон Мюллер говорил о том, что Google считывает якорный текст внутренних ссылок, чтобы лучше понять контекст.

Анкоры вида «читайте тут» или «об этом здесь» замените на фразы с ключевыми словами, чтобы было понятно, что появится по ссылке — « рецепт сливочного соуса», «подробнее о заборах из штакетника». Бот распознает анкоры ссылок и определяет релевантность ссылки ключу из анкора.

К примеру, на вашем сайте есть статья о приготовлении соуса песто в домашних условиях, и на нее ведут есть несколько внутренних ссылок с анкорами «соус песто», «домашний соус песто», «приготовить соус песто». По этим якорям Google понимает, что эта страница релевантна запросам о приготовлении соуса и может заслуживать ранжирования по этим ключам.

Это не значит, что нужно как можно больше анкорных ссылок с ключом. Такая тактика приведет к тому, что передачу ссылочного веса будет сложно контролировать, ссылки будут некачественными.

Как показал эксперимент Макса Сайрека, если на главной слово встречается только в анкоре, а на внутренней вообще этого слова нет, ссылка с главной на внутреннюю по уникальному ключевому слову даст больший эффект внутренней странице.

Как проверить ссылки на сайте

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

анализ ссылок на главной и внутренних страницахФрагмент результатов анализа


Внутренняя перелинковка
— способ управлять ссылочным весом на сайте и направлять краулеров на важные страницы. Веб-мастерам проще всего работать с внутренними ссылками на своем ресурсе, потому что они полностью подконтрольны.

Источник

Почему Google советует отменять некачественные ссылки

Об этом рассказал
Джон Мюллер во время последней видеовстречи с веб-мастерами. Представителю Google задали вопрос (см. видео с отметки 14:03):

«Несколько лет назад одна компания заказала услуги продвижения у SEO-агентства. Сеошники для раскрутки сайта закупили большое количество гостевых постов с не самыми качественными ссылками. Стоит ли владельцу ресурса переживать об этих ссылках теперь и применять инструмент для их отклонения (Disavow tool)? Или не стоит, поскольку алгоритмы Google просто не учитывают такие линки?»



Ответ эксперта:

«Использовать инструмент отмены ссылок можно и нужно. Дело в том, что наши алгоритмы весьма осторожно относятся к сайтам, у которых много плохих внешних ссылок. Мы с подозрением относимся ко всем без исключения ссылкам на такие ресурсы. Следовательно, некачественные линки могут стать причиной нивелирования веса качественных. Вот почему чистка ссылок с помощью Disavow tool часто помогает сайтам ранжироваться выше. Хорошие ссылки становятся более действенными».

А вы используете инструмент для отклонения плохих внешних ссылок?

Источник

Adblock
detector