Forçar uma Atualização da Cache do Open Graph do Facebook

Pode forçar uma atualização da cache do Open Graph do Facebook, porque o Facebook — sozinho entre as principais plataformas — expõe uma forma programática de o pedir. Ou use o botão Scrape Again do Sharing Debugger para um único link, ou chame o endpoint de scrape da Graph API com um token de acesso de aplicação. Não há forma de forçar o WhatsApp, o LinkedIn ou o X: eles não publicam tal API, para ninguém.

O que engana toda a gente

A Meta guarda em cache uma pré-visualização de link com base no URL da página e armazena a sua própria cópia da imagem. Não volta a ler a sua página para detetar que og:image agora aponta para outro sítio.

Portanto, este fluxo falha, e é o que a maioria das pessoas tenta:

Alterar a imagem de capa → o URL og:image é novo → assumir que o Facebook a vai detetar → não deteta.

Um novo URL de imagem quebra a cache da CDN de imagens. Não faz nada à cache da Meta baseada no URL da página. Para mover o Facebook, tem de dizer à Meta que a página mudou.

Cache Baseada em Limpa por
Cache da sua página / CDN o URL da página purgar a cache
Cache de pré-visualização de links da Meta o URL da página o endpoint de scraping ou o Sharing Debugger
Cópia da imagem na Meta o URL da imagem um novo URL de imagem
A sua CDN de imagens o URL da imagem um novo URL de imagem

Opção 1 — o Sharing Debugger (uma página, manual)

Abra developers.facebook.com/tools/debug, cole o URL da página e prima Scrape Again. A Meta volta a obter a página e reconstrói a pré-visualização em cache.

É também o melhor validador gratuito que tem, porque reporta o que a Meta efetivamente encontrou, em vez do que esperava que lá estivesse: og:image em falta ou duplicados, imagens inacessíveis, formatos não suportados. Duas coisas que não faz: não consegue lidar com o WhatsApp (cache separada, na aplicação do destinatário) e não é uma ferramenta de catálogo — processa um URL de cada vez, com limite de pedidos, e requer uma pessoa à frente.

Opção 2 — a Graph API (é isto que um plugin chama)

O equivalente programático utilizado pela FastOG é um POST para a Graph API com scrape=true:

bash
curl -X POST \
  "https://graph.facebook.com/v21.0/?id=$(python3 -c 'import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1],safe=""))' 'https://your-store.com/product/example')&scrape=true&access_token=${APP_ID}|${APP_SECRET}"

Quatro detalhes que importam:

  • id é o URL da página, não o URL da imagem. A Meta associa a cache à página, por isso enviar um pedido para o endereço da imagem não atualiza nada.
  • É necessário um token — a Meta exige um neste endpoint desde outubro de 2017. Um token de acesso de aplicação no formato {app_id}|{app_secret} é suficiente e não requer login de utilizador, o que é exatamente o que torna a chamada possível a partir de uma tarefa em segundo plano.
  • As versões da Graph API mudam. A FastOG fixa uma versão testada da Graph API; consulte a documentação atual e o changelog da Meta antes de fixar uma versão no seu próprio código.
  • Trate isto como best-effort. A Meta limita a taxa de chamadas de scraping, e uma recusa significa apenas que o Facebook atualiza no seu próprio ritmo em vez de imediatamente — as tags na sua página já estão corretas.

Como existe limite de taxa, não dispare isto inline em cada gravação de um catálogo grande. Coloque-o numa fila e remova duplicados por URL, para que gravações repetidas do mesmo produto inalterado não gastem o limite de taxa.

Opção 3 — um plugin que trata disso por si

Os plugins comercializados como "atualização de cache do Open Graph" dividem-se em dois grupos, e apenas um deles consegue corrigir o Facebook:

Mecanismo O que limpa Corrige uma pré-visualização desatualizada do Facebook?
Acrescenta uma query string variável ao URL da imagem (?v=timestamp) o seu CDN de imagens Não — a cache da Meta está associada à página
Chama o endpoint de scrape para o URL da página a cache de pré-visualização da Meta Sim

Antes de instalar um, verifique qual dos dois é. Um parâmetro de timestamp é uma correção real para uma imagem desatualizada e uma não-correção para um cartão do Facebook desatualizado.

O FastOG para WooCommerce faz o segundo, e não configura nada. O plugin regista os webhooks nativos de produtos do WooCommerce, pelo que guardar um produto aciona um novo scrape da Meta para o permalink desse produto — em fila, com deduplicação numa janela curta, e best-effort por conceção, para que uma recusa nunca faça falhar o guardar. Aplica-se a páginas de produto (product.created / product.updated); edições de categorias e blogues não estão abrangidas.

O lado da imagem é tratado separadamente, e de forma diferente de todos os concorrentes: como um URL de capa do FastOG contém os valores que o produziram, editar o preço ou a foto gera um novo URL de capa. A Meta não pode voltar a servir uma imagem cujo endereço já não existe.

Onde o Facebook não chega

Plataforma Consegue forçar uma atualização? O que acontece na prática
Facebook Sim — depurador ou scrape=true Solicita uma nova leitura; o tempo de propagação varia
WhatsApp Não A pré-visualização fica em cache na aplicação do destinatário; não existe API
LinkedIn Sem API programática documentada Relê segundo o seu próprio calendário; não é dada aqui qualquer garantia pública de tempo
X / Twitter Sem API programática documentada Relê segundo o seu próprio calendário; não é dada aqui qualquer garantia pública de tempo
Slack, Discord Não Caches de curta duração que se limpam sozinhos em minutos ou horas

Se uma pré-visualização estiver desatualizada no WhatsApp, a resposta não é uma ferramenta do Facebook — é acertar no lado da loja para que a próxima leitura fique correta.

Quando ainda mostra a imagem antiga após um scrape bem-sucedido

Percorra esta lista, por ordem:

  1. A página ainda está a servir a tag antiga? curl -s https://your-store.com/product/example | grep -i 'og:image' — uma página HTML em cache com um og:image desatualizado invalida o scrape por completo. Limpe a cache da página.
  2. A página imprime mais do que um og:image? Se dois plugins emitirem um cada, o crawler assume o primeiro que lê. Conte-os.
  3. A imagem está acessível e não está bloqueada? curl -I <image-url> deve devolver 200 com um Content-Type de imagem. Os crawlers sociais respeitam robots.txt, pelo que uma imagem num caminho Disallow: falha de uma forma que parece um ficheiro corrompido — e curl nunca o reproduzirá, porque curl ignora robots.txt.
  4. O URL da imagem mudou mesmo? Se não mudou, o conteúdo também não mudou — verifique se a edição do preço/foto chegou à fonte a partir da qual o cartão é gerado.
  5. Verifique novamente o debugger. Se agora reportar a nova imagem e o Facebook ainda mostrar o cartão antigo, está a ver a propagação do próprio Facebook, não as suas tags.

FAQ

Existe uma API oficial para limpar a cache do Open Graph do Facebook?

A FastOG utiliza o endpoint de scrape (POST https://graph.facebook.com/{version}/?id={page-url}&scrape=true&access_token={token}). A Meta documenta o fluxo do Sharing Debugger e do rastreamento programático; a forma exata do endpoint e a versão da Graph API podem mudar, por isso verifique-os na documentação atual da Meta antes de implementar isso por conta própria.

O Sharing Debugger precisa de uma app ou de um token?

Não. É uma ferramenta pública e funciona para qualquer URL público. O que não consegue fazer é executar numa agenda ou cobrir um catálogo.

Voltar a fazer scrape vai custar-me um render da FastOG?

Normalmente não. Um URL de capa é derivado do conteúdo, por isso, se o conteúdo não mudou, o URL também não mudou, e o fetch é um acerto de cache que não custa nenhum render. Se o preço mudou, o URL mudou — isso é um novo render, e é o render que pretendia.

Voltar a fazer scrape no Facebook corrige a minha pré-visualização no WhatsApp?

Não. São caches separadas. O debugger do Facebook continua a valer a pena como validador — ele faz fetch da página da mesma forma que o WhatsApp fará e reporta o que encontrou — mas não consegue atualizar o WhatsApp.

Durante quanto tempo o Facebook mantém uma pré-visualização se eu nunca a atualizar?

A Meta documenta um período padrão de re-scrape de cerca de 24 horas, mas o tempo exato de propagação pode variar. É por isso que existem o debugger e o caminho de rastreamento programático.

Tenho de atualizar cada produto depois de uma importação de catálogo?

É para isso que serve a fila. Enviar um pedido por produto inline vai atingir o limite de taxa da Meta e atrasar o pedido do comerciante; em fila e desduplicado, uma varredura de catálogo escoa sem problemas.

E se a Meta recusar o pedido?

Nada se parte. Um ping recusado ou limitado por taxa significa que o Facebook atualiza no seu próprio horário em vez de imediatamente — as tags na página já estão corretas, que é o motivo pelo qual a chamada é best-effort em vez de uma dependência rígida.

Experimente gratuitamente — sem necessidade de registo

Pré-visualize e teste imagens OG dinâmicas em segundos.

Abrir o Testador Gratuito de Imagens OG

From Us

A BeCaSimulations site