Post main image

Я запустил блог. Но так как он строится на статической платформе, то поиск я решил прикрутить от Яндекса.

Прикрутить его достаточно легко, но вот заставить Яндекс индексировать страницы и находить результаты - задача необычная для backend-разработчика. Отсюда и родилась тема для первого поста.

Вооружившись руководством Яндекса я написал конспект, на основании которого буду настраивать этот блог. Что нужно сделать:

  • Создать карту сайта
  • Создать robots.txt
  • Добавить мета-теги

Создаем карту сайта

Мой блог базируется на базе GitHub Pages и Jekyll, так что имеет поддержку автоматического создания карты сайта с помощью плагина jekyll-sitemap. Попробуем его.

  • Добавляем строку gem 'jekyll-sitemap' в Gemfile.
  • Запускаем bundle.
  • Добавляем в _config.yml. Получаем
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://localhost:4000/it/</loc>
  </url>
  <url>
    <loc>http://localhost:4000/prog/</loc>
  </url>
  <url>
    <loc>http://localhost:4000/seo/</loc>
  </url>
  <url>
    <loc>http://localhost:4000/notes/it/seo/minimal-seo</loc>
    <lastmod>2017-10-27T00:00:00+03:00</lastmod>
  </url>
  <url>
    <loc>http://localhost:4000/posts/it/seo/minimal-seo</loc>
    <lastmod>2017-10-27T00:00:00+03:00</lastmod>
  </url>
  <url>
    <loc>http://localhost:4000/404</loc>
  </url>
  <url>
    <loc>http://localhost:4000/about/</loc>
  </url>
  <url>
    <loc>http://localhost:4000/</loc>
  </url>
  <url>
    <loc>http://localhost:4000/search/</loc>
  </url>
</urlset>

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

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>http://localhost:4000/posts/it/seo/minimal-seo</loc>
    <lastmod>2017-10-27T00:00:00+03:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.1</priority>
  </url>
  <url>
    <loc>http://localhost:4000/c-jekyll</loc>
    <lastmod>2017-10-24T00:00:00+03:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.1</priority>
  </url>
  <url>
    <loc>http://localhost:4000/notes/it/seo/minimal-seo</loc>
    <lastmod>2017-10-27T00:00:00+03:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.1</priority>
  </url>
  <url>
    <loc>http://localhost:4000/it</loc>
    <!-- <lastmod>Отсутствует</lastmod> -->
    <changefreq>always</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>http://localhost:4000/seo</loc>
    <!-- <lastmod>Отсутствует</lastmod> -->
    <changefreq>always</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>http://localhost:4000/prog</loc>
    <!-- <lastmod>Отсутствует</lastmod> -->
    <changefreq>always</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
     <loc>http://localhost:4000/</loc>
     <!-- <lastmod>Отсутствует</lastmod> -->
     <changefreq>always</changefreq>
     <priority>1</priority>
  </url>
  <url>
     <loc>http://localhost:4000/about</loc>
     <!-- <lastmod>Отсутствует</lastmod> -->
     <changefreq>never</changefreq>
     <priority>0.1</priority>
  </url>
</urlset>

Создадим robots.txt

Первым делом я указываю карту сайта, как известно, она может находится в любом месте сайта.

Sitemap: https://zinvapel.github.io/sitemap.xml

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

User-agent: *
Disallow: /search
Disallow: /script

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

Добавление мета-тегов

Пожалуй, это самый простой из пунктов. Согласно своего конспекта завел мета-теги Keywords, Description, viewport, Content-Type, <link rel="canonical" .... Для роботов указал <meta name="robots" content="all"/>.

Здесь я обнаружил удобство хранить некоторые заметки во внешних источниках. Для них я добавил свои значения мета-тегов.

Итого

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