Примусове оновлення кешу Open Graph для Facebook
Ви можете примусово оновити кеш Open Graph для Facebook, оскільки Facebook — єдина серед основних платформ — надає програмний спосіб зробити такий запит. Використовуйте кнопку Scrape Again у Sharing Debugger для окремого посилання або викличте endpoint scrape у Graph API з access token застосунку. Немає жодного способу примусово оновити кеш для WhatsApp, LinkedIn або X: вони не публікують такого API для жодного користувача.
Те, що спотикає всіх
Meta кешує попередній перегляд посилання за URL сторінки і зберігає власну копію зображення. Вона не перечитує вашу сторінку, щоб помітити, що og:image тепер вказує кудись в інше місце.
Тож цей робочий процес не працює, хоча саме його пробують найчастіше:
Змінити обкладинку → URL
og:imageновий → припустити, що Facebook підхопить її → він не підхоплює.
Новий URL зображення скидає кеш CDN зображень. Він нічого не робить із кешем Meta, прив'язаним до сторінки. Щоб зрушити Facebook, ви маєте повідомити Meta, що сторінка змінилася.
| Кеш | Прив'язаний до | Очищується через |
|---|---|---|
| Кеш вашої сторінки / CDN | URL сторінки | очищення кешу |
| Кеш попереднього перегляду посилань Meta | URL сторінки | endpoint зіскрапування або 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? |
|---|---|---|
Додає змінний query-параметр до URL зображення (?v=timestamp) |
ваш CDN для зображень | Ні — кеш Meta прив'язаний до сторінки |
| Викликає scrape endpoint для URL сторінки | кеш попереднього перегляду Meta | Так |
Перш ніж встановлювати такий плагін, з'ясуйте, до якої групи він належить. Параметр із часовою міткою — це справжнє виправлення для застарілого зображення і не виправлення для застарілої картки Facebook.
FastOG для WooCommerce робить друге, і вам не потрібно нічого налаштовувати. Плагін реєструє власні вебхуки продуктів WooCommerce, тому збереження продукту надсилає повторний запит на скрейп 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 використовує scrape-кінцеву точку (POST https://graph.facebook.com/{version}/?id={page-url}&scrape=true&access_token={token}). Meta документує Sharing Debugger та програмний процес обходу сторінок; точна форма кінцевої точки та версія Graph API можуть змінюватися, тому перед власною реалізацією перевірте їх в актуальній документації Meta.
Чи потрібен застосунок або токен для Sharing Debugger?
Ні. Це публічний інструмент, і він працює для будь-якого публічного URL. Чого він не може — це працювати за розкладом або покривати каталог.
Чи коштуватиме повторне сканування мені рендеру FastOG?
Зазвичай ні. URL обкладинки походить від вмісту, тож якщо вміст не змінився, URL також не змінився, і запит потрапляє в кеш без витрат на рендер. Якщо ціна змінилася, URL змінився — це один новий рендер, і саме той, який вам потрібен.
Чи виправляє повторне сканування Facebook мій попередній перегляд у WhatsApp?
Ні. Це окремі кеші. Дебагер Facebook усе ж варто використовувати як валідатор — він отримує сторінку так само, як це зробить WhatsApp, і повідомляє, що знайшов, — але він не може оновити кеш WhatsApp.
Як довго Facebook зберігає попередній перегляд, якщо я ніколи не надсилаю пінг?
Meta документує стандартний період повторного сканування близько 24 годин, але точний час поширення може варіюватися. Саме тому існують дебагер та програмний шлях обходу сторінок.
Чи потрібно надсилати пінг для кожного товару після імпорту каталогу?
Саме для цього існує черга. Надсилання одного запиту на товар безпосередньо в потоці виконання впреться в ліміт швидкості Meta та сповільнить запит продавця; у черзі з дедуплікацією обхід каталогу виконується без шкоди.
Що, якщо Meta відхилить запит?
Нічого не зламається. Відхилений пінг або пінг із перевищенням ліміту означає, що Facebook оновить дані за власним розкладом, а не негайно — теги на сторінці вже правильні, тому цей виклик є найкращим зусиллям, а не жорсткою залежністю.
Пов’язані матеріали
- Миттєве оновлення зображення WhatsApp для WooCommerce
- Посібник із кешування соціальних прев’ю: Facebook, WhatsApp, LinkedIn, X, Slack і Discord
- og:image не відображається? Як це виправити
- Прев’ю посилань WhatsApp не відображається? Виправте og:image
- Як кешувати OG-зображення
- Синхронізація цін WooCommerce у прев’ю WhatsApp
- Інтеграція WooCommerce: FastOG для WooCommerce