new

IndexNow

Очередь URL страниц MODX и уведомление поисковиков через IndexNow
Автор дополнения
Иван Бочкарев
Пакетов
44
Закачек
290
Обычно отвечает в течение суток
Автор дополнения
Пакетов
44
Закачек
290
Обычно отвечает в течение суток
Версия 1.0.7-pl
Дата выпуска 27.09.2026
Загрузки 15
Просмотры 323
IndexNow: ставит в очередь URL изменённых страниц и сообщает о них поисковым системам по протоколу IndexNow.

По умолчанию endpoint Яндекса: yandex.com/indexnow.

IndexNow не индексирует страницу сам. Он только уведомляет поисковик. Появление в выдаче зависит от поисковой системы.

Кому подойдёт: сайт на MODX, где нужно быстрее сообщать Яндексу (или другому IndexNow-совместимому endpoint) о новых, изменённых и удалённых страницах.

Назначение
  • очередь URL при сохранении и публикации ресурса
  • уведомление об удалении и снятии с публикации (action=delete)
  • batch по host, retry при временных ошибках
  • история отправок и ручная отправка URL из менеджера
  • фон через Scheduler или кнопка «Обработать очередь»

Как это работает
  1. Вы сохраняете, публикуете, снимаете с публикации или удаляете ресурс.
  2. Плагин добавляет URL в очередь (или обновляет уже существующую pending-запись).
  3. Scheduler или кнопка в менеджере отправляет batch на endpoint.
  4. Результат пишется в историю. Ошибки IndexNow не ломают сохранение ресурса.

Возможности
  1. Очередь. Dedupe по host + url: побеждает последнее событие. Отложенная отправка при будущем publishedon.
  2. Ключ. Генерация indexnow_key и файла {key}.txt в корне сайта при установке.
  3. Worker. Batch 1-1000 URL (по умолчанию 100). Retry при 429 / 5xx / сети. Постоянные ошибки: 400 / 403 / 405 / 422.
  4. Manager. Вкладки Статус, Очередь, История, Отправка URL. Тест подключения.
  5. Scheduler. Задача «IndexNow: Process Queue», если Scheduler установлен. Без него очередь обрабатывается вручную.
  6. Multi-context. URL и host из контекста ресурса. Ручная отправка только на host ваших контекстов (защита от SSRF).
  7. Права: indexnow_manage, indexnow_send, indexnow_view_history.

Основные настройки
  • indexnow_enabled: главный выключатель
  • indexnow_endpoint: URL API IndexNow
  • indexnow_batch_size: размер batch (1-1000)
  • indexnow_max_attempts / indexnow_retry_delay: retry
  • indexnow_history_retention_days: срок истории
  • indexnow_key: ключ (не публикуйте в открытых тикетах)

Четыре шага
  1. Установите IndexNow. См. установку.
  2. Откройте Extras → IndexNow и проверьте Статус: ключ и key file.
  3. При необходимости создайте /{key}.txt в корне сайта (тело файла = только ключ).
  4. Установите Scheduler для фоновой задачи «IndexNow: Process Queue» (или обрабатывайте очередь кнопкой вручную).

Changelog — IndexNow

[1.0.7-pl] - 2026-09-27

Fixed

  • Manual retry resets attempts, so a retried row gets a full new series of attempts instead of failing on the first temporary error.
  • Manual URL send schedules a queue tick via shared kickQueue(). URLs no longer wait for the next page render or Scheduler run.
  • countSentToday and the history status filter drop the dead accepted status. The worker only writes success / failed / retry.

[1.0.6-pl] - 2026-09-14

Fixed

  • MODX 3 upgrade: probe real file writes under core/components/indexnow and assets/components/indexnow. If leftover files are not writable, clear those trees before copy (xPDO's "could not create directory" often means overwrite failed).
  • Run _prepare_dirs as the first transport vehicle, before the encryptedVehicle FileVehicle.

[1.0.5-pl] - 2026-09-14

Added

  • Queue tick on OnWebPageComplete and OnManagerPageAfterRender. Due rows flush without Scheduler cron (lock once per minute, max 25 URLs).
  • Queue tick lock uses a variable for cacheManager->add() (PHP 8 by-reference).

Fixed

  • Flatten encryptedVehicle file vehicle (name empty) so the class lands in model/, not model/.encryptedvehicle-pack/.
  • Prepare writable core/components/indexnow and assets/components/indexnow before file resolvers. Abort with a log if PHP cannot write those paths.
  • Queue and History grids load on tab click (ExtJS hid the view until Refresh).
  • Scheduler task always has a scheduled run. Status shows next run and notes when Scheduler cron is idle.
  • Overdue IndexNow Scheduler run is pushed forward (recurring only chained after run.php).

[1.0.4-pl] - 2026-09-09

Fixed

  • MODX 3: pack encryptedVehicle as a directory so xPDO FileVehicle uses copyTree instead of broken copyFile into a directory path.

[1.0.3-pl] - 2026-09-09

Fixed

  • MODX 3: alias encryptedVehicle as xPDO\Transport\encryptedVehicle so the encrypted category vehicle loads during install.

[1.0.2-pl] - 2026-09-05

Added

  • Resolver registers indexnow in extension_packages so xPDO models load without an explicit getService().

Changed

  • Changelog switched to Keep a Changelog sections (Added / Changed / Fixed).

[1.0.1-pl] - 2026-09-05

Added

  • Upgrade resolver migrates dotted system settings (indexnow.enabled) to underscore keys (indexnow_enabled).

Changed

  • System setting keys use underscores: indexnow_enabled, indexnow_endpoint, indexnow_batch_size, and the rest of indexnow_*.
  • Queue dedupe: latest event wins for action and available_at (republish after unpublish; future publishedon).
  • Manager UI: container spacing, full-width send textarea, Russian lexicons.
  • History grid hides the empty actions column.

Fixed

  • Connector finds config.core.php when the component path is symlinked into the site.
  • Absolute URL resolve for non-web contexts from Manager (prepare context + site_url / uri fallback).
  • Processor require paths for nested mgr/ classes.

[1.0.0-pl] - 2026-09-05

Added

  • Commercial Extra for MODX Revolution 2.x and 3.x in one transport package.
  • Queue, batch by host, retry, history, and optional Scheduler task IndexNow: Process Queue.
  • ExtJS Manager: status, queue, history, manual URL send, connection test.
  • IndexNow key generation and {key}.txt in the web root.
  • Plugin events for save, publish, unpublish, and delete without blocking resource lifecycle.
  • Permissions: indexnow_manage, indexnow_send, indexnow_view_history.

Последние обсуждения в сообществе MODX.pro