Tabela de severidade

Verificador de backlinks ruins: diferença de instantâneos no SQLite

Nenhum script pode declarar um link tóxico para você. Ele pode indicar quais domínios referenciados são novos, quais desapareceram e quais parecem estranhos o suficiente para serem lidos manualmente.

Cofre de pedra com tábuas de argila e um paquímetro de latão medindo pontos de dados

Tabela de severidade para domínios referenciados novos

Nossas próprias regras práticas para triagem, não uma definição do Google
NívelSinalAção
IgnorarDomínio novo, DR acima de 30, âncora é sua marca ou uma URL puraRegistre e siga em frente
Observe50 ou mais domínios novos em uma semana de um TLD que você nunca segmentouAbra dez deles
Observe atentamenteMesma âncora de correspondência exata em 20 ou mais domínios novosVerifique a nuvem de âncoras, encontre a origem
AjaRede com aparência de paga ou páginas hackeadas apontando para vocêDocumente; considere um arquivo de desavow apenas se você também tiver uma ação manual
AguardeUm domínio desapareceu este mêsVerifique novamente após a próxima atualização mensal

Por que fazer diferença em vez de escanear uma vez

Um único instantâneo mostra o que existe. Uma diferença mostra o que mudou, e é aí que os problemas aparecem.

O Google disse por anos, desde o lançamento do Penguin 4.0 em setembro de 2016 e novamente na atualização de spam de links de dezembro de 2022, que ele ignora principalmente links spammy em vez de puni-los. O SpamBrain faz esse trabalho. Portanto, uma inundação de lixo é mais frequentemente ruído do que uma ameaça, e a diferença poupa você principalmente de reagir ao ruído.

Mantenha seu próprio histórico. Suites sobrescrevem os deles.

Construa a tabela de histórico em quatro etapas

A diferença só funciona se cada execução terminar na mesma tabela, na mesma forma. Essas etapas mantêm isso assim.

01

Crie a tabela uma vez

Execute uma instrução create-if-not-exists com as colunas que você precisa: o dia, o domínio e a pontuação. Mantenha isso no script, para que uma nova máquina reconstrua a mesma tabela sem etapa manual.

02

Insira uma linha por domínio por dia

Use uma inserção parametrizada e confirme uma vez por execução. Uma única confirmação evita que uma falha deixe metade do dia no arquivo.

03

Proteja-se contra uma segunda execução

Exclua as linhas do dia antes de inserir, ou adicione uma chave exclusiva em dia e domínio. Uma nova execução no mesmo dia substituirá as linhas em vez de duplicá-las.

04

Compare com o dia anterior no arquivo

Escolha a data anterior mais recente com um filtro max(day), não a data de ontem. A comparação permanece correta quando uma semana foi pulada.

diff.py

Duas tabelas seriam mais organizadas. Uma é suficiente para uma configuração de hobby: uma linha por domínio por data de instantâneo.

python
import json, sqlite3, sys, datetime
db = sqlite3.connect('links.db')
db.execute('create table if not exists snap(day text, dom text, dr int)')
rows = json.load(open(sys.argv[1]))
day = datetime.date.today().isoformat()
db.executemany('insert into snap values (?,?,?)',
               [(day, r.get('domain'), r.get('dr')) for r in rows])
db.commit()
prev = db.execute('select max(day) from snap where day < ?', (day,)).fetchone()[0]
if prev:
    new = db.execute('select dom from snap where day=? except select dom from snap where day=?', (day, prev)).fetchall()
    gone = db.execute('select dom from snap where day=? except select dom from snap where day=?', (prev, day)).fetchall()
    print(len(new), 'new,', len(gone), 'gone')

Solução de problemas da diferença

SintomaCausa provávelCorreção
Centenas de 'desaparecidos' da noite para o diaA atualização do índice trocou a amostraCompare mensalmente, não diariamente
Todo domínio parece novoA tabela estava vazia ou o formato day mudouVerifique select distinct day
Coluna DR toda NULLO nome do campo da linha difere de drImprima uma linha bruta e ajuste
Duplicatas após uma nova execuçãoMesmo dia inserido duas vezesExclua esse dia primeiro, ou adicione uma chave exclusiva
Contagem abaixo de totalPaginação parou cedoCorrija o loop no manual de ações
Jardineiro observando samambaias com uma lupa para comparar padrões de crescimento

Escolhendo limites do seu próprio histórico

Um limite copiado de um post de blog é um palpite sobre o site de outra pessoa. Um verificador de backlinks ruins é apenas tão útil quanto seus limites, e seu próprio histórico diz o que é normal para o seu domínio.

Comece registrando alguns meses sem agir em nada. Deixe assentar. Então anote a oscilação semanal típica. Só depois disso é que você define os limites na tabela de severidade.

Comece com uma linha de base

Registre contagens de novos e desaparecidos para cada execução sem reagir a eles. Alguns meses de registro silencioso dão a você uma faixa que pertence ao seu domínio e de ninguém mais.

Uma vez que a linha de base exista, uma única semana ruim se destaca contra ela, e você pode explicar a diferença sem adivinhar. Esse é todo o ponto da linha de base.

Escolha um alarme por sinal

Cada sinal na tabela recebe um limite, um proprietário e uma ação. Um sinal com três alarmes é um sinal que ninguém lê, e os alarmes acabam sendo ignorados juntos.

Escreva o alarme ao lado de seu sinal no código, para que a tabela nesta página e o script nunca discordem.

Reavalie os limites a cada trimestre

Seu site cresce, e assim também seu normal. Verifique os limites a cada três meses e anote o motivo ao lado de qualquer alteração, para que o histórico se explique mais tarde.

Faroleiro varrendo o horizonte com telescópio e âncora na bancada de trabalho

Lendo a tabela de severidade na prática

A tabela é uma ajuda de triagem, não um julgamento. Cada linha diz onde olhar, e a coluna de ação evita que você busque um arquivo de desavow em pânico.

Trabalhe do topo. A maioria das semanas termina em Ignorar ou Observe. Uma linha de Observe começa alguns minutos de leitura, e uma linha de Observe atentamente começa uma revisão mais longa das âncoras. Não pule linhas porque a semana estava ocupada. Uma linha pulada é a semana em que a inundação passa despercebida.

Amostre antes de decidir

Abra dez dos domínios sinalizados e leia as páginas. Uma inundação que se revela ser um raspador de diretório é um problema diferente de uma inundação de blogs não relacionados, e apenas as páginas os distinguem.

Registre o que você decidiu

Mantenha uma linha por decisão: o domínio, o nível, o que você verificou e o que fez. A próxima pessoa a ler o log, incluindo o você futuro, obtém o raciocínio sem uma reunião.

Um resumo mensal dessas linhas leva pouco tempo e é um bom primeiro rascunho de uma revisão.

O que isso não pode dizer

Não pode provar que um link prejudica você. Ninguém fora do Google pode, e o relatório de ações manuais do Search Console é o único lugar onde uma penalidade é declarada.

Também não pode ver links mais recentes que a última atualização. Para evidências mais frescas, pergunte às pessoas que administram o site de link, ou leia seus logs do servidor para os referenciadores. Nossa nota sobre timing vai mais fundo.

Se você quer o lado das âncoras, anchor_cloud custa 2 créditos e agrupa texto por frequência, que é a maneira mais rápida de detectar uma pilha de correspondência exata.

Links que chegam entre atualizações

Qualquer coisa mais recente que a última atualização está faltando em ambos os lados da diferença. Um link que aparece e desaparece dentro de uma janela de atualização nunca aparece, é por isso que a comparação deve ser mensal.

Âncoras que parecem erradas para você

Uma diferença vê o domínio, não a frase ao redor do link. Duas âncoras idênticas em duas páginas diferentes podem significar coisas muito diferentes, então mantenha a verificação de âncora como uma etapa manual separada.

Opções de armazenamento para uma configuração de hobby

SQLite é o banco de dados mais simples que ainda responde a uma pergunta de diferença com uma consulta. Ele vive em um único arquivo, então cabe no repositório ou em uma pasta de backup sem um servidor.

Arquivos JSON datados também funcionam. É mais lento para consultar, mas mais fácil de abrir em um editor de texto quando algo parece errado. De qualquer forma, copie o armazenamento para um segundo local antes de qualquer limpeza e mantenha a cópia por um trimestre inteiro antes de excluir qualquer coisa.

Quando um arquivo é suficiente

Uma tabela com uma coluna de dia cobre um único site por anos. O arquivo permanece pequeno e as consultas nesta página não precisam de ajuste.

Quando mudar para um servidor

Quando várias pessoas gravam no mesmo histórico, um arquivo em uma máquina se torna o gargalo. Nesse ponto, um banco de dados gerenciado é a escolha honesta, e o esquema permanece o mesmo.

Até lá, um arquivo no repositório é a coisa mais simples que sobrevive a uma mudança de laptop.

Conectando a diferença a um trabalho semanal

Execute diff.py logo após a etapa de instantâneo. Imprima as contagens e saia com um código não-zero quando new ultrapassar um limite que você escolheu, digamos 200 em uma semana para um site pequeno. O trabalho fica vermelho e o GitHub envia um e-mail para você. Simples.

Escolha o limite do seu próprio histórico. Após dois meses você sabe se 15 domínios novos por semana é normal ou um pico, e qualquer número fixo copiado de um post de blog é um palpite.

Semanas silenciosas são a norma.

Perguntas sobre links ruins, respondidas de forma clara

Existe um verificador de backlinks ruins confiável?
Nenhuma ferramenta pode rotular um link prejudicial com certeza, porque só o Google sabe como trata cada um. Um script pode destacar padrões dignos de leitura: inundações repentinas, âncoras exatas repetidas, TLDs estranhos. Você toma a decisão após abrir as páginas.
Devo desavow o que a diferença sinaliza?
Raramente. O Google disse que ignora em grande parte os links spam, e um arquivo de desavow é destinado a casos como uma ação manual ou uma confusão de links pagos que você mesmo criou. Documente primeiro e verifique o Search Console antes de enviar qualquer coisa.
Com que frequência devo executá-lo?
Instantâneo semanalmente, revisão mensal. As atualizações do índice ocorrem cerca de uma vez por mês, então uma diferença diária compara principalmente uma tabela consigo mesma. Uma revisão mensal corresponde aos dados e mantém o ruído baixo.
Quais colunas a tabela deve manter?
Mantenha o dia, o domínio, o DR e uma coluna de origem. Adicione a âncora apenas se você também extrair âncoras. Mais colunas parecem completas, mas cada campo extra é outro que pode variar entre as execuções.
Posso fazer diferença entre duas suites?
Você pode comparar suas contagens para o mesmo site, mas os dois resultados não corresponderão. Execute a diferença dentro de uma fonte e compare a direção da mudança entre as fontes, a mesma regra que se aplica em todos os lugares neste site.
E se um domínio sair e depois retornar no mês seguinte?
Ele aparece como desaparecido e depois como novo, o que é ruído. Conte retornos separadamente ou compare três meses de cada vez, para que um domínio que desaparece por uma atualização não dispare uma revisão.