Принудительное обновление кэша Open Graph для Facebook
Вы можете принудительно обновить кэш Open Graph для Facebook, поскольку Facebook — единственная среди крупных платформ — предоставляет программный способ сделать это. Либо используйте кнопку Scrape Again в Sharing Debugger для отдельной ссылки, либо вызовите endpoint scrape в Graph API с токеном доступа приложения. Невозможно принудительно обновить кэш для WhatsApp, LinkedIn или X: они не публикуют такого API ни для кого.
Что сбивает с толку всех
Meta кэширует превью ссылки по ключу URL страницы и хранит собственную копию изображения. Она не перечитывает вашу страницу, чтобы заметить, что og:image теперь указывает куда-то ещё.
Поэтому этот сценарий не работает, хотя именно его пробуют чаще всего:
Изменить обложку → URL
og:imageновый → предположить, что Facebook подхватит её → этого не происходит.
Новый URL изображения сбрасывает кэш CDN изображений. Он ничего не делает с кэшем Meta, привязанным к странице. Чтобы сдвинуть Facebook с места, нужно сообщить Meta, что страница изменилась.
| Кэш | Ключ | Очищается с помощью |
|---|---|---|
| Кэш вашей страницы / CDN | URL страницы | очистки кэша |
| Кэш превью ссылок Meta | URL страницы | эндпоинта scrape или Sharing Debugger |
| Копия изображения у Meta | URL изображения | нового URL изображения |
| Ваш CDN изображений | URL изображения | нового URL изображения |
Вариант 1 — Sharing Debugger (одна страница, вручную)
Откройте developers.facebook.com/tools/debug, вставьте URL страницы и нажмите Scrape Again. Meta повторно загружает страницу и пересобирает кэшированный превью.
Это также лучший бесплатный валидатор, который у вас есть, потому что он сообщает, что Meta фактически нашла, а не то, что вы надеялись там увидеть: отсутствующие или дублирующиеся og:image, недоступные изображения, неподдерживаемые форматы. Две вещи, которые он не делает: он не может затронуть WhatsApp (отдельный кэш в приложении получателя) и не является каталоговым инструментом — он обрабатывает один URL за раз, с ограничением частоты запросов и требует участия человека.
Вариант 2 — Graph API (именно его вызывает плагин)
Программный эквивалент, используемый FastOG, — это POST-запрос к Graph API с scrape=true:
curl -X POST \
"https://graph.facebook.com/v21.0/?id=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=""))' 'https://your-store.com/product/example')&scrape=true&access_token=${APP_ID}|${APP_SECRET}"
Четыре важных детали:
id— это URL страницы, а не URL изображения. Meta привязывает свой кэш к странице, поэтому обращение к адресу изображения ничего не обновляет.- Требуется токен — Meta требует его на этой конечной точке с октября 2017 года. Токена доступа приложения в форме
{app_id}|{app_secret}достаточно, и ему не нужен вход пользователя — именно это делает вызов возможным из фоновой задачи. - Версии Graph API меняются. FastOG фиксирует протестированную версию Graph API; проверьте актуальную документацию и журнал изменений Meta, прежде чем фиксировать версию в собственном коде.
- Относитесь к этому как к попытке без гарантий. Meta ограничивает частоту scrape-вызовов, а отказ означает лишь то, что Facebook обновит данные по своему расписанию, а не немедленно — теги на вашей странице уже корректны.
Поскольку вызовы ограничены по частоте, не запускайте их инлайн при каждом сохранении большого каталога. Ставьте их в очередь и дедуплицируйте по URL, чтобы повторные сохранения одного и того же неизменённого товара не расходовали лимит запросов.
Вариант 3 — плагин, который делает это за вас
Плагины, позиционируемые как «обновление кэша Open Graph», делятся на две группы, и только одна из них может исправить Facebook:
| Механизм | Что очищается | Исправляет устаревший превью Facebook? |
|---|---|---|
Добавляет изменяющуюся строку запроса к URL изображения (?v=timestamp) |
ваш CDN изображений | Нет — кэш Meta привязан к странице |
| Вызывает scrape endpoint для URL страницы | кэш превью Meta | Да |
Перед установкой выясните, к какой группе относится плагин. Параметр с меткой времени — это настоящее исправление для устаревшего изображения и не-исправление для устаревшей карточки Facebook.
FastOG для WooCommerce делает второе, и вам не нужно ничего настраивать. Плагин регистрирует нативные вебхуки продуктов WooCommerce, поэтому сохранение товара запускает повторный scrape Meta для его постоянной ссылки — с постановкой в очередь, дедупликацией в пределах короткого окна и работой по принципу best-effort, чтобы отказ никогда не приводил к сбою сохранения. Это распространяется на страницы товаров (product.created / product.updated); правки категорий и блога не покрываются.
Сторона изображения обрабатывается отдельно и иначе, чем у всех конкурентов: поскольку URL обложки FastOG содержит значения, которые её сгенерировали, изменение цены или фото создаёт новый URL обложки. Meta не может повторно отдать картинку, адрес которой больше не существует.
Где Facebook недостаточно
| Платформа | Можно ли принудительно обновить? | Что происходит на самом деле |
|---|---|---|
Да — отладчик или scrape=true |
Запрашивает повторный сбор данных; время распространения варьируется | |
| Нет | Превью кэшируется в приложении получателя; API не существует | |
| Нет документированного программного API | Повторно считывает данные по своему расписанию; публичные гарантии по времени здесь не даются | |
| X / Twitter | Нет документированного программного API | Повторно считывает данные по своему расписанию; публичные гарантии по времени здесь не даются |
| Slack, Discord | Нет | Недолговечные кэши, которые очищаются сами за минуты или часы |
Если превью устарело в WhatsApp, ответ — не инструмент Facebook, а правильная настройка стороны магазина, чтобы следующее считывание было корректным.
Если после успешного сканирования всё ещё отображается старое изображение
Пройдите по этому списку по порядку:
- Продолжает ли страница отдавать старый тег?
curl -s https://your-store.com/product/example | grep -i 'og:image'— кэшированная HTML-страница с устаревшимog:imageполностью сводит на нет сканирование. Очистите кэш страницы. - Выводит ли страница более одного
og:image? Если два плагина каждый добавляют свой, краулер берёт первый, который прочитает. Пересчитайте их. - Доступно ли изображение и не заблокировано ли оно?
curl -I <image-url>должен возвращать200с изображениемContent-Type. Социальные краулеры учитываютrobots.txt, поэтому изображение по путиDisallow:не загружается так, что это выглядит как повреждённый файл — иcurlникогда не воспроизведёт эту проблему, потому чтоcurlигнорируетrobots.txt. - Действительно ли изменился URL изображения? Если нет, то и контент не изменился — проверьте, что правка цены/фото дошла до источника, из которого формируется карточка.
- Проверьте отладчик ещё раз. Если теперь он показывает новое изображение, а Facebook по-прежнему показывает старую карточку, вы имеете дело с собственным распространением Facebook, а не с вашими тегами.
FAQ
Существует ли официальный API для очистки кеша Open Graph в Facebook?
FastOG использует endpoint scrape (POST https://graph.facebook.com/{version}/?id={page-url}&scrape=true&access_token={token}). Meta документирует Sharing Debugger и программный процесс обхода страниц; точная форма endpoint и версия Graph API могут меняться, поэтому перед самостоятельной реализацией сверьтесь с актуальной документацией Meta.
Нужно ли приложение или токен для Sharing Debugger?
Нет. Это публичный инструмент, и он работает для любого публичного URL. Чего он не умеет — так это запускаться по расписанию или покрывать каталог целиком.
Будет ли повторный скрейпинг стоить мне рендера FastOG?
Обычно нет. URL обложки формируется на основе контента, поэтому если контент не изменился, URL тоже не изменился, и запрос попадает в кеш, не расходуя рендер. Если цена изменилась, изменился и URL — это один новый рендер, и именно тот, который вам нужен.
Исправит ли повторный скрейпинг Facebook мой превью в WhatsApp?
Нет. Это отдельные кеши. Отладчик Facebook по-прежнему полезен как валидатор — он запрашивает страницу так же, как это сделает WhatsApp, и сообщает, что нашёл, — но он не может обновить кеш WhatsApp.
Как долго Facebook хранит превью, если я никогда не отправляю ping?
Meta документирует стандартный период повторного скрейпинга около 24 часов, но точное время распространения может варьироваться. Именно поэтому существуют отладчик и программный путь обхода страниц.
Нужно ли отправлять ping по каждому товару после импорта каталога?
Для этого и существует очередь. Отправка одного запроса на товар в синхронном режиме упрётся в лимит частоты запросов Meta и замедлит запрос мерчанта; при постановке в очередь и дедупликации обход каталога проходит без вреда.
Что будет, если Meta отклонит запрос?
Ничего не сломается. Отклонённый или ограниченный по частоте ping означает, что Facebook обновит данные по своему расписанию, а не немедленно — теги на странице уже корректны, поэтому этот вызов является best-effort, а не жёсткой зависимостью.
Связанные материалы
- Мгновенное обновление изображения WhatsApp для WooCommerce
- Руководство по кэшированию превью в соцсетях: Facebook, WhatsApp, LinkedIn, X, Slack и Discord
- og:image не отображается? Как это исправить
- Превью ссылки WhatsApp не отображается? Исправьте og:image
- Как кэшировать OG-изображения
- Синхронизация цен WooCommerce в превью WhatsApp
- Интеграция с WooCommerce: FastOG для WooCommerce