Ir al contenido
SEO Tools AI
SEO Tools AIRegistrarse

Receta

Sincroniza las puntuaciones de enlaces desde una hoja o n8n

La mayoría de los directorios de herramientas viven en una hoja de cálculo, una base de Airtable o una pequeña base de datos. Esta receta convierte una verificación de backlinks en un llenado de columnas: una solicitud por cada 2.000 filas.

Equipo de investigación de SEO Tools AI ·

Trabajadores de papel recortado construyendo un puente que conecta un archivador con una carretera

La receta en cinco pasos

01

Exporta los dominios

Toma la columna de sitios web de tus listados, elimina el protocolo y las rutas, y elimina los duplicados. Los duplicados no cuestan nada extra, pero hacen que el paso de mapeo sea más desordenado.

02

Agrupa en lotes de 2.000

bulk_dr acepta hasta 2.000 dominios por llamada. Una hoja de 5.000 filas requiere por tanto tres llamadas.

03

Envía, verifica que esté correcto

Llama a la API, lee el JSON y detente si ok es falso. Registra _credits para ver el saldo después de cada ejecución.

04

Escribe de vuelta con una fecha

Almacena la puntuación y la fecha de hoy en dos columnas. Nunca sobrescribas un buen valor con uno vacío.

05

Programa una vez al mes

Ejecútalo el primer día del mes. El índice cambia aproximadamente cada mes, por lo que hacerlo más a menudo no aporta nada.

Elige qué inicia el trabajo

El desencadenante decide con qué frecuencia ocurren las llamadas, así que elígelo antes de construir el mapeo. Dos tipos de inicio cubren casi todos los directorios.

Una programación el primer día del mes es la opción más sencilla. Se ajusta al ritmo del índice y nadie tiene que recordar pulsar un botón.

Una programación para la actualización mensual

Coloca un desencadenante de programación al principio, configúralo para el primer día de cada mes y haz que lea toda la tabla de listados. Cada ejecución realiza luego un lote de llamadas bulk_dr, del tamaño del número de filas.

Mantén la programación incluso cuando la tabla sea pequeña. Un trabajo mensual que se ejecuta en una hoja pequeña cuesta un crédito, y mantiene las puntuaciones fechadas y actualizadas.

Un desencadenante en cada nueva fila

Supongamos que los listados llegan uno a uno, cada pocos días. Un desencadenante que se active por cada nueva fila es tentador, pero cada llamada se factura una vez, por lo que una llamada por fila cuesta más que un lote mensual.

Si quieres la puntuación rápidamente, deja que el flujo de nueva fila escriba un dr en blanco y deja que la ejecución mensual lo rellene. La fila obtiene su número sin una llamada por cada llegada.

Si los listados llegan en ráfagas, agrupa las nuevas filas en un lote al final de la semana. Eso cuesta una llamada y la hoja ya no cambia solo una vez al mes.

Una fecha que marca las filas terminadas

Almacena dr_checked_on en cada fila que evalúes. Una ejecución que comienza con un filtro en esa fecha omite lo que ya se ha hecho este mes, y no se necesita una cola separada.

Cuando una ejecución se detiene a mitad de camino, las filas ya marcadas permanecen marcadas. La siguiente ejecución retoma donde terminó la última, que es la recuperación más barata que existe.

Antes de automatizar cualquier cosa

Ejecuta la verificación manualmente en cinco listados primero. Usa la acción gratuita overview para cada uno, que no requiere clave, y compara lo que ves con lo que esperabas.

Esto detecta las sorpresas comunes a tiempo: un listado que apunta a un subdominio, un producto que vive en una ruta de un sitio más grande, un dominio que hizo una redirección la primavera pasada. Una puntuación pertenece a un dominio, no a un producto.

Decide cómo marca tu hoja esos casos, por ejemplo con una columna de notas que diga shares domain. Los lectores perdonan mucho más una nota al pie que una puntuación que parece incorrecta.

Cuando los cinco parezcan razonables, pasa al lote. Tu referencia de campo enumera las columnas, y el ejemplo de coste muestra cuánto cuesta una ejecución.

Una versión pequeña en Python

Necesita el paquete requests. Es un esquema de la forma del trabajo: imprime una respuesta real primero, luego mapea los campos que necesitas en tus propias columnas.

python
import csv, requests

KEY = "sk_live_..."
BASE = "https://seotoolsai.org/api.php"

rows = list(csv.DictReader(open("listings.csv")))
domains = sorted({r["domain"] for r in rows})

for i in range(0, len(domains), 2000):
    chunk = domains[i:i + 2000]
    r = requests.post(BASE, params={"action": "bulk_dr", "key": KEY},
                      data={"domains": ",".join(chunk)}, timeout=60)
    if r.status_code in (401, 402):
        raise SystemExit(f"stop: HTTP {r.status_code}")
    data = r.json()
    if not data.get("ok"):
        raise SystemExit("api said not ok")
    print(data["_credits"])   # cost and remaining balance
    open(f"raw_{i}.json", "w").write(r.text)
Engranajes de papel y cintas transportadoras clasificando bloques en grupos

Hacerlo en Google Sheets o n8n

Sheets puede llamar a una URL desde Apps Script con UrlFetchApp, y n8n tiene un nodo de Solicitud HTTP. Ambos hacen lo mismo que el script anterior.

En n8n, coloca un desencadenante de programación al principio, luego un nodo que lea tu hoja o tabla, luego un paso de división de elementos que construya grupos de 2.000, y luego la Solicitud HTTP. Añade un nodo final que escriba la puntuación y la fecha de vuelta.

Mantén la clave en el almacén de credenciales de la plataforma, no en el texto del flujo. Los flujos se comparten, copian y pegan en foros, y una clave pegada con ellos es dinero gastado.

Sin código o un script: qué forma se adapta a tu equipo

Ambas rutas hacen la misma llamada. La diferencia es quién tendrá que mantener el flujo dentro de un año, y qué tan fácil es explicárselo a esa persona.

Elige la forma que aún puedas leer después de un descanso de varios meses. Un flujo inteligente que nadie entiende es peor que un script sencillo que todos pueden seguir.

Un flujo que puedas explicar al siguiente editor

Un flujo corto de n8n con cuatro nodos etiquetados es fácil de entregar: trigger, read, batch, write back. Nombra cada nodo según lo que hace, no según la etiqueta predeterminada.

Evita apilar muchas ramas para casos extremos. Cada rama es un lugar más donde un dominio puede obtener la puntuación incorrecta.

Cuando un script gana su lugar

Un script tiene sentido cuando la entrada es una carpeta de archivos CSV, o cuando el trabajo necesita lógica que un flujo maneja de forma torpe. El esquema anterior se ajusta a ese caso.

Pon el script en control de versiones y mantén la clave en una variable de entorno. Un script que lee su clave desde un archivo en la misma carpeta es una fuga esperando un disco compartido.

Tutoriales que omiten la parte difícil

Muchos videos muestran un flujo que funciona al primer intento con tres filas. Los listados reales tienen espacios en blanco, duplicados y dominios extraños, y ahí es donde el flujo necesita atención.

Construye el flujo primero con tus propias cinco filas de prueba. Si un tutorial no sobrevive a esas, el tutorial nunca fue el trabajo completo.

Cuando entregues el flujo a otra persona, incluye las cinco filas de prueba como muestra. La siguiente persona puede ver cómo se ve una ejecución correcta antes de tocar datos reales.

Qué significan los errores

Comportamiento de la API y qué debe hacer un trabajo de sincronización.
SeñalSignificadoQué hace el trabajo
HTTP 401Clave faltante o incorrectaDetener, alertar a un humano
HTTP 402Se han agotado los créditosDetener, mantener las puntuaciones antiguas, recargar
ok es falsoLa llamada no tuvo éxitoRegistrar el cuerpo, reintentar en la próxima ejecución
Resultado vacío para un dominioNo está en el índiceDejar la celda en blanco
Jardinero de papel enderezando el tallo torcido de una planta en un jardín

Mantener la hoja limpia entre ejecuciones

Un trabajo de sincronización es tan bueno como la hoja a la que escribe. Algunos hábitos evitan el daño lento que se acumula entre una ejecución y la siguiente.

La mayoría de los problemas comienzan con una edición inocente: una columna insertada encima de la puntuación, o una fila copiada que cambia silenciosamente un dominio.

Mantener las respuestas crudas en su propia pestaña

Almacenar cada respuesta cruda en su propia pestaña, o como JSON Lines con una respuesta por línea. Esa copia permite reconstruir las columnas visibles sin una segunda llamada pagada.

Una pestaña de datos crudos también responde a la pregunta que un editor hace seis meses después: qué devolvió la API en esa fecha.

Nombrar cada pestaña de datos crudos con la fecha del lote, para que las copias se ordenen automáticamente al desplazarse hacia atrás.

Bloquear la fila de encabezado

Congelar la fila de encabezado y nunca insertar una columna encima de la puntuación. Un mapeo que apunta a la columna F leerá los datos incorrectos después de una inserción, y lo hará sin ningún error.

Nombrar las columnas en el mapeo, no por posición. Un nombre sobrevive a un reordenamiento, y una posición no.

Contar las filas antes y después

Escribir el recuento de filas en el registro antes de la ejecución y de nuevo después. Los dos números deberían diferir solo por las filas que se añadieron intencionadamente, y una brecha indica que algo salió mal.

Ordenar la hoja por la columna de puntuación una vez al mes y observar las filas superiores e inferiores. Los valores extraños allí suelen señalar un dominio que se mapeó a la lista incorrecta.

Probar primero en una copia

Duplicar la hoja y ejecutar el flujo contra la copia antes de tocar la original. Una copia cuesta nada hacerla.

Un mapeo incorrecto escrito sobre las puntuaciones en vivo es difícil de deshacer, porque los valores antiguos se pierden. Mantener la copia hasta que la primera ejecución honesta coincida con lo que se esperaba.

Eliminar la copia solo después de que la segunda ejecución programada haya coincidido con ella. Dos ejecuciones limpias consecutivas son una mejor señal que una.

Antes de la primera ejecución en vivo

  • La clave está en el almacén de credenciales de la plataforma o en una variable de entorno, no en el texto del flujo de trabajo.
  • Se verificó manualmente una llamada overview gratuita contra una lista que se conoce.
  • La ejecución se probó en una copia de la hoja, y la copia coincidió con lo esperado.
  • El trabajo escribe la fecha junto a cada puntuación que toca.
  • Los estados 401 y 402 detienen el trabajo y envían un mensaje a una persona.

Preguntas sobre sincronización

¿Cómo evito pagar dos veces si el trabajo se interrumpe a mitad de camino?

Escribir la fecha junto a cada puntuación a medida que se avanza, y tener la siguiente ejecución que salte las filas ya marcadas con este mes. Bloques de 2.000 significan que una interrupción cuesta como máximo un crédito, por lo que el riesgo es mínimo, pero el hábito mantiene la hoja ordenada.

¿Puede un no programador configurar esto?

Principalmente sí. Un nodo de Solicitud HTTP en n8n o Make solo necesita una URL, una clave y una lista. La parte complicada es convertir la respuesta en columnas, así que haz una llamada de prueba y mira el JSON antes de construir el mapeo.