Comprobador de backlinks malos: diferencia de instantáneas en SQLite
Ningún script puede declarar un enlace tóxico para ti. Puede indicarte qué dominios de referencia son nuevos, cuáles han desaparecido y cuáles parecen extraños como para leerlos a mano.
Equipo editorial de Linkzoid ·
Tabla de severidad para dominios de referencia nuevos
Nuestras propias reglas prácticas para la triaje, no una definición de Google
Nivel
Señal
Acción
Ignorar
Dominio nuevo, DR superior a 30, el anchor es tu marca o una URL desnuda
Regístralo y sigue adelante
Observar
50 o más dominios nuevos en una semana desde un TLD que nunca has dirigido
Abre diez de ellos
Observar detenidamente
Mismo anchor exacto en 20 o más dominios nuevos
Revisa la nube de anchors, encuentra la fuente
Actuar
Red parecida a pagada o páginas hackeadas que apuntan hacia ti
Documentalo; considera un archivo de desavow solo si también tienes una acción manual
Esperar
Un dominio desapareció este mes
Vuelve a comprobarlo después de la próxima actualización mensual
Por qué hacer diff en lugar de escanear una vez
Una instantánea única te dice qué hay. Un diff te dice qué cambió, y ahí es donde aparecen los problemas.
Google ha dicho durante años, desde el lanzamiento de Penguin 4.0 en septiembre de 2016 y de nuevo en la actualización de spam de enlaces de diciembre de 2022, que ignora principalmente los enlaces spam en lugar de castigarlos. SpamBrain hace ese trabajo. Por lo tanto, una inundación de basura es más ruido que una amenaza, y el diff principalmente te ahorra reaccionar al ruido.
Mantén tu propio historial. Los suites sobrescriben los suyos.
Construye la tabla de historial en cuatro pasos
El diff solo funciona si cada ejecución termina en la misma tabla, con la misma estructura. Estos pasos mantienen esa condición.
01
Crea la tabla una vez
Ejecuta una sentencia create-if-not-exists con las columnas que necesitas: el día, el dominio y la puntuación. Mantenlo en el script, para que una nueva máquina reconstruya la misma tabla sin pasos manuales.
02
Inserta una fila por dominio por día
Usa una inserción parametrizada y haz commit una vez por ejecución. Un único commit evita que un fallo deje la mitad del día en el archivo.
03
Protégete contra una segunda ejecución
Elimina las filas del día antes de insertar, o añade una clave única en día y dominio. Una rerun el mismo día reemplaza las filas en lugar de duplicarlas.
04
Compara con el día anterior en el archivo
Selecciona la fecha anterior más reciente con un filtro max(day), no la fecha de ayer. La comparación se mantiene correcta cuando se salta una semana.
diff.py
Dos tablas serían más ordenadas. Una es suficiente para una configuración de hobby: una fila por dominio por fecha de instantánea.
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')
Solución de problemas del diff
Síntoma
Causa probable
Solución
Cientos de 'desaparecidos' de la noche a la mañana
Un umbral copiado de un artículo de blog es una suposición sobre el sitio de otra persona. Un comprobador de backlinks malos solo es tan útil como sus límites, y tu propio historial te dice cómo se ve lo normal para tu dominio.
Empieza registrando unos pocos meses sin actuar sobre nada. Déjalo asentarse. Luego anota el oscilación semanal típica. Solo después de eso estableces los límites en la tabla de severidad.
Empieza con una línea base
Registra los conteos de nuevos y desaparecidos para cada ejecución sin reaccionar a ellos. Un par de meses de registro tranquilo te dan un rango que pertenece a tu dominio y no al de nadie más.
Una vez que existe la línea base, una semana mala se destaca frente a ella, y puedes explicar la diferencia sin adivinar. Ese es todo el punto de la línea base.
Elige una alarma por señal
Cada señal en la tabla tiene un umbral, un responsable y una acción. Una señal con tres alarmas es una señal que nadie lee, y las alarmas terminan siendo ignoradas juntas.
Escribe la alarma junto a su señal en el código, para que la tabla en esta página y el script nunca discrepen.
Revisa los límites cada trimestre
Tu sitio crece, y también lo hace lo normal. Vuelve a comprobar los límites cada tres meses, y escribe la razón junto a cualquier cambio, para que el historial se explique a sí mismo más tarde.
Lectura de la tabla de severidad en la práctica
La tabla es una ayuda para el triaje, no un juicio. Cada fila te dice dónde mirar, y la columna de acción te mantiene de buscar un archivo de desavow en pánico.
Trabaja desde arriba. La mayoría de las semanas terminan en Ignorar o Observar. Una fila de Observar comienza unos minutos de lectura, y una fila de Observar detenidamente comienza una revisión más larga de los anchors. No te saltes filas porque la semana estuvo ocupada. Una fila saltada es la semana que la inundación pasa desapercibida.
Muestra antes de decidir
Abre diez de los dominios marcados y lee las páginas. Una inundación que resulta ser un raspador de directorios es un problema diferente a una inundación de blogs no relacionados, y solo las páginas las distinguen.
Registra lo que decidiste
Mantén una línea por decisión: el dominio, el nivel, qué verificaste y qué hiciste. La próxima persona que lea el registro, incluido el futuro tú, obtiene el razonamiento sin una reunión.
Un resumen mensual de esas líneas toma poco tiempo, y es un buen primer borrador de una revisión.
Lo que esto no puede decirte
No puede demostrar que un enlace te perjudica. Nadie fuera de Google puede, y el informe de acciones manuales de Search Console es el único lugar donde se declara una penalización.
Tampoco puede ver enlaces más recientes que la última actualización. Para evidencia más fresca, pregunta a las personas que gestionan el sitio que enlaza, o lee tus registros del servidor para los referrers. Nuestra nota sobre el tiempo entra más en detalle.
Si quieres el lado de los anchors, anchor_cloud cuesta 2 créditos y agrupa texto por frecuencia, que es la forma más rápida de detectar una acumulación de coincidencias exactas.
Enlaces que llegan entre actualizaciones
Cualquier cosa más reciente que la última actualización falta en ambos lados del diff. Un enlace que aparece y desaparece dentro de una ventana de actualización nunca se muestra, por eso la comparación debería ejecutarse mensualmente.
Anchors que parecen incorrectos para ti
Un diff ve el dominio, no la oración alrededor del enlace. Dos anchors idénticos en dos páginas diferentes pueden significar cosas muy diferentes, así que mantén la comprobación de anchors como un paso manual separado.
Opciones de almacenamiento para una configuración de hobby
SQLite es la base de datos más simple que aún responde a una pregunta de diff con una consulta. Vive en un solo archivo, por lo que cabe en el repositorio o una carpeta de copia de seguridad sin un servidor.
Los archivos JSON con fecha también funcionan. Es más lento para consultar, pero más fácil de abrir en un editor de texto cuando algo parece incorrecto. De cualquier manera, copia la tienda a un segundo lugar antes de cualquier limpieza, y mantén la copia durante un trimestre completo antes de eliminar cualquier cosa.
Cuando un archivo es suficiente
Una tabla con una columna de día cubre un solo sitio durante años. El archivo se mantiene pequeño, y las consultas en esta página no necesitan ajuste.
Cuándo pasar a un servidor
Una vez que varias personas escriben en el mismo historial, un archivo en una máquina se convierte en el cuello de botella. En ese punto, una base de datos gestionada es la opción honesta, y el esquema se mantiene igual.
Hasta entonces, un archivo en el repositorio es lo más simple que sobrevive a un cambio de portátil.
Conectar el diff a un trabajo semanal
Ejecuta diff.py justo después del paso de instantánea. Imprime los conteos, y sal con un código distinto de cero cuando new cruce un límite que hayas elegido, digamos 200 en una semana para un sitio pequeño. El trabajo se pone rojo, y GitHub te envía un correo. Simple.
Elige el límite desde tu propio historial. Después de dos meses sabes si 15 dominios nuevos a la semana es normal o un pico, y cualquier número fijo copiado de un artículo de blog es una suposición.
Las semanas tranquilas son la norma.
Preguntas sobre enlaces malos, respondidas claramente
¿Existe un comprobador de backlinks malos fiable?
Ninguna herramienta puede etiquetar un enlace como dañino con certeza, porque solo Google sabe cómo trata cada uno. Un script puede revelar patrones dignos de leer: inundaciones repentinas, anchors exactos repetidos, TLD extraños. Tú tomas la decisión después de abrir las páginas.
¿Debería desavow lo que marca el diff?
Rara vez. Google ha dicho que ignora en gran medida los enlaces spam, y un archivo de desavow está destinado a casos como una acción manual o un lío de enlaces pagados que hiciste tú mismo. Documenta primero, y comprueba Search Console antes de enviar cualquier cosa.
¿Con qué frecuencia debería ejecutarlo?
Instantánea semanalmente, revisión mensual. El índice se actualiza aproximadamente una vez al mes, por lo que un diff diario principalmente compara una tabla consigo misma. Una revisión mensual coincide con los datos y mantiene el ruido bajo.
¿Qué columnas debería mantener la tabla?
Mantén el día, el dominio, el DR y una columna de fuente. Añade el anchor solo si también extraes anchors. Más columnas parecen exhaustivas, pero cada campo adicional es otro que puede derivarse entre ejecuciones.
¿Puedo hacer diff de dos suites entre sí?
Puedes comparar sus conteos para el mismo sitio, pero los dos resultados no coincidirán. Ejecuta el diff dentro de una fuente, y compara la dirección del cambio entre fuentes, la misma regla que se aplica en todas partes en este sitio.
¿Qué pasa si un dominio sale y luego regresa el mes siguiente?
Se muestra como desaparecido y luego como nuevo, lo cual es ruido. Cuenta los retornos por separado, o compara tres meses a la vez, para que un dominio que se pierda durante una actualización no active una revisión.