it-swarm.dev

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

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

51
FHM

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

75
genesis

Вы можете использовать отладчик объектов 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()?>" />

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

19
Aran

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

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

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

8
Matteo Bononi 'peorthyr'