Качественный robots.txt для Hugo

Итоговый результат

В конфиге (например config.toml) убеждаемся, что baseURL и enableRobotsTXT установлены верно. Например:

baseURL = 'https://brualan.ru/'
enableRobotsTXT = true

Создаём файл layouts/robots.txt

User-agent: *
Sitemap: {{ .Sitemap.Filename | absURL }}

Готово!

О проблеме

Проверяя свой сайт на соответствие требованиям поисковиков столкнулся с разницей в восприятии robots.txt разными системами. В частности инструмент от Яндекса принимал файл без ошибок. А вот Google’овский Lighthouse выдал ошибку robots.txt is not valid. Подробнее о проблеме можно прочитать тут. Но если коротко, то в последнем абзаце описывается проблема и её решение:

# Don't
sitemap: /sitemap-file.xml

# Do
sitemap: https://example.com/sitemap-file.xml

Как решить проблему

Проблема возникла при добавлении Sitemap в robots.txt. Как оказалось Яндекс умеет работать с путями без явного указания домена (т.е. /sitemap.xml), а для Google требуется абсолютный с указанием домена. Поэтому в рамках нашей конфигурации мы и указываем, что хотим получать абсолютный путь от .Sitemap.Filename. Т.е. используем конструкцию {{ .Sitemap.Filename | absURL }}

Что такое Sitemap и зачем он нужен?

Файл Sitemap несёт в себе:

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

Однако я всё же решил добавить его к себе на ресурс, потом что:

  1. Hugo, как генератор сайта, уже автоматом генерит sitemap.xml в корне результирующей структуры сайта
  2. Я уверен, что если мы можем помочь поисковику в индексации — надо это сделать для того, что бы наш контент с большей вероятностью попал на глаза читателям
  3. Углубление знаний устройства интернета, для меня это важный аспект каждодневного профессионального роста