Отправка страниц в яндекс с помощью протокола IndexNow [MODX]

Ускоряем индексацию сайта в яндексе до максимума с помощью индекс нау
03 Октября 2025

Задача простая: отправить данные в яндекс быстрее чем их спарсят роботы.

Для этого:

  1. Создаем плагин, выбираем следующие события

    • OnBeforeDocFormDelete
    • OnBeforeDocFormSave
    • OnDocFormSave
    • OnDocFormDelete
  2. Придумываем свой ключ для верификации XXXXXX, подробнее тут.

    Создаем в корне сайта (можно где угодно) файл XXXXXX.txt, внутрь помещаем наш ключ XXXXXX

  3. Теперь в плагине пишем код:

    <?php
    switch ($modx->event->name) {
        case 'OnBeforeDocFormDelete':
        case 'OnBeforeDocFormSave':
        case 'OnDocFormSave':
        case 'OnDocFormDelete':
            $id=(int)$resource->get('id');
            $url=$modx->makeUrl($id,'','','full');
            if($url){
                $ch = curl_init('https://yandex.com/indexnow?' . http_build_query(array(
                    'url' => $url,
                    'key' => 'XXXXXX',
                    'keyLocation' => 'https://domain.com/XXXXXX.txt',
                )));
                curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
                curl_setopt($ch, CURLOPT_HEADER, false);
                $json = curl_exec($ch);
                curl_close($ch);
                
                $res = json_decode($json,1);
                if(!isset($res['success'])){
                    // ошибка
                }
            }
        break;
    }
    

    где XXXXXX - ключ верификации

    где https://domain.com/XXXXXX.txt - путь к файлу где хранится ключ верификации

Подробнее можно прочитать здесь.