Facebook нравится - показ кешированной версии og: изображение, способ обновления или переиндексации? - программирование
Подтвердить что ты не робот

Facebook нравится - показ кешированной версии og: изображение, способ обновления или переиндексации?

У вас возникла проблема с Facebook и кешированием og: image.

Короче говоря: Facebook кэшировал более старую версию нашего подобного изображения. URL-адрес метаданных не может быть изменен. Есть ли что-нибудь, что я могу сделать, чтобы обновить его?

Длинная история: На сайте, над которым я работаю, есть метатег для og: image, который Facebook использует, когда страница нравится. Этот метатег использует один и тот же URL изображения на всех страницах сайта. Изображение является просто брендинговым изображением для сайта.

Проблема заключается в том, что сайт недавно обновил свой брендинг, и мы не можем обновить изображение как Facebook. Когда пользователь нажимает подобную ссылку, итоговая публикация в Facebook по-прежнему показывает старое изображение брендинга.

Метатег похож на:

<meta property="og:image" content="http://[domain].com/images/bookmark/apple-touch-icon.png"/>

Всякий раз, когда это похоже на Facebook, URL-адрес изображения изменяется на URL-адрес кэшированного Facebook, аналогичный этому:

http://external.ak.fbcdn.net/safe_image.php?d=AQDajxm-qgVNdfEL&w=90&h=90&url=http%3A%2F%2F[domain].com%2Fimages%2Fbookmark%2Fapple-touch-icon.png

В этом URL-адресе отображается более ранняя версия брендинга сайта. Прошло более недели, и он еще не обновился.

Есть ли способ заставить Facebook переиндексировать изображение/очистить кеш? Или, Facebook периодически делает это автоматически? Я не мог найти соответствующую информацию об этом.

Я знаю, что изменение URL-адреса в метатеге может устранить проблему, но метатег генерируется кодом, используемым на нескольких сайтах, и его нельзя изменить. Я также попробовал инструмент делителя, как это было предложено мне другими. Не повезло.

4b9b3361

Ответ 1

Вставьте свой URL в свой linter и он должен перезагрузить его кеш

Ответ 2

Вы можете использовать отладчик объектов Facebook, который позволит вам ввести URL-адрес страницы, а затем на следующей странице вы можете повторно отправить его в запросе "Получить новую информацию о царапинах". Это очистит кеш Facebook для данного URL-адреса - не то, что может потребоваться некоторое время для распространения вокруг всех их узлов кэша.

Отладка объектов Facebook можно найти здесь: https://developers.facebook.com/tools/debug/

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

Оказывается, вы можете указать последнюю измененную временную метку (в формате timestamp unix), чтобы гарантировать, что при сканировании FB вашего сайта он всегда получает правильное изображение.

Это можно сделать, включив следующий метатег OG:

Для динамических сайтов вам нужно создать значение содержимого - с помощью PHP текущая временная метка unix может быть вставлена ​​следующим образом:

<meta property="og:updated_time" content="<?=time()?>" />

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

Ответ 3

Я считаю возможным решение... что, если вы добавите в конце URL-адреса случайную строку?

как www.server.com/something.php?v=<?php echo rand() ?> или www.server.com/something.jpg?v=<?php echo rand() ?>

Я думаю, что объект facebook cahce зависит от URL-адреса... изменить его случайным образом... может помочь.

Ответ 4

Спустя 7 лет после того, как этот пост был сделан, и это все еще проблема, но это не кеш 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, даже если вы "думаете", что можете увидеть самую последнюю версию. (Я не буду тратить на это какое-либо время, кроме как на то, чтобы указать, что оно потратит колоссальное количество вашего времени, если не будет проверено дважды)

Ответ 5

  1. Измените URL-адрес изображения og: при обновлении изображения

пример

<meta property="og:image"         content="https://abc.lk/img/share-english.jpg" />

в

<meta property="og:image"         content="https://abc.lk/img/share-english-1.jpg" />
  1. перейти к https://developers.facebook.com/tools/debug/sharing

  2. Добавить URL - нажмите отладку

  3. Проверьте время Scraped и нажмите Scrape снова