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.
Equipe editorial do Linkzoid ·
Tabela de severidade para domínios referenciados novos
Nossas próprias regras práticas para triagem, não uma definição do Google
Nível
Sinal
Ação
Ignorar
Domínio novo, DR acima de 30, âncora é sua marca ou uma URL pura
Registre e siga em frente
Observe
50 ou mais domínios novos em uma semana de um TLD que você nunca segmentou
Abra dez deles
Observe atentamente
Mesma âncora de correspondência exata em 20 ou mais domínios novos
Verifique a nuvem de âncoras, encontre a origem
Aja
Rede 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
Aguarde
Um domínio desapareceu este mês
Verifique 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
Sintoma
Causa provável
Correção
Centenas de 'desaparecidos' da noite para o dia
A atualização do índice trocou a amostra
Compare mensalmente, não diariamente
Todo domínio parece novo
A tabela estava vazia ou o formato day mudou
Verifique select distinct day
Coluna DR toda NULL
O nome do campo da linha difere de dr
Imprima uma linha bruta e ajuste
Duplicatas após uma nova execução
Mesmo dia inserido duas vezes
Exclua esse dia primeiro, ou adicione uma chave exclusiva
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.
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.