Pular para o conteúdo
Contentin
ContentinCadastre-se

Runbook

Verificação de backlinks de página na publicação, passo a passo

Um webhook, uma chamada HTTP, uma decisão. Este runbook guia uma equipe de CMS headless pelo gatilho, pelas chamadas e pelos casos de falha.

Ponte em miniatura isométrica com braço robótico conectando plataformas e pilares de pedra

Decida o que o gate pode fazer

Uma verificação de backlinks de página dentro de um fluxo de lançamento é uma tarefa pequena. Mantenha-a pequena. A parte difícil é decidir qual resposta é permitida alterar, pois um grafo de links que é atualizado mensalmente não pode vetar uma página por conta própria.

Sugerimos que o gate emita um aviso, registre o log e permita que a compilação continue. Os padrões podem mudar. Bloqueios rígidos pertencem a coisas que você controla, como marcação quebrada ou tag canonical ausente. Dados de links são um sinal, e sinais mudam.

Escreva a política. Faça isso antes de codificar. Uma política de uma linha como "avisar o editor, marcar a entrada, nunca interromper o deploy" economiza uma longa discussão às 18h de um dia de lançamento. Também diz ao próximo engenheiro quais falhas foram intencionais e quais foram bugs, o que é mais importante do que parece. Revise-a uma vez por trimestre.

Seis etapas do clique de publicação à nota armazenada

  1. 1

    Escolha o gatilho

    Inscreva-se no evento de publicação do seu CMS. Contentful, Sanity e Strapi podem chamar uma URL de sua propriedade quando uma entrada é publicada, e Storyblok e Payload também oferecem webhooks ou hooks. Filtre pelos tipos de conteúdo que contêm URLs de saída ou canônicos.

  2. 2

    Reduza a URL para um domínio

    A API espera um domínio no parâmetro q, então https://www.example.com/blog/post?x=1 precisa se tornar example.com primeiro. Decida de uma vez como você trata o www e teste um domínio real na ação domain gratuita antes de construir qualquer coisa.

  3. 3

    Chame a ação gratuita primeiro

    overview não custa nada. Se o retorno for escasso, o domínio pode ser novo ou simplesmente desconhecido para nosso índice. Isso não é prova de nada ruim.

  4. 4

    Gaste créditos apenas quando uma regra disparar

    Quando sua regra indicar para olhar mais de perto, chame backlinks com per=100. Custa 2 créditos, independentemente do número de linhas, então solicite uma página útil de linhas em vez de dez pequenas.

  5. 5

    Escreva uma nota, não o JSON bruto

    Armazene um veredito curto em um campo seu, além da data da verificação. Respostas brutas incham as entradas e envelhecem mal, já que o índice muda todo mês.

  6. 6

    Falha suave

    HTTP 401 significa que a chave está ausente ou errada, então alerte um humano. HTTP 402 significa que os créditos acabaram. Qualquer outro erro: registre o log, pule a verificação e permita que a publicação continue.

Cofre seguro com chave dourada e tubo de vidro contendo líquido azul

Onde a chave está e o que um 402 deve fazer

Toda chamada paga carrega sua chave, seja na string de consulta ou em um cabeçalho Bearer. Prefira o cabeçalho. Uma string de consulta pode acabar nos logs do servidor e nos rastros de proxy, enquanto um cabeçalho geralmente fica fora deles.

Armazene a chave como um segredo na sua plataforma de hospedagem, nunca na entrada. Editores podem ler qualquer campo que consigam abrir, mas o ambiente de uma função geralmente é visível apenas para as pessoas que gerenciam os deploys.

Onde a chave deve viver?

Uma chave que vaza pode gastar o saldo da sua conta, então trate-a como uma senha. Mantenha-a fora do repositório e do CMS, e faça a rotação se um arquivo de log mostrar a chave em texto puro.

Marque seus logs com o nome do hook. O gasto fica fácil de rastrear até uma função, mesmo quando vários hooks compartilham a mesma conta.

Uma ferramenta no-code pode fazer a chamada?

Sim, quando a ferramenta tem uma etapa de solicitação HTTP simples. Muitos construtores de automação podem enviar um GET com uma string de consulta e ler o JSON de volta, então a ação gratuita de overview não precisa de código.

Comece apenas com as ações gratuitas. Um fluxo que dispara a cada salvamento de rascunho pode gastar créditos mais rápido do que um editor percebe, então adicione uma etapa paga apenas quando as chamadas gratuitas tiverem rodado silenciosamente por um tempo.

O que um 402 deve disparar?

Um 402 significa que o saldo está zerado. Isso não diz nada sobre a página. Pule a verificação paga, registre o evento e envie um alerta para quem recarrega a conta, depois permita que a publicação continue.

Defina um alarme de saldo bem acima de zero, para que o aviso chegue enquanto ainda há tempo para recarregar. Um loop de retry não ajudará aqui, pois toda chamada falhará da mesma forma até que alguém adicione crédito. A tabela de custos tem os valores.

Teste as duas chamadas a partir de um terminal

Execute estas uma vez contra um domínio que você conhece antes que o hook faça isso por você. Leia o campo _credits na segunda resposta.

bash
# free, no key
curl -s "https://contentin.app/api.php?action=overview&q=example.com"

# 2 credits, key in a header
curl -s -H "Authorization: Bearer sk_live_..." \
  "https://contentin.app/api.php?action=backlinks&q=example.com&per=100"

Qual domínio vai para o parâmetro q

A API espera um domínio nu em q, então uma URL completa precisa ser reduzida primeiro. Escreva essa redução uma vez, em uma função. Depois, teste-a em URLs reais.

Links relativos e esquemas ausentes são os casos que geralmente quebram um hook. Uma redução que funciona em exemplos limpos ainda pode falhar nas URLs confusas que um editor cola às 17h.

O www muda a resposta?

Pode, e a maneira honesta de descobrir é perguntar. Execute a ação de domínio gratuita em ambas as formas de um site que você conhece, depois compare as duas respostas lado a lado.

Qualquer que seja a regra escolhida, escreva-a em um comentário de código para que o próximo engenheiro não precise adivinhar. Um comentário não custa nada e economiza uma longa discussão depois.

E quanto a redirecionamentos e subdomínios?

Envie o host onde seus leitores realmente chegam, não o link que um editor colou anos atrás. Se esse link redirecionar, reduza o endereço final e ignore a parada intermediária.

Um blog em seu próprio subdomínio é uma questão de julgamento. Decida antecipadamente se ele é verificado sozinho ou junto com seu domínio pai, e anote essa escolha ao lado da regra.

Lista de verificação pré-lançamento para o hook

  • O hook dispara apenas na publicação, não em cada salvamento de rascunho
  • A URL é reduzida para um domínio nu antes da chamada
  • Ações gratuitas são executadas primeiro e os créditos são gastos apenas em um sinalizador
  • Um 401 e um 402 têm seu próprio alerta e sua própria mensagem
  • Um tempo limite é definido, para que uma API lenta nunca trave um editor
  • A nota armazenada carrega uma data, para que ninguém a confunda com dados em tempo real
  • A mesma entrada publicada duas vezes não é cobrada duas vezes (veja a lista de mitos)
  • Alguém leu a tabela de custos para seu volume mensal
Banco de oficina com trabalhador deixando pedra cair em uma bandeja de coleta e engrenagem

O que registrar, e o que fica fora da entrada

Uma linha de log para cada verificação pulada é o rastro de auditoria mais barato que você pode construir. Registre o ID da entrada, o domínio que você enviou, o código de status e se uma etapa paga foi executada. Geralmente, isso é suficiente.

A nota armazenada permanece curta e datada, como dizem as etapas acima. Respostas completas pertencem aos seus próprios logs, se pertencerem a algum lugar, porque são grandes e envelhecem rapidamente.

Quais campos pertencem a uma linha de log?

Comece com o ID da entrada e a versão de publicação. Um webhook repetido aparecerá como o mesmo par duas vezes, que é exatamente o que você quer ver.

Adicione o domínio, o nome da ação, o código de status e a hora em que a chamada começou. Deixe a chave fora, já que um log que a contém se torna um segundo lugar onde segredos vivem.

Por quanto tempo uma nota armazenada deve viver?

Enquanto a entrada existir, a menos que uma verificação mais nova a substitua. O que importa é que um leitor possa saber há quanto tempo a nota foi feita, porque uma nota de meses atrás parece dados em tempo real.

O guia do campo score mostra os quatro campos que sugerimos para essa nota, incluindo a data.

Teste o hook na staging antes do lançamento

Execute essas quatro verificações antes que alguém confie no hook.

  1. 1

    Reproduza uma publicação passada

    Acione o hook com uma cópia de uma entrada que você já publicou. Compare a nota armazenada com o que você esperava e confirme que a mesma entrada não foi cobrada duas vezes.

  2. 2

    Tente um domínio registrado recentemente

    Use um domínio de parceiro que é novo para você. Uma resposta vazia ou escassa deve ser armazenada como desconhecida, não como uma falha, e a nota deve dizer isso em palavras claras.

  3. 3

    Force um 402 propositalmente

    Execute o hook com uma chave em uma conta de teste cujo saldo você esvaziou. Confirme que o skip, a linha de log e o alerta todos disparam, e que a publicação ainda chega à compilação.

  4. 4

    Leia a mensagem que o editor vê

    Peça a alguém de fora da equipe para ler o texto do erro em voz alta. Se eles não conseguirem dizer o que fazer a seguir, reescreva a mensagem antes do dia do lançamento. O post-mortem mostra o que uma mensagem vaga custou a uma equipe inventada.

O que o hook não pode ver

Nosso índice é atualizado aproximadamente uma vez por mês. Um link adicionado após a última atualização não aparecerá, e um link removido desde então ainda pode aparecer. Para prova no mesmo dia, use o relatório Links no Google Search Console.