Page promo image

Как сбросить кэш Facebook

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

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

Суть в том, что Facebook, как и все остальные сети, пытается сформировать блок заметки, которой Вы (посетители Вашего сайта) хотите поделится/лайкнуть, на основании содержимого и мета-разметки этой самой страницы, которой вы хотите поделиться или лайкнуть. Но Facebook загружает эту страницу себе в кэш при первом к ней обращении, и если Вы или кто-то другой со временем тоже пожелает поделиться или лайкнуть эту страницу, Facebook не "пойдет" за ней на сайт-источник, он загрузит ее из своего кэша. Логика тут понятна - быстрее "взять" страницу из своей базы по ее адресу, чем грузить ее с сайта источника. Но такой подход очень сильно мешает, если Вы обновили картинку(и) на сайте, которые должны использоваться в качестве иконки/промо изображения к странице, изменили текст краткого описания или тайтл страницы, а такое при отладке происходит довольно часто - иногда бывает, что выбранное Вами изображение не совсем адекватно форматируется соцсетью при создании превьюшки, и необходимо его заменить а другое или изменить его исходые размеры и т.д.

"Благодаря" кэшу, Facebook, как бы мы не изменяли разметку или содержимое страницы, после своего первого посещения целевой страницы игнорирует дальнейшие изменения на ней. 

Решение проблемы с кэшем Facebook

Если вы столкнулись с проблемой, для сброса кэша Facebook есть два решения:

  1. Подсунуть для расшаривания/лайканья немного видоизмененный URL, например, добавив произвольный GET-параметр в адрес, типа ?revision=2. Хоть это и позволит добиться результата, но это как говорится - "не айс", особенно если к этому адресу будет привязан и счетчик, который на данный момент имеет не нулевое значение - он просто обнулится.
  2. Более идейно правильным путем будет использование отладчика Opeg Graph объектов Facebook. Этот инструмент позволяет разработчикам проверять как Facebook "видит" ваши те или иные страницы. Так, при первом запросе информации, о интересующей Вас странице в фоме (см. рисунок ниже)
     
    Facebook devtool form
    Вид стартовой формы отладчика Opeg Graph объектов Facebook 

    После того как вы нажмете на кнопку "Debug", Facebook пердоставит Вам информацио о запрошенной странице на основании данных, которые есть у него в кэше, и только если таковых нет - "пойдет" за содержимым страницы на сам сайт. В результате всех этих манипуляций Facebook покажет вам страницу со сводными данными по интересующей нас странице сайта, в том виде как "видит" их он. Также этот инструмент даст нам возможность обновить данные о целевой странице: в начале формы, под полем адреса запрашиваемой страницы вы увидите кнопку "Fetch new scrape information"
    Facebook og object debug tool form - step 2
    Вид формы запроса информации о страницы с кнопкой обновления информации в кэше Facebook
comments powered by Disqus