Как в Facebook - показывает кэшированную версию og: изображение, способ обновить или переиндексировать его? - PullRequest
52 голосов
/ 27 сентября 2011

Наличие проблемы с Facebook, как и кэшированный og: image.

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

Длинная история: На сайте, над которым я работаю, есть метатег для изображения og:, которое 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-адреса в метатеге может решить проблему, но метатег генерируется кодом, используемым на нескольких сайтах, и его нельзя изменить. Я также попробовал инструмент делинтера, как мне предлагали другие. Неудачно.

Ответы [ 3 ]

75 голосов
/ 27 сентября 2011

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

20 голосов
/ 24 июня 2015

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

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

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

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

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

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

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

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

8 голосов
/ 14 мая 2013

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

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

я думаю, Facebook Cahceобъект в зависимости от URL ... изменить его случайно ... может помочь.

...