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:
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 |
|---|---|---|
Sim — depurador ou scrape=true |
Solicita uma nova leitura; o tempo de propagação varia | |
| Não | A pré-visualização fica em cache na aplicação do destinatário; não existe API | |
| 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:
- 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 umog:imagedesatualizado invalida o scrape por completo. Limpe a cache da página. - 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. - A imagem está acessível e não está bloqueada?
curl -I <image-url>deve devolver200com umContent-Typede imagem. Os crawlers sociais respeitamrobots.txt, pelo que uma imagem num caminhoDisallow:falha de uma forma que parece um ficheiro corrompido — ecurlnunca o reproduzirá, porquecurlignorarobots.txt. - 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.
- 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.
Relacionados
- Atualização Instantânea da Imagem do WhatsApp para WooCommerce
- Guia de Cache de Pré-visualização Social: Facebook, WhatsApp, LinkedIn, X, Slack e Discord
- og:image Não Aparece? Como Corrigir
- Pré-visualização de Link do WhatsApp Não Aparece? Corrija o og:image
- Como Colocar Imagens OG em Cache
- Sincronização de Preços do WooCommerce na Pré-visualização do WhatsApp
- Integração WooCommerce: FastOG para WooCommerce
Experimente gratuitamente — sem necessidade de registo
Pré-visualize e teste imagens OG dinâmicas em segundos.
Abrir o Testador Gratuito de Imagens OG