Как стать автором
Обновить

Как рассказать о сайте поисковой системе 2

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.2K

Содержание

  1. Введение

  2. IndexNow

  3. Schema.org

  4. Security.txt

  5. Заключение

Введение

Доброго времени суток. В этой статье я хочу дополнить первую часть рассказа о том как же донести поисковику информацию о своём сайте. Ниже будут рассмотрены такие темы как IndexNow, security.txt, schema.org.

IndexNow

IndexNow - система разработанная и выпущенная в октябре 2021 года компаниями Майкрософт и Яндекс. Была создана чтобы ускорить процесс индексации сайтов путём запроса по API, вместо ожидания прохождения ботами. Удобно правда?

Но есть и минусы. Первый касаемо гарантий индексации, их нет. Второй в том что самая популярная поисковая система в мире google до сих пор не имеет такого api, вместо него на Google search console есть кнопка позволяющая отправить страницу на индексацию (свой аналог indexapi но только с ui). Есть обходные пути через сторонних ботов, но удобство и безопасность никто не гарантирует

Рассмотрим простой пример как отправить сайт на индексацию через API Yandex:

  1. Создаём ключ из символов a-zA-Z , 0-9- , кодировкой utf-8 и длиной от 8 до 128

  2. Размещаем в текстовом файле его по адресу и внутри файла также вписываем ключ. https://example.com/<key>.txt . Где <key> - сгенерированный ключ

  3. Далее нам надо отправить нашу страницу или несколько на индексацию

Для одной страницы можно воспользоваться GET. Запросы в примерах отправляются через curl:

curl -G "https://yandex.com/indexnow" \
  --data-urlencode "url=https://pavlusha.me" \
  --data-urlencode "key=DzDudfAkpodpKDuOocXuAkJkBipKvYWrcYhigHRFUlxpFgRRji" \
  --data-urlencode "keyLocation=https://pavlusha.me/DzDudfAkpodpKDuOocXuAkJkBipKvYWrcYhigHRFUlxpFgRRji.txt"

Но если вы хотите несколько, то нужно использовать POST (подробнее):

curl -X POST "https://yandex.com/indexnow" \
  -H "Content-Type: application/json; charset=utf-8" \
  -d '{
    "host": "pavlusha.me",
    "key": "DzDudfAkpodpKDuOocXuAkJkBipKvYWrcYhigHRFUlxpFgRRji",
    "keyLocation": "https://pavlusha.me/DzDudfAkpodpKDuOocXuAkJkBipKvYWrcYhigHRFUlxpFgRRji.txt",
    "urlList": [
      "https://pavlusha.me"
    ]
  }'
Ответ после отправки страницы на индексацию
Ответ после отправки страницы на индексацию

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

Стоит упомянуть что bing и yandex не гарантируют вам индексацию страницы. это написано в их документации. По внутренним критериям индексации может не пройти.

Schema.org

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

Пример schema

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "LocalBusiness",
  "name": "Company name",
  "image": "https://example.com/logo.png",
  "@id": "https://example.com",
  "url": "https://example.com",
  "telephone": "+7-495-123-45-67",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "Улица Пример, 10",
    "addressLocality": "Москва",
    "postalCode": "101000",
    "addressCountry": "RU"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 55.7558,
    "longitude": 37.6173
  },
  "openingHoursSpecification": [
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": [
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday"
      ],
      "opens": "09:00",
      "closes": "18:00"
    },
    {
      "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday",
      "opens": "10:00",
      "closes": "15:00"
    }
  ],
  "priceRange": "$$",
  "sameAs": [
    "https://www.facebook.com/example",
    "https://www.instagram.com/example",
    "https://vk.com/example"
  ]
}
</script>

Данный скрипт вставляется чаще всего в `<head>` страницы как и большинство SEO тегов, к примеру OpenGraph. Полностью заполненный такой профиль помогает поисковиками таким как google увидеть к примеру рабочие часы, а локация как раз будет сопоставлятся с вашей если Вы того разрешите и с большей вероятностью эта организация (магазин и т.п.) окажется в топах выдачи.

Пример сайта в котором указана schema

Уже проиндексированный сайт со схемой содержит дополнительно информацию об отзывах
Уже проиндексированный сайт со схемой содержит дополнительно информацию об отзывах

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

Обнаружить какие сущности есть на сайте или провалидировать schema можно на официальном сайте https://validator.schema.org/ В данном примере на странице со скачиванием приложения я имею aggregateRating который отражает рейтинг приложения. Как видно в гугл это отражается в виде отзывов отображаемых на странице компании или прямо в поисковой выдаче.

validator.schema.org для сайта lodelian
validator.schema.org для сайта lodelian

В интернете можно найти утверждения что schema.org уже себя исчерпал и не требуется, особенно сейчас, когда существует ИИ. Выскажу мнение что далеко не все предпочитают ИИ стандартному поиску и замене браузера на своих устройствах, а учитывая региональны особенности всё же многие остаются с google и яндекс, поскольку для их работы не нужен VPN.

Security.txt

Security.txt - это текстовый файл который мы можем разместить на нашем домене (к примеру https://example.com/.well-known/security.txt) для того чтобы знать куда отправить информацию об уязвимостях на сайте.

Все поля данного файла не обязательны, кроме Contact (минимум 1). Такой формат security.txt описывает стандарт. Сам стандарт описан в RFC 9116.

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

Contact: mailto:security@example.com
Contact: https://example.com/security-contact
Contact: tel:+1-555-555-5555
Expires: 2024-12-31T23:59:59Z
Encryption: https://example.com/pgp-key.txt
Signature: https://example.com/.well-known/security.txt.sig
Policy: https://example.com/security-policy
Preferred-Languages: en, es, fr
Canonical: https://example.com/.well-known/security.txt
Hiring: https://example.com/jobs/security
Acknowledgments: https://example.com/security/hall-of-fame

Кратко описание полей:

  • Contact: контакты для связи, может иметь множество записей. (минимум 1 должен быть указан)

  • Expires: дата до который эта информация в файле актуальна.

  • Encryption: ссылка на ключ шифрования.

  • Signature: подпись файла.

  • Policy: политика безопасности.

  • Preferred-Languages: язык который лучше использовать для связи.

  • Canonical: канонический URL (оригинал сайта)

  • Hiring: вакансии для исследователей безопасности.

  • Acknowledgments: сайт благодарности для исследователей безопасности, сообщивших об уязвимостях.

Подпись файла security.txt

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

Пример подписи с использование GPG (GNU Privacy Guard)

Перед тем как создавать ключ убедитесь, что у вас установлен GPG. Например, на Linux: sudo apt install gnupg, на macOS: brew install gnupg (homebrew).

Если до этого у вас не было GPG то создайте ключ шифрования через gpg --gen-key

Создание ключей для подписи
Создание ключей для подписи

При использовании команды потребуется ввести имя и почту для идентификации пользователя (чья эта подпись)

Создание фразы
Создание фразы

Вводим или пропускаем фразу для защиты данного ключа (эта фраза используется при использовании подписи). После будут сгенерированы файлы и доступны в системе. Пример MacOS /Users/<user>/.gnupg

Экспорт публичного ключа может быть выполнен через gpg --armor --export <email> > pgp-key.txt

Создание подписи файла

  1. Создаём security.txt.

    Contact: mailto:pavel.zavadski@pavlusha.me  
    Encryption: https://pavlusha.me/pgp-key.txt  
    Signature: https://pavlusha.me/.well-known/security.txt.sig  
    Preferred-Languages: en, ru  
    Canonical: https://pavlusha.me/.well-known/security.txt

    Пример файла.

  2. Заполняем его.

  3. Подписывается приватным ключом gpg --armor --detach-sign --output security.txt.sig security.txt

    • Флаг --armor создаёт подпись в текстовом формате ASCII.

    • Флаг --detach-sign создаёт отдельный файл подписи (не встраивает подпись в сам файл). Это как раз наша подпись

    • Флаг --output позволяет указать точное название файла. По стандарту он может быть security.txt.asc или security.txt.sig

  4. Получается файл .sig, который выкладывается по указанному URL https://pavlusha.me/.well-known/security.txt.sig.

  5. Исследователи могут проверить подлинность security.txt (https://pavlusha.me/.well-known/security.txt) , загрузив .sig (https://pavlusha.me/.well-known/security.txt.sig) и публичный ключ (из "Encryption" - https://pavlusha.me/pgp-key.txt )

  6. Импортировать публичный ключ gpg --import pgp-key.txt

  7. Проверка security.txt gpg --verify security.txt.sig security.txt

Результат команды gpg --verify security.txt.sig security.txt
Результат команды gpg --verify security.txt.sig security.txt

Заключение

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

Как видно, современные поисковые системы предлагают всё новые способы чтобы рассказать о вашем сайте, помимо robots.txt и sitemap.

Использование IndexNow позволяет ускорить индексацию новых страниц путём удобного API, а schema.org помогает лучше структурировать информацию для поисковиков и улучшить видимость в результатах путём добавления метаданных к страницам, security.txt предоставляет контакты для исследователей уязвимостей.

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

Послесловие

С каждым днём AI всё чаще внедряется в приложения. А основные его игроки такие как ChatGPT релизят всё новые функции. Одна из таких это search которая делает парсинг сайтов. Думаю что тема интересная, поэтому прошу поучаствовать в опроснике :) Хотелось бы сделать сравнение крупных моделей и узнать что они видят

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Хотите статью как развитие ИИ касается поисковых систем?
90% Да9
10% Нет1
Проголосовали 10 пользователей. Воздержались 3 пользователя.
Теги:
Хабы:
Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку
+1
Комментарии0

Публикации