En mi caso, n8n en el NAS ha eliminado la necesidad de tres herramientas cloud distintas para las tareas repetitivas de SEO: rank tracking, informes GSC y alertas de backlinks. Pero tiene un límite de volumen de datos que, si no conoces antes de diseñar tus flujos, te va a costar horas de frustración.
Llevo meses usando n8n instalado en mi NAS Synology para automatizar las partes mecánicas del SEO: extracción de datos de GSC, rank tracking, alertas de indexación y vigilancia de competidores. En este artículo te explico los 6 flujos que tengo activos, cómo están configurados y, sobre todo, dónde falla n8n para que no cometas los mismos errores.
Si aún no tienes n8n instalado en tu NAS, aquí tienes la guía de instalación con Container Manager sin necesitar Portainer.
Índice
Por qué n8n en un NAS local cambia el cálculo de coste
La propuesta de valor es simple: n8n en cloud cobra por ejecución. Zapier cobra por zap. Make cobra por operación. Con n8n en tu propio NAS, el coste marginal de cada flujo es cero — el servidor ya está encendido 24/7 consumiendo menos de 20W.
Para un SEO que ejecuta informes diarios de GSC, rank tracking y alertas de backlinks, el ahorro puede ser notable (un rank tracker cloud cuesta 25-40 €/mes, las alertas de backlinks otros 15-30 €; n8n en el NAS que ya tienes funcionando para SEO no añade coste marginal). Pero el coste real no es el económico: es el coste de mantenimiento. Cuando algo falla en un workflow crítico, eres tú quien lo arregla. Con eso claro, estos son los flujos que justifican el esfuerzo.
Los 6 flujos activos (resumen)
| Flujo | Frecuencia | Entrada | Salida | Nodo clave |
|---|---|---|---|---|
| Informe de oportunidades GSC | Semanal | GSC API | Google Sheets + resumen IA | HTTP Request + AI Agent |
| Indexación automática | Diaria | Sitemap XML | GSC Indexing API | HTTP Request |
| Rank tracking diario | Diaria | DataForSEO API | Google Sheets + alertas | HTTP Request |
| Alertas backlinks perdidos | Diaria | Ahrefs API | Slack / Email | HTTP Request + Filter |
| Vigilancia de competidores | Diaria | Changedetection.io | Slack / Email | Webhook |
| Distribución informe SEO | Semanal | Google Sheets | Email + Notion | Code + Gmail + Notion |
Flujo 1 — Informe semanal de oportunidades GSC
Qué hace: conecta con la API de Google Search Console, extrae datos de los últimos 7 días (queries, clics, impresiones, posición media) y los vuelca en una hoja de cálculo estructurada. Después, un nodo AI Agent analiza la hoja y genera un resumen con las páginas entre posición 8-20 que tienen impresiones altas y CTR bajo — las oportunidades más accionables.
Nodos: Schedule Trigger (lunes 8:00) → HTTP Request (GSC API con OAuth) → Google Sheets (volcado) → AI Agent (Claude o GPT-4o) → Gmail (resumen).
El límite crítico: cuando el sitio tiene tráfico alto, un mes de datos puede generar más de 2.000 filas. Con ese volumen, el nodo AI Agent puede tardar 15-20 minutos o directamente quedarse colgado. La solución es limitar la ventana a 7 días (~500 filas) y filtrar previamente solo las queries con impresiones > 50. CXL documentó exactamente este problema en su serie pública de construcción de agentes SEO con n8n: con 2.000 registros el flujo no terminaba, con 500 funcionaba en minutos.
El parámetro de fechas dinámicas que uso en el nodo HTTP Request:
{
"startDate": "{{ $now.minus({days: 7}).format('yyyy-MM-dd') }}",
"endDate": "{{ $now.format('yyyy-MM-dd') }}",
"rowLimit": 500,
"dimensionFilterGroups": []
}Flujo 2 — Indexación automática desde el sitemap
Qué hace: lee el sitemap XML cada 24 horas, compara con un registro anterior en Google Sheets para detectar URLs nuevas o modificadas, verifica su estado de indexación via GSC API y envía a la Google Indexing API las que aún no están indexadas o tienen fecha de crawl antigua.
Nodos: Schedule Trigger → HTTP Request (sitemap) → XML Parser → Google Sheets (comparación) → HTTP Request (GSC API estado) → IF (¿indexada?) → HTTP Request (Indexing API) → Slack (notificación).
Límite a controlar: la Google Indexing API permite 200 solicitudes diarias por cuenta de servicio. El flujo debe incluir un nodo contador que detenga las peticiones cuando se acerque a ese límite. Sin este control, el primer run puede agotar la cuota y dejar sin procesar el resto del día.
Cuándo merece la pena: este flujo tiene sentido si publicas con frecuencia o gestionas varios sitios. Para un blog de 4-5 artículos mensuales, el impacto es marginal y el esfuerzo de montarlo no se amortiza.
Flujo 3 — Rank tracking diario sin Semrush
Qué hace: consulta la API de DataForSEO cada día con una lista de keywords objetivo almacenada en Google Sheets, obtiene las posiciones actuales en Google España y registra la evolución histórica. Si una keyword cae más de 3 posiciones respecto al día anterior, envía alerta a Slack.
Nodos: Schedule Trigger → Google Sheets (lista de keywords) → HTTP Request (DataForSEO API) → Google Sheets (registro histórico) → Conditional (caída > 3 posiciones) → Slack.
Coste real: DataForSEO cobra por consulta API. Un tracking de 100 keywords diario cuesta aproximadamente 0,15 USD/día (unos 55 USD/año). Significativamente menos que las alternativas cloud, pero no es gratuito. Si la frecuencia diaria no es necesaria, semanal reduce el coste en un 85%.
Alternativa gratuita: SerpBear es una aplicación self-hosted que también puedes instalar en el NAS. Sin coste por consulta, con limitaciones de volumen y velocidad — suficiente para sitios de tamaño medio.
Flujo 4 — Alertas de backlinks perdidos
Qué hace: consulta la API de Ahrefs diariamente para detectar backlinks perdidos en las últimas 24 horas con Domain Rating > 30, y envía una alerta a Slack con el detalle del enlace perdido y la URL de destino afectada.
Nodos: Schedule Trigger → HTTP Request (Ahrefs API) → Filter (DR > 30) → IF (¿hay items nuevos?) → Slack o Gmail.
El endpoint que uso para recuperar backlinks perdidos recientes:
GET https://api.ahrefs.com/v3/site-explorer/all-backlinks
?select=url_from,url_to,domain_rating_source,date_lost
&where={"and":[
{"field":"date_lost","is":["gte","{{ $now.minus({days:1}).format('yyyy-MM-dd') }}"]},
{"field":"domain_rating_source","is":["gte",30]}
]}
&target=tudominio.com
&mode=domainRequisito sin alternativa: necesitas una suscripción a Ahrefs con acceso API. No existe equivalente gratuito para datos de backlinks en tiempo real. Si no tienes API de Ahrefs, este flujo concreto no es viable sin una fuente de datos alternativa.
Flujo 5 — Vigilancia de cambios en competidores
Qué hace: monitoriza cambios en páginas clave de competidores — títulos, meta descriptions, H1, precios si aplica — y envía una alerta cuando detecta modificaciones relevantes.
Para este flujo uso Changedetection.io, también instalado en el NAS, como motor de detección. N8N actúa como orquestador de las alertas: Changedetection.io detecta el cambio y dispara un webhook hacia n8n, que filtra, formatea y distribuye la notificación.
Arquitectura: Changedetection.io (NAS) → Webhook → n8n → Slack / Email.
Qué vigilar: no monitorices páginas aleatorias de competidores. Monitoriza las que rankean para tus keywords objetivo — las que te quitan posiciones directamente. Esa granularidad es la que hace útil el flujo.
Falsos positivos: Changedetection.io puede disparar alertas por cambios menores de HTML (timestamps, counters, ads dinámicos) que no son editoriales. Configura selectores CSS específicos (por ejemplo, solo el bloque article o el h1) para filtrar el ruido. N8N puede añadir un paso de validación: si el porcentaje de cambio es menor al 5%, descartar la alerta.
Por qué no hacer todo en n8n: n8n puede hacer HTTP Request a URLs y comparar HTML, pero Changedetection.io tiene visualización de diferencias, historial y gestión de selectores CSS integrada. Para vigilancia seria de competidores, la combinación es más robusta que solo n8n.
Flujo 6 — Distribución del informe SEO semanal
Qué hace: cada lunes a las 9:00, n8n abre la hoja de tracking de GSC + ranking, extrae las variaciones semanales de KPIs clave (impresiones, clics, posición media, URLs con cambios relevantes) y los envía formateados a email y a una base de datos de Notion.
Nodos: Schedule Trigger → Google Sheets (datos de la semana) → Code node (cálculo de variaciones) → Gmail + Notion API.
El nodo Code es donde se gana flexibilidad real. En lugar de depender de integraciones predefinidas, el JavaScript del nodo hace los cálculos necesarios y formatea el mensaje exactamente como necesitas. Un ejemplo del cálculo de variación porcentual:
// Nodo Code — cálculo variación semanal
const current = $input.item.json.clicks_this_week;
const previous = $input.item.json.clicks_last_week;
const variation = previous > 0 ? ((current - previous) / previous * 100).toFixed(1) : 0;
const trend = variation >= 0 ? `+${variation}%` : `${variation}%`;
return {
json: {
...$input.item.json,
clicks_variation: trend,
summary_line: `Clics: ${current} (${trend} vs semana anterior)`
}
};El límite que nadie te explica: n8n y el volumen de datos
El error más común al diseñar flujos SEO en n8n es no pensar en el volumen de datos antes de construir. N8N procesa los datos en memoria dentro del nodo. Si un HTTP Request devuelve 5.000 filas de GSC o 10.000 backlinks, el nodo AI Agent intentará procesar todo eso como contexto — y o bien agotará el límite de tokens del modelo, o bien tardará varios minutos.
Las reglas que aplico para mantener los flujos estables:
- Para flujos con AI Agent: máximo 500 filas de entrada. Filtra antes del nodo AI.
- Para flujos de registro puro (sin IA): sin límite práctico si el NAS tiene suficiente RAM.
- Para flujos con APIs de cuota: añadir siempre un nodo contador de cuota antes de ejecutar las llamadas.
- Para workflows críticos: añadir un nodo Error Trigger que envíe alerta si el flujo falla a mitad de ejecución.
La pregunta correcta antes de diseñar un flujo no es «¿puedo conectar A con B?» sino «¿cuántos registros va a manejar esto cuando el sitio crezca?»
Por dónde empezar
Si llegas a n8n para SEO desde cero, el orden que recomiendo es:
- Instala n8n en tu NAS (guía de instalación con Container Manager).
- Monta primero el flujo de informe GSC: es el más directo, no requiere APIs de pago y el impacto es inmediato.
- Añade el flujo de indexación automática si publicas contenido con regularidad.
- Incorpora rank tracking solo cuando tengas la lista de keywords objetivo estable.
- El resto (backlinks, competidores, distribución) añádelos según necesidad real, no por completismo.
La trampa habitual es intentar montar los 6 flujos a la vez. N8N tiene curva de aprendizaje y los primeros flujos tardan más de lo esperado. Uno funcionando bien vale más que seis a medias.
La automatización en SEO no reemplaza el criterio — libera tiempo para aplicarlo donde importa. Los flujos descritos aquí no deciden qué optimizar; hacen que los datos estén disponibles cuando lo decides. Ese es el reparto correcto entre máquina y persona.
Si quieres ver cómo encaja esto en un flujo SEO más amplio con IA, tienes el contexto estratégico en el artículo sobre SEO con inteligencia artificial.
Preguntas frecuentes sobre n8n para SEO
¿Necesito saber programar para usar n8n en SEO?
No para los flujos básicos (GSC, indexación, Sheets). El nodo Code JavaScript es opcional y solo necesario para transformaciones personalizadas. Los flujos descritos aquí funcionan en su mayor parte con nodos visuales sin escribir código.
¿Puedo usar n8n.cloud en lugar de instalar en un NAS?
Sí, pero pagarás por ejecuciones. Si tienes flujos que se ejecutan diariamente, el coste acumulado puede superar el de un NAS en 12-18 meses. El NAS tiene coste fijo; n8n.cloud tiene coste variable. Para volúmenes bajos (menos de 5.000 ejecuciones/mes), n8n.cloud puede ser más cómodo que mantener infraestructura propia.
¿Qué pasa si el NAS se apaga o hay un corte de luz?
Los flujos programados no se ejecutan durante el tiempo de inactividad y n8n no los reintenta automáticamente. Para workflows críticos, añade un sistema de verificación externo o considera un SAI (Sistema de Alimentación Ininterrumpida) para el NAS.
¿N8N puede sustituir a Semrush o Ahrefs?
No. N8N es un orquestador: conecta APIs y mueve datos. Semrush y Ahrefs tienen sus propias bases de datos — índice de backlinks, volúmenes de búsqueda — que no puedes replicar de forma gratuita. Lo que sí puedes hacer es usar n8n para automatizar las tareas repetitivas que harías manualmente en esas herramientas y reducir el tiempo dedicado a operaciones mecánicas.
¿Cuánta RAM necesita el NAS para correr estos flujos?
Con 4 GB de RAM el contenedor de n8n funciona sin problemas para los flujos descritos. Si añades otros servicios en el mismo NAS (Changedetection.io, SerpBear, bases de datos), 8 GB es el mínimo cómodo. El DS1522+ con 32 GB de RAM admite todos estos servicios con margen.