Ворклог по задаче "Настроить Open Graph / meta-теги для корректных превью страниц в мессенджерах"
Усилена проверка og:image после ошибок Google
Google сообщил для части карточек ошибку «Недопустимый URL в поле image». Предполагаемая причина — исходные пути к изображениям содержали незакодированные кириллические символы и пробелы, которые прежняя проверка не выявляла.
Доработан скрипт agent/scripts/check-page-image/index.ts проекта happybaby2000.ru:
- проверяется исходное значение
og:imageдо какой-либо нормализации; - URL должен быть абсолютным HTTP(S)-адресом с хостом;
- выявляются незакодированные пробелы, кириллица, управляющие и другие недопустимые символы;
- проверяется корректность
%-escape-последовательностей; - выявляются незакодированные квадратные скобки в path/query/fragment и повторный
#во фрагменте, при этом IPv6 в квадратных скобках допускается; - проверяются все
og:imageна странице, а не только первый; - диагностика указывает номер изображения, исходный URL и причину ошибки; для недопустимых символов также выводятся Unicode-код и позиция;
- при ошибках скрипт возвращает код
1, при успехе —0.
Рядом добавлен постоянный тест agent/scripts/check-page-image/index.test.ts на Vitest. Конфигурация Vitest расширена на scripts/**/*.test.ts. Набор покрывает 28 сценариев, включая валидные и невалидные URL, encoded-символы, IPv6, отсутствие изображения, несколько og:image и точность диагностики.
Проверка проходит успешно: 28 тестов пройдены, ESLint, Prettier и git diff --check — без ошибок.
Команда теста:
npm run test -- scripts/check-page-image/index.test.ts
Ограничение проверки: она валидирует синтаксис URL из og:image, но не проверяет доступность самого изображения и не гарантирует принятие URL сервисами Google. Автоматического исправления URL скрипт не выполняет.
Явно задать для страниц сайта метаданные превью (заголовок, описание, изображение), чтобы мессенджеры и соцсети корректно формировали карточку ссылки.