Мысли о продвижении nft коллекции (4 способа + одна вирусная идея)

Кадры анимации

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

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

  • 1 задача: прокрутка к закрепленной панели, если пользователь ее закрепляет
  • n задач: вставить контейнеры со строками (в результате строки раскрашены в нужные цвета)
  • n задач: вставить ячейки, используя innertHTML
  • n задач: вставить ячейки, используя рендер ячеек
  • n задач: вставить обработчики mouseenter and mouseleave на каждую строку для добавления hover-эффекта
  • n задач: удалить старые строки

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

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

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

Учитывая все вышесказанное, такое количество задач потребует много кадров. Чтобы избежать этого, библиотека не выполняет каждую задачу в отдельном кадре, особенно в связи с тем, что само создание, удаление и планирование кадров требует ресурсов. Вместо этого библиотека запрашивает кадр и выполняет столько задач, сколько сможет, в течении 60 миллисекунд. Мы выбрали такой промежуток после тестов. Если библиотека не успеет выполнить все задачи, она запросит новый кадр и будет выполнять оставшиеся задачи в нем, пока они не кончатся.

Быстрые браузеры вроде Chrome могут сделать все необходимое в одном кадре без видимой визуальной задержки. Медленным браузерам вроде IE может потребоваться 10 и более кадров для выполнения всех задач. Внешне это выглядит, как поступенчатая отрисовка, что гораздо лучше блокирования UI и отрисовки всего в один момент.

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

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

Выделенные описания в Google

Сразу в 2014-м появились разные виды выделенных описаний: абзац текста, видео, таблица, маркированный или нумерованный список. Новый вид — карусель — появился в 2018-м.

Долгое время выделенные описания дублировали страницу в выдаче: она появлялась и в форме такого блока — над остальными результатами, и как обычный поисковый сниппет — среди ТОП-10. В 2020 году Google обновил алгоритм — и страницы, получившие выделенное описание, перестали появляться второй раз среди ТОП-10. Выделенные описания также перестали показываться справа, как это было раньше, — сейчас только сеть знаний может отображаться справа от результатов поиска.

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

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

Google продолжает экспериментировать с выделенными описаниями. Сейчас отображается кнопка “hear this out loud” («прослушать») для пользователей из Индии — они могут прослушать информацию из блока. Также тестируется подраздел выделенного описания “also covered on this page” («также на этой странице») — подобно быстрым ссылкам, он указывает на то, какие еще вопросы раскрыты на показываемой странице. Возможно, в скором времени мы увидим больше новых видов выделенных описаний.

Шаг 6: Совершенствование эффектов при помощи jQuery UI

В результате перехода на jQuery UI мы получаем набор очень необходимых возможностей. На самом деле вам не нужна вся библиотека, чтобы воспользоваться дополнительными возможностями. Вам всего лишь нужен файл с ключевыми эффектами для получения этих возможностей. Не UI Сore, а только файл компонента Effects Core, вес которого относительно небольшой и составляет 10 Кбайт.

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

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

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

За счет переходов между классами осуществляется анимация классов. При использовании основной библиотеки в случае удаления и дальнейшего добавления класса, за счет которого изменяется внешний вид элемента, смена классов произошла бы мгновенно. Если в вашем документе подключена библиотека jQuery UI, то у вас появляется возможность передачи дополнительных параметров для установления скорости анимации, варианта сглаживания и функции обратного вызова. Как и в случае с предыдущими возможностями, эта работает на основе существующего API jQuery, благодаря чему облегчается процесс перехода (* с одной библиотеки на другую).

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

Расширенные результаты поиска

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

Рейтинги

Описание

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

Звезды рейтинга выделяют страницу в выдаче, привлекают внимание пользователей и положительно влияют на CTR

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

Как попасть

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

Быстрые ссылки 

Описание

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

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

Как попасть

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

Хлебные крошки

Описание

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

Как попасть

Чтобы добавить цепочку из разделов сайта, нужно использовать соответствующую микроразметку. Вы можете добавить одну или несколько строк навигации. Например, путь к странице с зимней женской обувью может быть таким: Обувь › Женская обувь › Зимняя женская обувь или таким: Обувь › Зимняя женская обувь. Обе строки навигации в данном случае ведут на одну и ту же страницу.

Описание

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

Как попасть

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

Как сделать на сайте удобную пагинацию страниц

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

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

Создать качественную пагинацию нетрудно. Главное — соблюдать нижеприведенные рекомендации.

Удобный размер страницы

Ваша страница не должна быть очень маленькой. Сайт или приложение — не печатное издание, где размер страниц ограничен его собственным объемом и величиной его листов. Габариты сайта ограничены только вычислительной мощностью гаджета и выдержкой пользователя. Оптимальным считают отображение от 20 до 80 записей на странице. Но это лишь примерное значение. Реальное зависит от категории сайта. На одних этот показатель равен 10, на других — 100

Самое важное — сделать сайт удобным для посетителя

Удобный размер ссылок

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

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

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

Оптимальное пространство вокруг элементов

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

Рекомендуемые статьи по данной теме:

  • Разработка веб-сайтов: способы, инструменты и проблемы
  • Внутренняя оптимизация сайта: пошаговый разбор
  • Разработка дизайна сайта: от выбора стиля до получения макета

Возможность перейти на предыдущую и следующую страницу

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

Возможность перейти на первую и последнюю страницу

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

Оптимизация под мобильную версию

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

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

Оптимизация под клавиатуру

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

Важно лишь рассказать пользователю о такой возможности. Чтобы его предупредить, просто напишите под пагинацией: «Используйте клавиши ← влево и вправо → для навигации по страницам»

Кроме того, можно дать человеку возможность переходить по ссылкам клавишей Tab. При выделенной ссылке нажатие Enter должно вызывать переход на следующую страницу.

Проставление нумерации страниц

Чем пользоваться — пейджингом или навигацией «Далее/Назад»? На малостраничном сайте вероятность того, что пользователь пройдется по всем страницам, возрастает. Если же у человека нет возможности оценить количество записей, его терпение может иссякнуть раньше, чем он перейдет на следующую страницу.

От автора

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

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

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

Один из самых простых способов создания постраничной навигации

Пагинация страниц php и с использованием баз данных, библиотек jQuery и AJAX возможна разными способами. Выделяют плагины, работающие на стороне пользователя и на стороне сервера.

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

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

1. Подключаем jQuery

Если на своем на сайте вы еще не используете jQuery, на странице между тегами <head> и </head> нужно подключить jQuery не ниже версии 1.7.2.

Сделать это можно двумя способами. Первый — воспользоваться специальным хранилищем Google: <script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js»></script>.

Второй — использовать библиотеку jQuery из скачанного архива с исходниками, заранее загрузив ее на хостинг в папку с вашим сайтом:

<script type=»text/javascript» src=»путь_к_js/jquery.min.js»></script>

Следующей строчкой нам нужно подключить непосредственно плагин jquery.simplePagination.js:

<script type=»text/javascript» src=»путь_к_js/jquery.simplePagination.js»></script>

2. Подключаем CSS

Пагинация страниц CSS предполагает выбор темы с наиболее подходящим дизайном из трех представленных: светлого, темного и компактного. Далее из исходного файла со стилями необходимо выбрать часть кода с желаемым стилем и вставить его в файл стилей .css сайта.

Если не хотите усложнять себе задачу, просто подключите исходный файл CSS такой строчкой кода:

<link type=»text/css» rel=»stylesheet» href=»путь_к_css/simplePagination.css»/>

3. Прописываем код HTML

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

  • <div id=»light-pagination» class=»pagination»></div> (светлая тема);
  • <div id=»dark-pagination» class=»pagination»></div> (темная тема);
  • <div id=»compact-pagination» class=»pagination»></div> (компактная тема).

4. Инициализируем плагин

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

$(function() {

 $(#light-pagination).pagination({

  items: 100,

  itemsOnPage: 10,

  cssStyle: ‘light-theme’

 });

});

Данный пример приведен для светлой темы #light-pagination. Для ее замены на темную нужно лишь изменить селектор на #dark-pagination, для компактной — #compact-pagination. Обязательно в этом случае меняйте и класс в файле со стилями cssStyle.

Чтобы настроить этот скрипт, применяют такие опции:

  • items — общее число элементов для расчета страниц пагинации (1 по умолчанию);
  • itemsOnPage — число отображаемых на каждой странице элементов (1 по умолчанию);
  • pages — число страниц в списке. Если обозначено значение, то вышеуказанные опции items и itemsOnPage не применяются;
  • displayedPages — число отображаемых в процессе навигации страниц. Максимально допустимо 3. По умолчанию — 5;
  • edges — число страниц, которые видны в начале и в конце пейджинга. По умолчанию — 2;
  • currentPage — стартовая страница после запуска. По умолчанию — 1;
  • hrefTextPrefix — строчка, которая используется в атрибуте HREF. Ее добавляют перед номером страницы. По умолчанию «#page- «;
  • hrefTextSuffix — строчка, которая используется в атрибуте HREF. Ее вставляют после номера страницы. По умолчанию — пустая;
  • prevText — текст кнопки на предыдущую страницу. По умолчанию — Prev;
  • nextText — текст кнопки на следующую страницу. По умолчанию — Next;
  • cssStyle — определяет стиль CSS. По умолчанию — light-theme;
  • selectOnClick — выбор страницы после нажатия. По умолчанию — включен (true).

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

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

<script src=»http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js»></script>

<script type=»text/javascript» src=»paginator/jquery.simplePagination.js»></script>

<link type=»text/css» rel=»stylesheet» href=»paginator/simplePagination.css»/>

<div id=»light-pagination» class=»pagination»>

<script type=’text/javascript’>

$(window).load(function(){

$(‘#light-pagination’).pagination({

  items: 100,

 itemsOnPage: 10,

 hrefTextPrefix: »,

 hrefTextSuffix: ‘.html’,

 prevText: ‘Начало’,

 nextText: ‘Конец’,

 cssStyle: ‘light-theme’

});

});

</script>

Этот скрипт нужно установить на все страницы, где требуется пагинация.

Замена картинки по клику

1).

Одна картинка, это утро -> https://dwweb.ru/__img/php/img_php/morning.png

Вторая картинка, это день-> https://dwweb.ru/__img/php/img_php/day.png

2).<img id=»change_image» src=»https://dwweb.ru/__img/php/img_php/morning.png» >
3).onclickonclick<button onclick=»change_image.src=’https://dwweb.ru/__img/php/img_php/day.png'» class=»button»>Смени содержание тега src</button>

Соберем код вместе:

<img id=»change_image» src=»https://dwweb.ru/__img/php/img_php/morning.png» >

<button onclick=»change_image.src=’https://dwweb.ru/__img/php/img_php/day.png'» class=»button «>Смени содержание тега src</button>

Смени картинку javascriptЗамена картинки по кликуСмени картинку javascript

Шаг 3: Создание нашего собственного анимационного эффекта

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

Для создания собственного анимационного эффекта вы используете метод animate. Взгляните.

Метод animate подобен остальным методам в том, что он вызывается таким же образом. Мы получаем элемент и затем передаем в него кое-какие параметры. Именно параметрами этот метод отличается от встроенных эффектов.

Параметры speed и callback используются с той же целью, как и в предыдущих методах. Именно параметр, в качестве которого выступает объект, содержащий ряд пар ключ-значение, делает этот метод уникальным. Вы передаете все свойства, которые хотите санимировать, вместе с их конечными значениями. Например, предположим, что вы хотите санимировать ширину элемента до 90% текущего значения; вам нужно бы было сделать что-то вроде следующего:

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

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

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

При определении свойства, состоящего из более чем одного слова, возьмите на заметку, что его необходимо записывать при помощи «верблюжьей» нотации (* от англ. camel case)

Это сильно отличается от обычного синтаксиса CSS, так что обратите на это особое внимание. Следует писать borderTop, а не border-top

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

Но не переживайте. За счет некоторых возможностей jQuery UI (* библиотека готовых компонентов для пользовательского интерфейса, разработанная на основе jQuery) мы будем анимировать цвета с минуты на минуту.

Код CSS

Здесь вам следует обратить внимание на несколько моментов. У каждого элемента имеется свойство position, в качестве значения которого задано relative (* если у родителя в качестве значения position используется fixed, relative или absolute, то отсчет координат ведется от края родительского элемента), благодаря чему для элементов внутри него можно легко задать позицию

Также в качестве значения свойства overflow элемента установлено hidden, за счет чего мы можем скрыть заголовок и описание за пределами элемента, если они не нужны.

В качестве значения свойства position заголовка и описания задано absolute, благодаря чему их можно точно отпозиционировать внутри элемента с классом item. В качестве значения свойства top заголовка установлено значение 0, так что он располагается вверху, и в качестве значения свойства bottom описания установлено 0, за счет чего оно размещается прямо внизу.

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

Ниже показано, как выглядит наша страница после завершения этого этапа.

Неоднозначные выделенные описания

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

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

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

В контексте выделенных описаний также очень важно не показывать некорректную информацию по YMYL-запросам. YMYL значит «ваши деньги или ваша жизнь» (Your Money or Your Life) — это информация, которая прямо связана с жизненно важными аспектами жизни: здоровьем, финансами и т

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

Проблема доверия

Хоть точность и объективность выделенных описаний может представлять проблему, часто пользователи не доверяют этому блоку независимо от качества информации. В опросе Hubspot 2017 года только 7% указали, что доверяют информации в выделенных описаниях. Исследование EngineScout также показывает высокий уровень недоверия к этому блоку — 24% пользователей принимают быстрые ответы за рекламу.

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

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

Кнопка и прокрутка страницы вверх через HTML и CSS.

<body>в том месте до которого нужно прокрутить страницу, устанавливаем следующую конструкцию<div><a id=’top‘/></div>
id<div><a href=»#top» class=»idTop»>ВВЕРХ</a></div>
добавим CSSa.idTop {
 position: fixed; /*позиционирование кнопки фиксированное*/
 z-index: 9999; /*отображаем поверх всех элементов*/
 bottom: 0%; /*положение снизу*/
 right: 0%; /*положение справа*/
 background: #7db9e8; /*фон, можно указать любую картинку*/
 opacity: .6; /*прозрачность*/
 color: #fff; /*цвет текста*/
 padding: 10px; /*внутренние отступы*/
 margin: 5px 15px 15px 5px; /*внешние отступы*/
}
a.idTop:hover {
 opacity: 1;
}
<div><a href=»#top» class=»idTop»><img src=’…/myimage.png’/>
</a></div>

Сохранение файлов Markdown

Итак, нам осталось сохранить сконвертированный Markdown в файлы — по одному для каждой статьи.

const puppeteer = require('puppeteer');const TurndownService = require('turndown'); const fs = require('fs');const turndownService = new TurndownService();(async() => {  // Запустим браузер  const browser = await puppeteer.launch({    args:  }  );  // Откроем новую страницу  const page = await browser.newPage();  const pageURL = 'https://justmarkup.com';  try {    // Попробуем перейти по URL    await page.goto(pageURL);    console.log(`Открываю страницу: ${pageURL}`);  } catch (error) {    console.log(`Не удалось открыть      страницу: ${pageURL} из-за ошибки: ${error}`);  }  // Найдём все ссылки на статьи     const postsSelector = '.main .article h2 a';       await page.waitForSelector(postsSelector, { timeout: 0 });  const postUrls = await page.$$eval(    postsSelector, postLinks => postLinks.map(link => link.href)  );  // Перейдём по каждой из них  for (let postUrl of postUrls) {    // Откроем страницу    try {        await page.goto(postUrl);        console.log('Открываю страницу: ', postUrl);    } catch (error) {        console.log(error);        console.log('Не удалось открыть страницу: ', postUrl);    }    // Получим путь URL (pathname)    let pagePathname = await page.evaluate(() => location.pathname);    pagePathname = pagePathname.replace(/\//g, '-');    console.log('Нашёл pathname:', pagePathname);    // Получим заголовок статьи    const titleSelector = '.article h1';    await page.waitForSelector(titleSelector);    const pageTitle = await page.$eval(      titleSelector, titleSelector => titleSelector.outerHTML    );    console.log('Нашёл заголовок статьи: ', pageTitle);    // Получим контент статьи    const contentSelector = '.article .entry-content';    await page.waitForSelector(contentSelector, { timeout: 0 });    const pageContent = await page.$eval(      contentSelector, contentSelector => contentSelector.innerHTML    );    console.log('Нашёл контент: ', pageContent);    // Преобразуем HTML в Markdown    let pageContentMarkdown = turndownService.turndown(      pageTitle + pageContent    );    // Проверим, существует ли папка, если нет — создадим её    const postsDirectory = '/posts/';    if (!fs.existsSync(postsDirectory)) {      fs.mkdirSync(postsDirectory);    }    // Сохраним файл в формате ${pathname}.md    fs.writeFile(      postsDirectory + pagePathname + '.md',      pageContentMarkdown, (err) => {        if (err) {          console.log(err);        }        // Если ошибки нет - значит статья сохранена        console.log('Сохранил статью!');    });}  // Всё сделано, закроем браузер  await browser.close();  process.exit()})();

Здесь мы используем API файловой системы — модуль fs из Node.js, поэтому подключим этот модуль начале нашего . Я хочу сохранить все статьи в папке с именем . Поэтому, сначала проверим, существует ли папка с таким названием и если нет — создадим её с помощью:

// Проверим, существует ли папка, если нет — создадим еёconst postsDirectory = '/posts/';if (!fs.existsSync(postsDirectory)) {  fs.mkdirSync(postsDirectory);}

И в завершении, сохраним каждую статью в формате Markdown.

// Сохраним файл в формате ${pathname}.mdfs.writeFile(postsDirectory + pagePathname + '.md', pageContentMarkdown, (err) => {  if (err) {    console.log(err);  }  // Если ошибки нет - значит статья сохранена  console.log('Сохранил статью!'); });

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

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

jQuery плагин прокрутки веб-страницы вверх

плавно прокручивает страницу вверх;кнопка прокрутки не видна вверху страницы, а появляется когда часть уже прокручена и исчезает после возврата к верху; имеет маленький размер и работает во всех браузерах.HTML код<a href=»#» id=»toTop«></a>
CSS#toTop {
 position:fixed;
 z-index:9999;
 bottom:10px;
 right:10px;
 background: #F4FFBF;
 border: 1px solid #ccc;
 padding: 5px;
 cursor: pointer;
 color: #666;
 text-decoration: none;
 width:100px;
}
#toTop {
 position:fixed;
 z-index:9999;
 bottom:10px;
 right:10px;
 background: url(‘…/yuor_image_64x64.png’) no-repeat;
 width: 64px;
 height: 64px;
 border: none;
 padding: 5px;
 cursor: pointer;
 color: transparent;
 text-decoration: none;
}
</head>$(function(){
  $.fn.scrollToTop=function(){
    $(this).hide().removeAttr(«href»);
    if($(window).scrollTop()!=»0″){
        $(this).fadeIn(«slow»)
  }
  var scrollDiv=$(this);
  $(window).scroll(function(){
    if($(window).scrollTop()==»0″){
    $(scrollDiv).fadeOut(«slow»)
    }else{
    $(scrollDiv).fadeIn(«slow»)
  }
  });
    $(this).click(function(){
      $(«html, body»).animate({scrollTop:0},»slow»)
    })
  }
});
$(function() {$(«#toTop»).scrollToTop();});
http://magentawave.com

Социальные сети

Порой соцсети компании занимают позиции выше, чем сам сайт

Заниматься продвижением в соцсетях не просто важно, а необходимо.

Что делать до запуска своего сообщества:

Определиться с целью — зачем вам нужно своё представительство в соцсетях? Аргумент «у конкурентов есть, а у меня нет» — это не цель ;–)
Нарисовать портрет целевой аудитории. Женщины или мужчины? Чем интересуются? Где живут? Чем чётче вы представляете своего потенциального клиента, тем легче вам будет работать со своим сообществом.
Проанализировать соцсети конкурентов

Обратите внимание на активность в группе (лайки, репосты, комментарии). Какой контент используют: рекламные посты, полезная информация, розыгрыши, обзоры?
Продумать УТП

Что вас отличает от сотни похожих компаний? Чем вы лучше конкурентов? Какими преимуществами обладает ваша компания?

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: