Facebook Open Graph не очищает кеш

У меня возникают проблемы с моими метатегами с Open Graph. Кажется, что Facebook кэширует старые значения моих метатег. Старые значения для атрибутов og:title и og:url все еще используются, хотя я уже их уже изменил.

Я запустил Lint на страницу на моем сайте, и это появилось:

Facebook Open Graph lint screenshot

Обратите внимание, что для og:title и og:url есть два значения, а последний преобладал. Однако Последние две записи - это записи OLD, которые я использовал для этого сайта. В настоящее время я использую эти метатеги (вы можете проверить, просматриваете ли вы источник HTML):

<meta property="og:title" content="Smart og rummelig pusletaske fra Petit Amour med god plads til alt &#8211; værdi 1.099 kr &#8211; køb nu kun 599 kr   "/>
<meta property="og:description" content="Pinq.dk - Det gode liv for det halve"/>
<meta property="og:type" content="product"/>
<meta property="og:url" content="http://pinq.dk/tilbud/landsdaekkende/lissy/"/>
<meta property="og:image" content="http://pinq.dk/wp-content/themes/pinq/images/logo-top.png"/>
<meta property="og:site_name" content="Pinq" />
<meta property="fb:app_id" content="161840830532004" />

Почему кеширование Facebook og:title и og:url? Кто-нибудь испытывает ту же проблему?

Ответ 1

<сильные > Примеры:

  • http://www.example.com?fbrefresh=CAN_BE_ANYTHING
  • http://www.example.com?postid=1234&fbrefresh=CAN_BE_ANYTHING
  • ИЛИ посетите: http://developers.facebook.com/tools/debug/og/object?q=http://www.example.com/?p=3568&fbrefresh=89127348912

У меня была такая же проблема прошлой ночью, и я получил это решение с какого-то веб-сайта.

Facebook сохраняет миниатюру кэша. Он не обновится, даже если вы удалите thumnail/image с вашего сервера. Но Facebook позволяет обновить, используя fbrefresh

Надеюсь, это поможет.

Ответ 2

Самый проголосовавший вопрос довольно устарел:

Это единственные 2 варианта, которые должны использоваться как Ноябрь 2014:

Для не-разработчиков

  • Используйте отладчик FB: https://developers.facebook.com/tools/debug/og/object
  • Вставьте URL-адрес, который вы хотите обновить. (Убедитесь, что вы используете тот же url, который включен в ваш тег og: url)
  • Еще раз нажмите на значок Fetch Scrape. Кнопка

Для разработчиков

Дополнительная информация об обновлении изображений

  • Если URL-адрес og: image остается тем же, но изображение фактически изменилось, оно не будет обновляться и не будет очищено скреперами Facebook даже при выполнении вышеуказанного. (даже прохождение a last_update = [TIMESTAMP] в конце изображения не работает для меня).
  • Единственным эффективным решением для меня было назначение нового имени для изображения.

Замечание относительно обновлений изображений или видео на ранее размещенные сообщения:

  • Когда вы вызываете отладчик для смены изменений на ваших og: тегах вашей страницы, все предыдущие акции Facebook этого URL-адреса будут по-прежнему показывать старое изображение/видео. Невозможно обновить все предыдущие сообщения, и таким образом, по соображениям безопасности. В противном случае кто-то сможет притвориться, что пользователь поделился тем, что он/она фактически не сделал.

Ответ 3

Если у вас много страниц и вы не хотите обновлять их вручную - вы можете сделать это автоматически.

Предположим, у вас есть страница профиля пользователя с фотографией:

$url = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_profile;
$user_photo = 'http://'.$_SERVER['HTTP_HOST'].'/'.$user_photo;

<meta property="og:url" content="<?php echo $url; ?>"/>
<meta property="og:image" content="<?php echo $user_photo; ?>"

Просто добавьте это на свою страницу:

// with jQuery
$.post(
    'https://graph.facebook.com',
    {
        id: '<?php echo $url; ?>',
        scrape: true
    },
    function(response){
        console.log(response);
    }
);

// with "vanilla" javascript
var fbxhr = new XMLHttpRequest();
fbxhr.open("POST", "https://graph.facebook.com", true);
fbxhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
fbxhr.send("id=<?php echo $url; ?>&scrape=true");

Это обновит кеш Facebook. Если вы используете решение jQuery, посмотрите "ответ" в console.log - вы найдете там поле "updated_time" и другую полезную информацию.

Ответ 4

Миниатюра OG, похоже, не обновляется даже при передаче переменной fbrefresh. Чтобы обновить это, не дожидаясь автоматической очистки, вам нужно будет изменить имя файла метафайла, связанного с миниатюрами, и обновить его.

Ответ 5

У меня были те же проблемы, что и при использовании og:image, несколько попыток переименования файла или очистки кеша FB не работали ни с помощью отладчика facebook, ни с помощью проверки подлинности.

В новых руководствах facebook размер изображения должен быть 1200 x 630 или с таким соотношением сторон, это кажется неправильным, единственное, что сработало для меня, - это использование изображения с квадратными размерами.

Изменить *. Несколько часов назад я вернулся к использованию 1200 x 630, и он волшебным образом работал, это было волшебным.

Я также переименовал файлы в файл f * ^ * kfacebook.jpg, но не уверен, что он помог, но он чувствовал себя хорошо.

Ответ 6

В принципе, ответ - терпение;)

Я проверил Linter сегодня утром, а og: title и og: url отображается правильно, без избыточных значений. Я думаю, что FaceBook автоматически очищает свой кеш за определенный промежуток времени. Мне просто нужно подождать.

enter image description here

Ответ 7

Мы просто столкнулись с этим, как оказалось, мы не набирали правильный url, так как у реального url была строка запроса (duh, другая страница в отношении бота).

http://example.com/

! ==

http://example.com/?utm_campaign=foo

ЛИНТЕР перечитает вашу страницу, вам не придется ждать.

Ответ 9

Ooook, наконец, это помогло (я использую IP.Board). Что мне нужно было сделать:

  • Измените URL-адрес og: image на моем веб-сайте (общая конфигурация).
  • Попробуйте этот метод с? fbrefresh = 1154464gd56

Спасибо автору за эту тему!

EDIT: что еще нужно помнить о требованиях к изображению. На данный момент (январь 2013) это:  - не менее 200 px в обоих направлениях  - максимальное соотношение 3: 1

Ответ 11

Одна вещь для добавления, URL-адрес чувствителен к регистру. Обратите внимание:

apps.facebook.com/ ПРИВЕТ

отличается в линзовых глазах, тогда

apps.facebook.com/ привет

Обязательно используйте точный URL сайта, который был введен в настройках разработчика для приложения. ЛИНТЕР вернет свойства в противном случае, но не обновит кеш.

Ответ 12

Прошу прощения, но правильный ответ:

Нет никакого дурацкого способа обновить открытый график og: image url с немедленным результатом. Он кэшируется до обновления fb (как сообщается, каждые 24 часа)

Вот что было сказано для работы другими, но у меня был успех ZERO с любым из них.

  • Выбор "Получить новую информацию о царапинах"
  • Изменение фактического имени файла изображения и/или удаление оригинала
  • Добавление строки запроса в URL-адрес изображения путем добавления PHP TIMESTAMP или? anything
  • Добавление строки запроса "... yoursite.com/?fbrefresh=anything" в URL-адрес отладчика
  • Выбор ссылки API графика внизу страницы og dev
  • Выбрав именно то, что видит скребок, похоже, не запрашивает данные кэширования в режиме реального времени, он все еще показывает URL-адрес кэшированного изображения, даже если файл больше не существует.

Проверка вашего кода - это всегда пятно на пути подтверждения, что это не проблема с кешем браузера или некоторой службой кеширования. Если мета-информация обновлена ​​в вашем коде, и вы пробовали все вышеперечисленное (если другое предложение не приносит плода), правильный ответ заключается в том, что вы можете ничего не делать, кроме как ждать.

Ответ 13

Я узнал, что если ваше изображение 72dpi, оно даст вам ошибку размера изображения. Вместо этого используйте 96dpi. Надеюсь, это поможет.

Ответ 14

  • Перейдите к http://developers.facebook.com/tools/debug

  • Вставить в URL-адрес страницы и нажать кнопку отладки. Если на вашем сайте используются псевдонимы url, убедитесь, что вы используете тот же URL-адрес, что и Facebook используется для страницы, которую вы используете (например: в Drupal используйте node/* путь вместо псевдонима, если страница используется совместно с этим URL).

  • Нажмите "Открыть предварительный просмотр" на странице "См. это в диалоговом окне общего доступа"

Ответ 15

Facebook Developer Documents говорит, что свойство title имеет исключение:

После того, как 50 действий (нравится, акции и комментарии) связаны с объект, вы не сможете обновить его название

https://developers.facebook.com/docs/sharing/opengraph/using-objects#update

Ответ 16

Имел подобный опыт. Ссылка сайта показывала 404 в предварительном просмотре, который генерировал facebook. Оказывается, метаданные og: url ошибочны. Мы уже исправили это несколько дней назад, но все еще видели 404 в предварительном просмотре. Мы использовали инструмент в https://developers.facebook.com/tools/debug/ и заставили обновить (кстати, не нужно было добавлять какие-либо параметры) В нашем случае Facebook не обновлял кеш через 24 часа, но инструмент помог ему в этом.

Ответ 17

Это кеш, из которого он обновляется, что кеш-память делает время от времени. Таким образом, ожидание в конечном итоге будет работать, но иногда вам нужно сделать это быстрее. Изменение имени файла работает.

Ответ 18

У меня тоже была эта проблема. Скребок показывает правильную информацию, но URL-адрес общего доступа по-прежнему заполнен старыми данными.

То, как я это обошлось, это использовать метод фида вместо совместного использования, а затем вручную заполнить данные (которые не отображаются с помощью метода share)

Что-то вроде этого:

shareToFB = () => {
    window.FB.ui({
    method: 'feed',
    link: `signup.yourdomain.com/?referrer=${this.props.subscriber.sid}`,
    name: 'THIS WILL OVERRIDE OG:TITLE TAG',
    description: 'THIS WILL OVERRIDE OG:DESCRIPTION TAG',
    caption: 'THIS WILL OVERRIDE THE OG:URL TAG'
  });
};

Ответ 19

Для меня все решения не работали. Я узнал, если вы используете Wordpress с Yoast SEO, тогда вам нужно обновить эти два тега:

<meta property="article:modified_time" content="2017-09-29T00:37:33+02:00" />
<meta property="og:updated_time" content="2017-09-29T00:37:33+02:00" />

Чтобы обновить значения, вы должны внести любые изменения в статью. Если вы не измените эту дату, кэш Facebook не обновится.

Вы также можете отключить эти дополнительные теги, добавив фильтры в functions.php:

add_filter( 'wpseo_og_article_published_time', '__return_false' );
add_filter( 'wpseo_og_article_modified_time', '__return_false' );
add_filter( 'wpseo_og_og_updated_time', '__return_false' );

Ответ 20

Действительно легко решить. Проверено и работает. Вам просто нужно сгенерировать новый URL при обновлении ваших метатегов. Это так же просто, как добавить "& cacheBuster = 1" к вашему URL. Если вы измените метатеги, просто увеличьте "& cacheBuster = 2"

Оригинальный URL

www.example.com

URL-адрес при обновлении метатегов og:

www.example.com?cacheBuster=1

URL-адрес при повторном обновлении метатегов og:

www.example.com?cacheBuster=2

Facebook будет относиться к каждому как к новому URL и получать свежие метаданные.

Ответ 21

Годы спустя, и это все еще распространенная проблема, но это не всегда кеш Facebook: это очень часто человеческая ошибка (позвольте мне уточнить)

ОГ: ТИП влияет на чистку изображения:

  1. https://ogp.me/#type_article  не такой как https://ogp.me/#type_website

Имейте в виду, что og: type = website приведет к тому, что любые/подстраницы/этого URL станут "каноническими". Это означает, что у вас будут проблемы с обновлением изображений с помощью скребка независимо от того, что вы делаете.

Считайте, что это "предположение и распространенная ошибка"

- <meta property="og:type" content="website" /> => https://www.example.org (родитель)
 - <meta property="og:type" content="website" /> => https://www.example.org/sub-page/
 - <meta property="og:type" content="website" /> => https://www.example.org/sub-page/child-2/
 - Ergo: /sub-page/ и /child-2/ унаследуют og:image родителя

Это не "все сайты", 1 сайт, остальные статьи.

Если вы сделаете это, Facebook сочтет все это каноническими и поместит в них ПЕРВОЕ изображение og :. (попробуйте, вы увидите) - если вы установите og: url в качестве корневого или родительского домена, вы сказали Facebook, что все они канонические. (для этого есть веская причина, но это не по теме)

Рассмотрим это решение (это то, что большинство людей "действительно хотят")

- <meta property="og:type" content="article" /> => https://www.example.org/sub-page/
 - <meta property="og:type" content="article" /> => https://www.example.org/sub-page/child-2/

Если вы сделаете это сейчас, Facebook даст вам гораздо меньше проблем с очисткой ваших НОВЫХ изображений.

В заключение, ДА, здесь могут работать блоки кеша, случайные переменные, изменяющиеся URL-адреса и предложения, но они будут выглядеть как "прерывистое вуду", если og:type не указан правильно.

PS: помните, что CDN или серверный кеш будет служить скребку Facebook, даже если вы "думаете", что можете увидеть самую последнюю версию. (Я не буду тратить на это какое-либо время, кроме как на то, чтобы указать, что оно потратит колоссальное количество вашего времени, если не будет проверено дважды)