Вёрстка страницы сайта

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

Как создать структуру страницы с помощью блоков (блочная вёрстка)

1. Как разбить макет страницы на секции

Чтобы создать макет страницы, необходимо выделить основные разделы (секции) документа. Подробнее о секционных элементах вы можете прочитать в статье 1.11. HTML5 семантические элементы.

Стандартная веб-страница содержит следующие секции:

<body>
<header></header>
<div class="main"></div>
<footer></footer>
</body>
structure-main
Рис. 1. Основные секции страницы

Мы не будем использовать элемент <main>, так как он поддерживается не всеми браузерами.

Элементы <header>, <div> и <footer> — блочные, поэтому они будут занимать всю ширину их блока-контейнера — элемента <body>. Страница с такой разметкой будет хорошо смотреться на небольших экранах, но на устройствах с большим разрешением текст таких страниц будет неудобно читать. Поэтому необходимо добавить тег-контейнер для контента — содержимого каждой секции:

container-main
Рис. 2. Основные секции страницы с тегом-контейнером

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

.container {
  width: 100%;
  max-width: 1024px; /*максимальная ширина может иметь другое значение*/
  padding: 0 15px;
  margin: 0 auto;
}

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

2. Разметка шапки сайта и позиционирование её элементов

Приступим к разметке первой секции, так называемой шапки веб-страницы. Элемент <header> предназначен для группировки вводной информации и навигационных средств по странице/сайту. Добавим внутрь тега <header> логотип сайта и навигационные ссылки:

<header>
  <div class="container">
    <a href="/" class="logo">LOGO</a>
    <nav>
      <ul>
        <li><a href="">Главная</a></li>
        <li><a href="">О нас</a></li>
        <li><a href="">Контакты</a></li>
      </ul>
    </nav>
  </div>
</header>
container-header
Рис. 3. Шапка сайта с добавленными логотипом и ссылками

Разместим логотип слева, а ссылки навигации — с выравниванием по правому краю шапки (для наглядности я добавила элементам белую границу):

.logo {
  float: left;
}
nav {
  float: right;
}
nav ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
nav li {
  display: inline-block; /*один из способов разместить элементы в строку*/
}

Существует несколько способов разместить блочные элементы в строку. Все они приведены в уроке Горизонтальное меню для сайта.

header-collapse
Рис. 4. Эффект схлопывания блока-контейнера

Обратите внимание, что после того, как мы применили обтекание, шапка исчезла. Это произошло потому, что плавающие элементы (для которых задано свойство float) изымаются из нормального потока и родительский контейнер больше не видит их высоту, поэтому и элемент <header> и элемент внутри него с классом .container схлопнулись. Чтобы исправить эту ситуацию, воспользуемся очисткой потока для элемента с классом .container:

.container:after {
  content: "";
  display: table;
  clear: both;
}

Также добавим ему вертикальные отступы, отделяющие элементы внутри него от краёв шапки. В результате стили будут иметь следующие вид:

.container {
  width: 100%;
  max-width: 1024px;
  padding: 15px;
  margin: 0 auto;
}
header-clearfix
Рис. 5. Очистка потока

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

logo-header
Рис. 6. Логотип-картинка

В нашем примере высота логотипа равна 38px, поэтому чтобы выровнять ссылки меню по высоте по середине шапки, нужно задать для них соответствующую высоту строки:

nav a {
  text-decoration: none;
  line-height: 38px;
}
hyperlinks-header
Рис. 7. Выравнивание ссылок меню шапки

3. Создание сетки для основной части страницы

Основная часть страницы чаще всего представляет собой сетку из блоков разной ширины. Позиционирование таких блоков осуществляется также с помощью свойства float. Каждую строку блоков обернём дополнительным блоком с классом .row:

<div class="main">
  <div class="container">
    <div class="row">
      <div class="col-1-3"></div>
      <div class="col-2-3"></div>
    </div>
    <div class="row">
      <div class="col-1-2"></div>
      <div class="col-1-2"></div>
    </div>
    <div class="row">
      <div class="col-1-4"></div>
      <div class="col-1-4"></div>
      <div class="col-1-2"></div>
    </div>
  </div>
</div>
layout-main
Рис. 7. Сетка основной части страницы
.col-1-2 {
  width: 50%;
  float: left;
}
.col-1-3 {
  width: 33.3333333333%;
  float: left;
}
.col-1-4 {
  width: 25%;
  float: left;
}
.col-2-3 {
  width: 66.6666666667%;
  float: left;
}

Для элемента с классом .row также применим очистку потока:

.container:after, .row:after {
  content: "";
  display: table;
  clear: both;
}

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

.row {
  margin-bottom: 15px;
}

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

different-height
Рис. 8. Разная высота элементов сетки

Высоту блоков можно зафиксировать, указав её явно, например, .row div {height: 100px}. Но в этом случае нужно быть уверенным, что при добавлении адаптивности макету содержимое блоков не будет выходить за край блока.

Если необходимо задать фоновый цвет для блоков ряда, то это можно сделать следующим образом: для элемента с классом .row добавим новый класс, который позволит стилизовать только этот ряд (получится .row row-one), укажем для него фоновый цвет меньшего по высоте блока, а для высокого блока зададим его собственный цвет, то есть таким образом мы сделаем фоновую подложку.

<div class="row row-one">
  <div class="col-1-3">Lorem ipsum dolor sit amet.</div>
  <div class="col-2-3">Duis lobortis tempor tortor vel iaculis. Fusce volutpat commodo lacus, eget vestibulum lorem semper at.</div>
</div>
.row-one {
  background: lightblue;
}
.col-2-3 {
  width: 66.6666666667%;
  float: left;  
  background: seashell;
}
equal-height
Рис. 9. Фоновая подложка

Если основная секция страницы содержит только два блока, то дополнительный ряд-обёртку можно не добавлять:

<div class="main">
  <div class="container">
    <div class="col-2-3"></div>
    <div class="col-1-3"></div>
  </div>    
</div>

4. Разметка подвала страницы

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

<footer>
  <div class="container">
    <div class="col-1-3"></div>
    <div class="col-1-3"></div>
    <div class="col-1-3"></div>
  </div>
</footer>

Поделиться:

Приёмы создания плавной анимации

Современные интернет-пользователи хотят, чтобы открываемые страницы были интерактивными и работали плавно. Страницы должны не только быстро загружаться, но и хорошо работать: прокрутка должна быть быстрой, а анимация и взаимодействия – плавными. Для того чтобы писать производительные сайты и приложения, необходимо понимать, каким образом браузер обрабатывает HTML, JavaScript и CSS. А уже на основе этих знаний писать код так, чтобы он работал как можно эффективнее.

60 кадров в секунду и частота обновления экрана устройства

Большинство устройств обновляют свои экраны 60 раз в секунду. Если выполняется анимация или переход, либо если пользователь прокручивает страницы, браузеру нужно соответствовать частоте обновления экрана устройства и выдавать по одной новой картинке (или кадру) при каждом обновлении экрана.

Каждый из этих кадров может длиться чуть более 16 мс (1 секунда / 60 = 16,66 мс). В реальности же браузеру нужно выполнить ещё некоторые действия, потому вся работа должна занимать не более 10 мс. Если не уложиться в эти рамки, то частота кадров будет меньше, а контент начнёт дёргаться на экране. Часто эту ситуацию называют подвисанием, она отрицательно сказывается на восприятии пользователей.

Конвейер пикселей

frame-full
Рис. 1. Конвейер вывода пикселей на экран

Существует пять основных составляющих, являющихся ключевыми точками конвейера вывода пикселей на экран:

1) JavaScript. Обычно JavaScript используется для выполнения работы, результатом которой будут визуальные изменения, будь то функция jQuery .animate(), сортировка набора данных или добавление DOM-элементов на страницу. Однако вызывать визуальное изменение можно не только с помощью JavaScript — также часто используются анимация CSS, переходы и API-интерфейс веб-анимации.

2) Вычисление стилей (Style). В процессе вычисления стилей определяется, какие правила CSS к каким элементам применяются с учётом соответствующих селекторов, например: .headline или .nav > .nav__item. Поэтому, после того как правила определены, они применяются и вычисляются итоговые стили для каждого элемента.

3) Расчёт макета (Layout). Как только браузер будет знать, какие правила применяются к элементу, он может начать вычислять, сколько места он займёт и где он находится на экране. Модель макета для Интернета означает, что один элемент может влиять на другие, например, ширина элемента <body> обычно влияет на значения ширины дочерних элементов и так далее по всему дереву, поэтому этот процесс для браузера может быть довольно сложным.

4) Прорисовка (Paint). Прорисовка – это процесс заполнения пикселей. Он подразумевает вывод текста, цветов, изображений, границ и теней, по сути – всех визуальных частей элементов. Прорисовка обычно выполняется на нескольких поверхностях, которые называются слоями.

5) Компоновка (Composite). Поскольку части страницы потенциально были прорисованы на нескольких слоях, они должны быть выведены на экран в надлежащем порядке, с тем чтобы страница отображалась правильно. Это особенно важно для элементов, которые перекрывают другие элементы, поскольку ошибка может привести к тому, что один элемент будет неправильно показан поверх другого элемента.

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

1. JS / CSS > Стиль > Расчет макета > Прорисовка > Компоновка

frame-full
Рис. 2. Полный конвейер

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

2. JS / CSS > Стиль > Прорисовка > Компоновка

frame-no-layout
Рис. 3. Конвейер без обработки макета

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

3. JS / CSS > Стиль > Компоновка

frame-no-layout-paint
Рис. 4. Конвейер без обработки макета и прорисовки

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

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

Приём 1. Используйте свойства, вызывающие только компоновку, и контролируйте количество слоев

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

1.1. Для достижения анимационного эффекта изменяйте свойства transform и opacity

В самой производительной версии конвейера пикселей отсутствует перерасчёт макета и прорисовка. В ней выполняется только изменение компоновки. Чтобы добиться этого, необходимо изменять только те свойства, которые могут обрабатываться исключительно компоновщиком. На сегодня таких свойств только два — transform и opacity:

safe-properties
Рис. 5. Свойства transform и opacity

Помните, что для использования свойств transform и opacity элемент, для которого вы изменяете эти свойства, должен находиться на собственном слое. Чтобы создать слой, необходимо переместить на него элемент.

1.2. Перемещайте элементы, которые планируете анимировать, на отдельные слои с помощью will-change или translateZ

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

.moving-element {
will-change: transform;
}

Либо, для старых браузеров или тех, которые не поддерживают свойство will-change:

.moving-element {
transform: translateZ(0);
}

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

1.3. Управляйте слоями и избегайте слишком большого их количества

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

* {
will-change: transform;
transform: translateZ(0);
}

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

1.4. Используйте Chrome DevTools для анализа слоев в своем приложении

Чтобы понять, как работают слои в приложении и почему элемент размещен на отдельном слое, необходимо включить средство профилирования прорисовки на шкале времени Chrome DevTools:

paint-profiler-toggle
Рис. 6. Прорисовка в инструментах разработчика Chrome

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

frame-of-interest
Рис. 7. Кадры в инструментах разработчика Chrome

После щелчка кадра в подробных сведениях появится новый элемент – вкладка слоев.

layer-tab
Рис. 8. Слои в инструментах разработчика Chrome

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

layer-view
Рис. 9. Анализ слоёв в инструментах разработчика Chrome

С помощью этого представления можно определить имеющееся количество слоев. Если у вас уходит много времени на компоновку при выполнении таких критически важных с точки зрения производительности действий, как прокрутка или переходы (целевой показатель равен 4–5 мс), то с помощью приведенной здесь информации можно определить, сколько у вас слоев, почему они были созданы, а затем уже заняться контролем числа слоев в приложении.

Приём 2. Упрощайте и сокращайте области прорисовки

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

2.1. Перемещайте на отдельные слои элементы, которые двигаются или исчезают с экрана

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

layers
Рис. 10. Слои в компоновке

Преимущество этого подхода состоит в том, что элементы, которые регулярно заново прорисовываются или двигаются на экране с помощью свойств transform, можно обрабатывать, не затрагивая другие элементы. Это тоже самое, что и работа с графикой в Sketch, GIMP или Photoshop, где отдельные слои можно обрабатывать и располагать друг на друге для создания итогового изображения. Лучший способ создания новых слоев – это использование свойства CSS will-change. Такой способ работает в Chrome, Opera и Firefox. Для браузеров, которые не поддерживают это свойство, но будут работать быстрее, если создавать слои, таких как Safari и Mobile Safari, необходимо воспользоваться (немного неправильно) трёхмерным преобразованием для принудительного формирования нового слоя:

.moving-element {
will-change: transform;
transform: translateZ(0);
}

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

2.2. Сокращайте области прорисовки

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

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

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

2.3. Снижайте сложность прорисовки

При выполнении прорисовки одни операции требуют больше ресурсов, чем другие. Например, всё, что связано с событием blur (тень и т. п.), будет прорисовываться дольше чем, скажем, красный квадрат. Однако для CSS это не всегда очевидно: строки background: red; и box-shadow: 0, 4px, 4px, rgba(0,0,0,0.5); не выглядят так, что по производительности они значительно отличаются, но на самом деле это так и есть.

profiler-chart
Рис. 11. Профилировщик прорисовки

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

2.4. Для быстрого определения проблем с прорисовкой используйте Chrome DevTools

С помощью режима разработки Chrome можно быстро определить области, на которые распространяется прорисовка. Перейдите в режим разработки и нажмите на клавиатуре клавишу Escape. На открывшейся панели перейдите на вкладку прорисовки и установите флажок «Show paint rectangles» (Показать прямоугольники прорисовки):

show-paint-rectangles
Рис. 12. Отображение прорисовки

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

show-paint-rectangles-green
Рис. 13. Профилировщик прорисовки

Чтобы получить более подробные сведения, необходимо включить профилировщик прорисовки, установив флажок «Paint» вверху окна. Важно, чтобы этот флажок находился в установленном состоянии только при профилировании проблем с прорисовкой, поскольку, когда он установлен, потребляются дополнительные ресурсы и профилирование производительности даст искаженные результаты. Лучше всего использовать это средство, когда вам требуются сведения о том, какие объекты на странице были прорисованы.

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

paint-profiler-button
Рис. 14. Протокол прорисовки

При щелчке профилировщика прорисовки открывается представление, в котором указано, какие объекты подверглись прорисовке, сколько это заняло времени, а также отдельные вызовы прорисовки, которые потребовались:

paint-profiler
Рис. 15. Детализатор прорисовки

Этот профилировщик позволяет определить и область, и сложность прорисовки (фактически это время, которое занимает прорисовка). А это именно те аспекты, которые необходимо исправлять, если избежать прорисовки совершенно невозможно.

По материалам статей Paul Lewis 1, 2, 3.

Поделиться:

Ранжирование Google: 200 факторов

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

Мэтт Каттс — ведущий специалист Google в области интернет-спама и оптимизации.

SEOMoz — сообщество профессионалов в области seo и интернет-маркетинга с более чем десятилетней историей.

WHOIS (Who Is) — автоматизированная система, предоставляющая публичный доступ к информации о доменном имени и его администраторе.

TLD — сокращение от Top Level Domain, означает домен высшего уровня.

LSI — сокращенно от latent semantic indexing, переводится как латентно-семантическое индексирование. Индекс LSI отвечает за скрытую семантику, которая меняет значение в зависимости от контекста. Благодаря чему поисковые машины «понимают», что именно запрашивают люди и какие статьи им хотелось бы прочитать. А роботы, индексирующие сайты глобальной сети, показывают наиболее релевантные по смыслу в ТОПе.

PageRank — статический вес страницы, который отражает ее популярность на фоне остальных. Чем больше страниц с высоким PageRank (PR) ссылается на другую страницу, тем выше PR этой страницы.

Аарон Уолл — автор SEO-блога и книги SEO-Book.

Disavow Tool — сервис, позволяющий попросить Google не принимать во внимание определенные ссылки при оценке сайта.

Google Dance — разница выдачи результатов поиска в разных частях света. В течении каждого месяца проводится плановая переиндексация страниц, т.е. добавление новых ресурсов (посредством проверки доступного сетевого пространства google-ботами) и перерасчет PageRank уже проиндексированных страниц. Обновление индекса базы происходит постепенно, так как количество страниц определяется миллиардными показателями, а работа с ними занимает определенное время. В течении этого периода часть устаревшей информации еще имеется в наличии, а новая только появляется. Эта несостыковка объясняет довольно ощутимую разницу выдачи результатов.

Фильтр Sandbox — фильтр «Песочница» от Google для молодых сайтов. Создан для борьбы с сайтами-однодневками и черными методами раскрутки. «Симптомы песочницы»: молодой сайт не может пробиться в ТОП выдачи ПС, при этом, несмотря на низкие позиции, хорошо индексируется. Срок действия данного фильтра от нескольких месяцев до года. Под действие данного фильтра попадают не все сайты. Наиболее велики шансы попасть в «песочницу» у коммерческих сайтов и у сайтов, использующих различные методы для быстрого наращивания ссылочной массы.

Алгоритм Penguin наце­лен на борьбу с неесте­ствен­ными обрат­ными ссыл­ками.

Google Panda — алгоритм ранжирования поисковой системы Google, направленный на выдачу качественного, полнотекстового контента. На пару с Penguin образуют особый поисковых алгоритмов, когда на первый план выходит не нахождение в интернете релевантного контента, а «вычищение» всей более-менее релевантной поисковой выдачи от «переоптимизированных» сайтов.

Рэнд Фишкин (Rand Fishkin) — основатель компании SEOMoz.

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

Google’s Quality Rater Guidelines — рекомендации для веб-мастеров, соблюдая которые вы поможете Google найти и проиндексировать ваш сайт, а также определить его рейтинг.

IP класс C — диапазон частных ip-адресов 192.168.0.0 — 192.168.255.255.

200 факторов ранжирования GOOGLE

200-google-factors

Поделиться:

49 рабочих способов добычи трафика

У вас отличный сайт, крутое предложение, но мало посетителей и клиентов? Эти советы помогут вам решить вашу проблему.

  1. Используйте таргетинг и ретаргетинг Вконтакте.
  2. Закажите интервью эксперта.
  3. Используйте Twitter, публикуйте твиты со ссылкой на сайт.
  4. Воспользуйтесь инфографикой. Просматривайте статистику самых разнообразных тематик и создавайте инфографику на их основе. Обязательно включайте в инфографику ссылки на сайт.
  5. Пользуйтесь шпаргалками в формате PDF. Сделайте шпаргалки с какими-нибудь важными данными на любую тему, а в сам документ вставьте ссылку, ведущую на ваш сайт.
  6. Выберите подходящее доменное имя — это лицо сайта.
  7. Заливайте на YouTube интересные видеоролики. Создайте в YouTube собственный канал.
  8. Оптимизируйте названия видеороликов с помощью ключевых слов, проставляйте теги.
  9. Используйте Яндекс. Директ.
  10. Пользуйтесь разными видео-хостингами, а не только YouTube. Большинство просмотров вы получите именно здесь, но новую аудиторию вам дадут Видео@Mail.Ru, Vimeo.com и Яндекс.Видео.
  11. Создайте базу данных контактов электронной почты. Настраивайте автоматическую рассылку, например, с помощью сервиса MailChimp.
  12. Снимайте демо-ролики с анонсом сайта и добавляйте их в финале каждого из ваших видео, чтобы пользователи хотели посмотреть и ваш сайт.
  13. Пишите гостевые посты. Попробуйте достучаться до редакторов и блогеров. Гостевые посты со ссылками поднимают позиции сайта в поисковой выдаче.
  14. Маркируйте видео-ролики водяными знаками. Разместите на своём видео ссылки на ваш сайт в виде водяных знаков. В этом вам помогут программы для работы с видео, например, Camtasia.
  15. Пользуйтесь подписными страницами.
  16. Создайте собственную книгу. Раздавая такую книгу бесплатно в обмен на email-адрес, вы быстро пополните свою подписную базу.
  17. Выложите электронную книгу в каталоги.
  18. OnlyWire. Полезная вещица даёт возможность одновременной рассылки контента на 45 разных сайтов.
  19. Создавайте интересный, уникальный и новый контент.
  20. Организуйте курсы — самый простой повод для начала рассылки. Предложите подписчикам короткий курс и отправляйте напоминания со ссылками на свой сайт.
  21. Раздавайте бонусы и подарки для посетителей сайта.
  22. Пользуйтесь Feedburner.com. Открыть сайт для RSS — еще один способ увеличить трафик. Feedburner — это сервис от Google, собирающий с вашего сайта ленты и переправляющий их читателям.
  23. Не забудьте про ключевые слова. Постарайтесь узнать, откуда приходят ваши пользователи.
  24. Пишите на форумах. Благодаря участию в обсуждениях на форумах, вы легко можете привлечь на свой сайт новых посетителей. В вашей подписи приглашайте заходить на сайт.
  25. Создавайте вирусный эффект.
  26. Проводите конкурсы.
  27. Создавайте промо-материалы. На каждой странице пишите ссылку на ваш сайт.
  28. Используйте визитки на полную.
  29. Оформите страницу 404-й ошибки. Когда у вас появляется ошибка 404, предлагайте другие странички вместо этой.
  30. Ведите новостную рассылку.
  31. Воспользуйтесь Hubpages.com — сайтом с великолепной посещаемостью, где контент создают сами пользователи.
  32. Используйте PopUp-окна. Всплывающие окна нравятся далеко не всем, но со своей задачей справляются на «отлично».
  33. Воспользуйтесь Google AdWords.
  34. В подписи к email пропишите ссылку на свой сайт.
  35. Используйте все возможности Facebook.
  36. Создавайте на Facebook мероприятия.
  37. Бизнес-страница в Facebook не имеет ограничений на количество друзей. Обычная страница ограничена 5-тью тысячами.
  38. Тематические сообщества. Найдите в Facebook группу с тематикой, схожей с вашей. Будьте активны в этом сообществе, оставляйте комментарии, делайте всё, чтобы вас заметили.
  39. Поставьте кнопку «Мне нравится» из Facebook и установите её на сайте.
  40. Размещайте свои ссылки в Facebook.
  41. Разместите сайт в каталогах. Подберите подходящие обратные ссылки, размещая свой сайт в списках каталогов. Используйте только проверенные, «белые» каталоги.
  42. Записывайте интервью в формате видео
  43. Помните о мобильных приложениях.
  44. Создавайте пресс-релизы.
  45. Обменивайтесь ссылками с другими создателями сайтов.
  46. Поделитесь своей презентацией на сайта Slideshare.net.
  47. Закажите у блогеров обзор вашего сайта.
  48. Создайте противоречивый материал.
  49. Ищите партнеров. Найдите партнеров в собственной нише, которые могли бы продвигать ваши услуги и товары.

Поделиться: