Guía completa de .cursorignore en Cursor: 3 estrategias clave para optimizar la indexación en proyectos grandes

Actualización 2026-06-08: revisado con la documentación oficial de Cursor (junio de 2026). Cursor ya respeta tu .gitignore más una lista de exclusión por defecto integrada (node_modules, lockfiles, artefactos de build y binarios/medios ya quedan fuera de la indexación en su mayoría), así que .cursorignore sirve sobre todo como bloqueo de acceso duro más exclusiones extra; .cursorindexingignore solo bloquea la indexación (con @ aún puedes leer el archivo). Además, el archivo único .cursorrules en la raíz ahora es legacy (se ignora en modo Agent) — pon las reglas de proyecto en .cursor/rules/*.mdc.
El martes por la tarde abrí en Cursor el monorepo de la empresa, con más de 500.000 líneas de código. El icono de Syncing en la esquina inferior derecha empezó a girar. Pasaron 5 minutos y seguía girando. Pasaron 10 minutos y aún indexaba. Me fui a tomar un café y, al volver, seguía ahí, girando con calma.
Lo peor llegó después. Cuando por fin terminó la indexación, pedí a la IA que me ayudara a optimizar un componente React y me sugirió: «Puedes modificar directamente el archivo node_modules/react-dom/cjs/react-dom.development.js». Me quedé mirando la pantalla en silencio tres segundos: la IA había confundido el código de una dependencia con el de mi proyecto.
En ese momento empecé a dudar de si Cursor servía para proyectos grandes. Hasta que descubrí un archivo de configuración llamado .cursorignore y todo cambió. El tiempo de indexación bajó de 12 minutos a 3, y la IA dejó de recomendar cambios absurdos dentro de node_modules.
Si tú también has sufrido indexación lenta o respuestas imprecisas de la IA en Cursor, este artículo te ayudará a resolverlo. Comparto 3 estrategias de optimización con efecto inmediato y una plantilla de configuración que puedes copiar y usar al momento.
Por qué la indexación de Cursor es tan lenta
Primero, hablemos del mecanismo de indexación de Cursor. Cada vez que abres un proyecto, Cursor convierte los archivos de código en vectores de embedding: en términos simples, transforma el código en una representación numérica que la IA puede entender. Ese proceso recorre cada archivo, calcula vectores y los almacena. Cuantos más archivos tenga el proyecto, más lento será.
La pregunta es: ¿realmente necesitas que la IA entienda todos los archivos de tu proyecto?
La mayoría de los proyectos tienen varios tipos de archivos que ocupan mucho espacio, son numerosos y aportan poco a la programación asistida por IA:
node_modules: el agujero negro de dependencias
En un proyecto frontend de tamaño medio, node_modules puede contener decenas de miles de archivos. En un proyecto React con unas decenas de dependencias, el número de archivos supera fácilmente los diez mil. Cursor indexa todo ese código de terceros en cada apertura, pero ¿de verdad necesitas que la IA entienda la implementación interna de lodash?
dist/build: basura de compilación
Son código comprimido y ofuscado generado por herramientas de build. Pedirle a la IA que indexe un archivo JavaScript comprimido en una sola línea es como pedirle que lea jeroglíficos: no tiene sentido.
.git: el peso del historial
Un repositorio Git guarda todo el historial del proyecto. En proyectos grandes, la carpeta .git puede pesar cientos de MB o incluso más de 1 GB. Indexar ese historial es perder el tiempo.
Recursos estáticos grandes
Vídeos, imágenes, fuentes… la IA no puede leerlos, así que indexarlos no aporta nada.
Hice una prueba: un proyecto Next.js de 100.000 líneas, con node_modules y el directorio de build .next completos, tardaba 8 minutos en indexarse. Tras configurar .cursorignore para excluir esos directorios, el tiempo bajó a 2 minutos. Cuatro veces más rápido.
Lo más importante es la precisión. Cuando el contexto de la IA se llena de código de node_modules, confunde qué es tuyo y qué pertenece a una dependencia. El resultado: te sugiere modificar paquetes instalados o trata APIs de librerías de terceros como si fueran funciones escritas por ti.
Guía completa de configuración de .cursorignore
La buena noticia es que la sintaxis de .cursorignore es exactamente la misma que la de .gitignore. Si ya sabes escribir .gitignore, este archivo te resultará muy familiar.
Resumen de sintaxis básica
Crea un archivo .cursorignore en la raíz del proyecto (fíjate en el punto inicial) y escribe según estas reglas:
# Esto es un comentario; empieza con #
# Excluir un archivo concreto
config.json
# Excluir un directorio completo (termina con barra)
node_modules/
dist/
# Coincidencia con comodines
*.log # todos los archivos de registro
**/*.test.js # archivos de prueba en cualquier nivel
# Regla de negación (volver a incluir)
!important.log # excluye todos los .log, pero conserva este
Plantilla lista para usar
He preparado una configuración base válida para la mayoría de proyectos. Puedes copiarla directamente en tu .cursorignore:
# Directorios de dependencias
node_modules/
.pnp/
.pnp.js
vendor/
packages/
# Artefactos de compilación
dist/
build/
out/
.next/
.nuxt/
.cache/
.vite/
.turbo/
# Pruebas y cobertura
coverage/
.nyc_output/
*.spec.js
*.test.js
__tests__/
# Registros y archivos temporales
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.DS_Store
*.swp
*.swo
*~
# Configuración de entorno (por seguridad)
.env
.env.local
.env.*.local
credentials.json
*.key
*.pem
# Control de versiones
.git/
.svn/
.hg/
# Configuración del IDE (opcional)
.vscode/
.idea/
*.sublime-*
# Archivos de recursos grandes (ajusta según necesidad)
*.mp4
*.mov
*.avi
*.zip
*.tar.gz
*.pdf
public/videos/
Esta configuración cubre el 90 % de los escenarios habituales. Después de guardarla, abre Settings > Features > Codebase Indexing en Cursor, pulsa el botón de refresco y deja que la configuración surta efecto.
Configuración avanzada por escenario
Según el tipo de proyecto, puedes ajustar la plantilla base:
Proyectos React/Vue: excluye archivos grandes en public
# Añade sobre la configuración base
public/assets/
public/images/*.png
public/fonts/
Proyectos monorepo: excluye subpaquetes irrelevantes (esto es clave)
# Supón que trabajas en frontend y solo te importa apps/web
apps/mobile/
apps/admin/
packages/backend-utils/
Proyectos full stack: separa la indexación de frontend y backend
# Si trabajas sobre todo en frontend
server/
api/
database/
migrations/
# O si trabajas sobre todo en backend
client/
public/
src/components/
Un truco útil: si no estás seguro de si un archivo queda excluido, ejecuta en la terminal:
git check-ignore -v [ruta-del-archivo]
Aunque es un comando de git, la sintaxis coincide con .cursorignore, así que sirve para depurar la configuración.
.cursorignore vs .cursorindexingignore: elegir la herramienta correcta
Al principio yo también me liaba con estos dos archivos. Los nombres se parecen, ¿cuál es la diferencia? ¿Cuál usar?
En resumen: .cursorignore es bloqueo total; .cursorindexingignore es bloqueo parcial.
Diferencia esencial
.cursorignore: la IA no puede acceder en absoluto a esos archivos. No los indexa, no los lee ni los referencia. Para Cursor, es como si no existieran. Se usa en dos casos: archivos sensibles (.env, claves) o cosas que no quieres que la IA toque nunca (node_modules, artefactos de build).
.cursorindexingignore: los archivos no aparecen en las búsquedas del código base, pero la IA puede leerlos cuando haga falta (por ejemplo, al mencionarlos con @ o arrastrarlos al chat). Cursor añadió esta función más tarde, pensada sobre todo para optimizar el rendimiento.
Ejemplo: tienes un directorio legacy/ con código heredado de hace tres años. No quieres que contamine los resultados de búsqueda, pero a veces la IA puede necesitar consultar esa lógica antigua. Ahí encaja .cursorindexingignore.
Tabla de escenarios de uso
| Tipo de archivo | Configuración recomendada | Motivo |
|---|---|---|
| .env, credentials.json | .cursorignore | Seguridad primero: acceso totalmente prohibido |
| node_modules | .cursorignore | No hace falta que la IA entienda la implementación interna de dependencias |
| dist/build | .cursorignore | Los artefactos compilados no aportan valor de referencia |
| Datos fixture de pruebas | .cursorindexingignore | Reduce ruido en búsquedas, pero la IA puede necesitar consultarlos |
| Código heredado | .cursorindexingignore | No quieres que aparezca a menudo, pero conservas acceso |
| Borradores de documentación | .cursorindexingignore | Alivia la carga de indexación |
| Archivos grandes de datos de prueba | .cursorignore | Inútiles y ocupan mucho espacio |
Prioridad de configuración
Cursor aplica estas configuraciones en este orden:
- Lee primero
.gitignoredel proyecto (se respeta automáticamente) - Luego lee
.cursorignore(puedes usar la sintaxis!para sobrescribir gitignore) - Por último aplica
.cursorindexingignore
¿Qué implica esto? Si tu .gitignore excluye logs/, pero quieres que la IA acceda a un registro concreto, puedes escribir en .cursorignore:
!logs/important-debug.log
También existe una función útil llamada «Hierarchical Cursor Ignore». Al activarla (búscala en Settings), Cursor busca de forma recursiva .cursorignore en directorios padre. Es ideal para poner una configuración global en la raíz de un monorepo grande y añadir reglas complementarias en subproyectos.
Mi estrategia de uso
En la práctica, en la mayoría de casos me basta con .cursorignore. .cursorindexingignore es más una herramienta de ajuste fino, útil cuando el rendimiento es crítico o la estructura del proyecto es especialmente compleja.
Al empezar, te recomiendo:
- Paso 1: usa solo
.cursorignorey excluye lo que claramente no necesitas - Paso 2: observa una semana cómo se comporta la IA
- Paso 3: si aún hay problemas, plantéate
.cursorindexingignorepara afinar
No intentes montar algo demasiado complejo desde el primer día; ir paso a paso funciona mejor.
3 estrategias de optimización para monorepos
Los monorepos son el tipo de proyecto que más fácilmente «rompe» la experiencia con Cursor. Un solo repositorio puede incluir frontend, backend, móvil, panel de administración… ante tanto código, la IA se confunde con facilidad.
Yo me equivoqué en un monorepo con 12 subaplicaciones. Pedí a la IA que optimizara un componente frontend y me sugirió usar una utilidad del directorio de APIs backend. Sonaba razonable, pero el frontend no podía acceder a ese código: los dos paquetes ni siquiera compartían el mismo entorno de ejecución.
Después resumí 3 estrategias que en la práctica funcionan muy bien:
Estrategia 1: dividir la indexación por zona de trabajo
La forma más directa: excluye los subproyectos que no te interesan.
Supón que eres del equipo frontend y trabajas sobre todo en apps/web. Excluye el resto de subaplicaciones:
# .cursorignore
apps/mobile/
apps/admin/
apps/api/
packages/backend-utils/
packages/database/
services/
Tiene dos ventajas: la indexación va más rápido y la IA no se distrae con código de otros subproyectos. En un monorepo donde dejé solo los dos paquetes de mi responsabilidad, el tiempo de indexación bajó de 15 minutos a 4.
Si eres full stack y cambias a menudo entre frontend y backend, prepara dos archivos: .cursorignore.frontend y .cursorignore.backend, y copia el adecuado a .cursorignore según el trabajo del momento.
Estrategia 2: guiar a la IA con Project Rules
El mayor problema de un monorepo es que la IA no entiende bien la relación entre directorios. Ahí entran las Project Rules para darle un mapa del proyecto. Nota: el antiguo archivo único .cursorrules de la raíz ahora es legacy y se ignora en modo Agent; para proyectos nuevos usa archivos .mdc en .cursor/rules/ (no .cursorignore). Crea, por ejemplo, .cursor/rules/project-structure.mdc con frontmatter YAML (description, globs, alwaysApply):
---
description: estructura del monorepo y reglas de referencia de código
alwaysApply: true
---
# Descripción de la estructura del proyecto
Este es un monorepo que incluye las siguientes subaplicaciones:
- apps/web: aplicación frontend (Next.js), puerto 3000
- apps/api: API backend (Node.js + Express), puerto 8000
- apps/admin: panel de administración (React), puerto 3001
- packages/ui: librería compartida de componentes UI
- packages/utils: funciones de utilidad comunes
## Reglas de referencia de código
- Las apps frontend (web/admin) solo pueden importar packages/ui y packages/utils
- El frontend no puede importar código de apps/api directamente
- Los paquetes compartidos (packages/*) no pueden depender de apps concretas (apps/*)
## Enfoque de trabajo actual
Ahora mismo el desarrollo principal está en apps/web; las sugerencias de optimización deben centrarse en código frontend.
La IA lee estas reglas y entiende mejor la estructura. El efecto es claro: después de configurarlo, rara vez vuelve a recomendar referencias entre fronteras.
Estrategia 3: modo de trabajo con ventanas separadas
En monorepos muy grandes (por ejemplo, con más de 20 subaplicaciones), aunque configures .cursorignore, el contexto de una sola ventana sigue siendo enorme.
Mi enfoque: abrir una ventana independiente de Cursor para cada subaplicación.
- Ventana 1: abre el directorio
apps/web - Ventana 2: abre el directorio
apps/api - Ventana 3: abre el directorio
packages/ui
Cada ventana tiene su propia indexación y contexto, y la IA entiende mejor. La desventaja es cambiar de ventana, pero en proyectos grandes compensa por la mejora de precisión.
Un truco: si hay dependencias entre subaplicaciones (por ejemplo, web depende de la librería ui), en la ventana de web puedes referenciar explícitamente con @folder:
@folder packages/ui Ayúdame a revisar la definición de props del componente Button
Así mantienes la ventana ligera y accedes al código de dependencias cuando haga falta.
Idea central para monorepos
En resumen, la optimización de un monorepo consiste en esto: hacer que la IA vea solo lo que necesita ver.
Cuanto más grande sea el proyecto, más hay que restar. No esperes que la IA entienda toda la arquitectura como tú; si le marcas límites, sus sugerencias serán más acertadas.
Verificar y mantener tu configuración
Configurar .cursorignore no es algo que haces una vez y olvidas. Tienes que comprobar que funciona y mantenerla con el tiempo.
Comprobar que la configuración funciona
Lo más intuitivo es mirar el tiempo de indexación. Compara la duración de Syncing antes y después; si baja de forma clara, la configuración está haciendo efecto.
Métodos más precisos:
-
Revisar el estado de indexación
AbreSettings > Features > Codebase Indexingy mira cuántos archivos se han indexado. Tras configurar.cursorignore, ese número debería bajar de forma notable. -
Probar el alcance del contexto de la IA
Haz una pregunta con@codebasey comprueba si la respuesta sigue citando archivos excluidos. Por ejemplo, si excluyesnode_modulesy preguntas «qué componentes React hay en el proyecto», la IA no debería listar componentes dentro denode_modules/react. -
Verificar la búsqueda
Usa la búsqueda de código de Cursor (Cmd/Ctrl + P) para buscar un archivo dentro de un directorio que hayas excluido. Si no aparece, la configuración ha funcionado.
Cuándo refrescar la indexación manualmente
Cursor detecta cambios de archivos y actualiza la indexación de forma incremental, pero en estos casos conviene refrescar a mano:
- Has modificado
.cursorignore - Cambias a una rama de Git con cambios grandes
- Borras o añades muchos archivos de golpe
- Sientes que la IA ya no entiende bien el proyecto, posiblemente por indexación desactualizada
Cómo refrescar: Settings > Features > Codebase Indexing > Refresh. Un clic basta. El refresco reindexa todo el proyecto; espera a que termine Syncing.
Mantenimiento diario de la configuración
.cursorignore no se escribe una vez y ya está. A medida que el proyecto evoluciona, puede que tengas que ajustarla:
Lista de revisión mensual:
- ¿Se han excluido nuevos directorios de build? (por ejemplo,
.output/tras actualizar el framework) - ¿Hay nuevos directorios con archivos grandes que convenga excluir?
- ¿Siguen existiendo los directorios que ya excluías? (limpia reglas obsoletas)
Recomendaciones para trabajo en equipo:
Si es un proyecto de equipo, ¿conviene commitear .cursorignore a Git? Mi recomendación depende del caso:
- Reglas generales de exclusión (node_modules, dist, etc.): sí, commítelas para que todo el equipo se beneficie
- Preferencias personales de trabajo (excluir ciertos subproyectos): no las commitees, o añádelas a
.git/info/exclude
También puedes añadir en .gitignore:
.cursorignore.local
Y escribir tu configuración personal en .cursorignore.local, referenciándola desde .cursorignore si Cursor admite sintaxis de include.
Documenta el motivo de cada exclusión con comentarios
Es un hábito muy útil. En .cursorignore, añade comentarios explicando por qué excluyes un directorio:
# 2025-01-15: excluir el nuevo directorio de datos de entrenamiento IA; archivos demasiado grandes y sin necesidad de indexación
data/training/
# 2025-01-10: excluir temporalmente el directorio de pruebas de rendimiento; contiene muchos archivos de registro
perf-tests/
Tres meses después, te agradecerás haber dejado esos comentarios.
Lectura relacionada
- Guía completa de indexación del código base de Cursor: principios, configuración y símbolo @
- Cursor en proyectos grandes: que el Agent no se pierda en repos enormes
- Guía completa del cupo gratuito de Cursor
Resumen
Volvamos al problema del inicio: ¿indexación lenta y respuestas imprecisas de la IA en Cursor significan que la herramienta no sirve?
No. En la mayoría de casos, simplemente no le hemos dicho a la IA qué debe mirar y qué debe ignorar.
.cursorignore es una herramienta sencilla pero muy potente. Dedicar 5 minutos a configurarla puede ahorrarte horas de espera en los próximos meses y, sobre todo, hacer que la IA dé sugerencias más acertadas.
Lista de acción en tres pasos:
- Actúa ya: copia la plantilla base de este artículo y crea
.cursorignoreen la raíz del proyecto - Personaliza: según tu tipo de proyecto (React/Vue/Monorepo), añade reglas de exclusión específicas
- Mejora de forma continua: observa el comportamiento de la IA durante una semana, anota problemas e itera la configuración
No hace falta buscar la configuración perfecta a la primera. Empieza con la plantilla base para resolver el 80 % del problema y ajusta el 20 % restante sobre la marcha.
Si también usas Cursor en proyectos grandes, prueba estas estrategias. Comparte en los comentarios tu experiencia de configuración o los problemas que encuentres; quizá ayudes a otros desarrolladores en la misma situación.
Proceso completo de configuración de .cursorignore en Cursor
Pasos detallados para configurar .cursorignore desde cero y optimizar la indexación del código base en Cursor
⏱️ Estimated time: 10 min
- 1
Step 1: Crear el archivo .cursorignore y añadir la configuración base
Paso 1: crea el archivo .cursorignore en la raíz del proyecto
Plantilla de configuración base (cubre el 90 % de los escenarios):
• Directorios de dependencias: node_modules/, vendor/, .pnp/
• Artefactos de compilación: dist/, build/, out/, .next/, .nuxt/, .cache/
• Archivos de prueba: coverage/, *.spec.js, *.test.js, __tests__/
• Archivos de registro: *.log, npm-debug.log*, yarn-error.log*
• Configuración de entorno: .env, .env.local, credentials.json, *.key
• Control de versiones: .git/, .svn/
• Recursos grandes: *.mp4, *.zip, *.pdf, public/videos/
Nota: la sintaxis es igual que .gitignore; los directorios terminan con barra, admite comodines * y **, y # inicia comentarios - 2
Step 2: Añadir configuración específica según el tipo de proyecto
Paso 2: elige la configuración avanzada adecuada para tu proyecto
Exclusiones adicionales en proyectos React/Vue:
• public/assets/ (recursos estáticos grandes)
• public/images/*.png (archivos de imagen)
• public/fonts/ (archivos de fuentes)
Configuración para monorepos:
• apps/mobile/ (excluir la app móvil)
• apps/admin/ (excluir el panel de administración)
• packages/backend-utils/ (excluir el paquete de utilidades backend)
• Conservar solo el subproyecto en el que trabajas actualmente
Configuración para proyectos full stack:
• Desarrollo frontend: excluir server/, api/, database/, migrations/
• Desarrollo backend: excluir client/, public/, src/components/
Consejo: los desarrolladores full stack pueden preparar .cursorignore.frontend y .cursorignore.backend y cambiar según el trabajo del momento - 3
Step 3: Verificar que la configuración funciona
Paso 3: comprobar el efecto de la configuración
Método 1: revisar el tiempo de indexación
• Compara la duración de Syncing antes y después de la configuración; debería acortarse de forma notable
Método 2: revisar el estado de indexación
• Abre Settings > Features > Codebase Indexing
• Consulta el número de archivos indexados; debería bajar de forma clara
Método 3: probar el contexto de la IA
• Usa @codebase y pregunta: ¿qué componentes React hay en el proyecto?
• La IA no debería listar componentes dentro de node_modules/react
Método 4: verificar la búsqueda
• Con Cmd/Ctrl + P, busca archivos en directorios excluidos
• Si no aparecen, la configuración ha funcionado
Refrescar la indexación: Settings > Features > Codebase Indexing > Refresh - 4
Step 4: Configuración especial para monorepos (opcional)
Paso 4: estrategias adicionales de optimización para monorepos
Estrategia 1: dividir por zona de trabajo
• Excluye en .cursorignore los subproyectos que no te interesan
• Ejemplo: el equipo frontend excluye apps/mobile/, apps/api/, packages/backend-utils/
• Resultado: el tiempo de indexación baja de 15 minutos a 4 minutos
Estrategia 2: usar Project Rules
• Crea archivos .mdc en .cursor/rules/ (el antiguo .cursorrules de la raíz es legacy y se ignora en modo Agent)
• Describe la estructura del proyecto, las relaciones entre subaplicaciones y las reglas de referencia de código
• Ayuda a la IA a entender la arquitectura del monorepo y reduce recomendaciones entre fronteras
Estrategia 3: trabajar con ventanas separadas
• Abre ventanas independientes de Cursor para distintas subaplicaciones
• Ventana 1 abre apps/web, ventana 2 abre apps/api
• Usa @folder para referenciar explícitamente el código de paquetes dependientes
FAQ
¿Cuál es la diferencia entre .cursorignore y .cursorindexingignore? ¿Cuál debería usar?
• .cursorignore: bloquea por completo el acceso de la IA. No indexa, no lee ni referencia. Sirve para archivos sensibles (.env, credentials.json) y archivos inútiles (node_modules, dist)
• .cursorindexingignore: solo excluye de la indexación, pero la IA puede leerlos cuando haga falta. Sirve para código heredado y datos fixture de pruebas
Estrategia recomendada: en el 90 % de los casos basta con .cursorignore. Configura primero las reglas básicas de exclusión, observa el comportamiento de la IA durante una semana y usa .cursorindexingignore solo si necesitas un ajuste fino
¿Qué hago si la indexación sigue siendo lenta después de configurar .cursorignore?
1. Comprueba si la configuración funciona: en Settings > Features > Codebase Indexing revisa el número de archivos indexados; debería bajar de forma notable
2. Refresca la indexación manualmente: tras modificar la configuración hay que pulsar Refresh
3. Busca directorios grandes que hayas omitido: ejecuta `du -sh */` para localizar directorios pesados y añádelos a .cursorignore
4. Caso especial de monorepo: excluye subproyectos irrelevantes o abre ventanas independientes para cada subaplicación
5. Limpia la caché: elimina el directorio .cursor y vuelve a indexar
Caso típico: un proyecto de 100.000 líneas debería pasar de 8 minutos a 2-3 minutos tras la configuración. Si la diferencia es pequeña, la configuración está incompleta
Tras excluir node_modules, ¿la IA puede seguir sugiriendo APIs de librerías de terceros?
• Los datos base de entrenamiento de la IA ya incluyen conocimiento de librerías habituales (React, Vue, Express, etc.)
• Las sentencias import de tu código indican qué librerías usas
• La IA infiere el uso de las APIs a partir del contexto, sin necesidad de indexar el código fuente de node_modules
Prueba real: tras excluir node_modules, las sugerencias sobre React Hooks, métodos de Lodash y peticiones con Axios funcionan con total normalidad, y además se reducen los casos en los que la IA confunde código de dependencias con código del proyecto
Nota: en librerías poco comunes las sugerencias pueden ser menos precisas; puedes volver a incluir temporalmente un paquete concreto usando la sintaxis !
En trabajo en equipo, ¿debería commitear .cursorignore a Git?
Configuración que sí conviene commitear:
• Reglas generales de exclusión (node_modules, dist, .git, .env, etc.)
• Directorios específicos del framework (.next, .nuxt, .cache, etc.)
• Directorios de recursos grandes (public/videos, data/datasets, etc.)
Configuración que no conviene commitear:
• Preferencias personales de trabajo (excluir ciertos subproyectos)
• Rutas específicas del entorno de desarrollo
• Exclusiones temporales de depuración
Enfoque recomendado:
1. Commitea la configuración común en .cursorignore
2. Escribe la configuración personal en .cursorignore.local
3. Añade .cursorignore.local a .gitignore
4. Usa comentarios en .cursorignore para explicar el propósito de cada regla
En un monorepo, ¿cómo configuran .cursorignore distinto los desarrolladores frontend y backend?
Enfoque 1: preparar varios archivos de configuración
• Crea .cursorignore.frontend y .cursorignore.backend
• Copia el adecuado a .cursorignore según el trabajo del momento
• Adecuado para desarrolladores full stack que cambian con frecuencia
Enfoque 2: trabajar con ventanas separadas
• Ventana 1 abre apps/web (app frontend)
• Ventana 2 abre apps/api (app backend)
• Cada ventana tiene su propia configuración de .cursorignore
• Adecuado para monorepos grandes (20+ subaplicaciones)
Enfoque 3: configuración por rama de Git
• La rama main conserva la configuración común
• Las ramas personales personalizan .cursorignore
• Revierte los cambios del archivo de configuración antes de commitear código
Recomendación: equipos pequeños o medianos usan el enfoque 1; equipos grandes, el enfoque 2
Tras configurarlo, la IA sigue referenciando código en directorios excluidos. ¿Qué hago?
1. La indexación no se ha refrescado
• Solución: Settings > Codebase Indexing > Refresh
2. Error de sintaxis en la configuración
• Comprueba: ¿los directorios terminan con barra (node_modules/)?
• Comprueba: ¿los comodines son correctos (*.log y no *.log/)?
3. Conflicto con .gitignore
• Cursor lee tanto .gitignore como .cursorignore
• Usa la sintaxis ! para sobrescribir reglas de .gitignore
4. La IA usa contexto histórico
• Borra el historial del chat y vuelve a preguntar
• Elimina el directorio de caché .cursor y vuelve a indexar
5. El archivo en realidad no está excluido
• Prueba: búscalo con Cmd/Ctrl + P; si aparece, no está excluido
• Usa git check-ignore -v [ruta-del-archivo] para depurar la configuración
14 min de lectura · Publicado el: 15 ene 2026 · Actualizado el: 21 ago 2026
Guía completa de Cursor
Si llegaste desde búsqueda, lo más rápido es ir al artículo anterior o siguiente de esta misma serie.
Anterior
Guía completa del índice Codebase de Cursor: principios, configuración y uso práctico del símbolo @
Guía 2026 de la indexación de código (codebase indexing) en Cursor: cómo funciona, configuración de .cursorignore, los 6 símbolos @ y la verdad sobre la privacidad: ¿tu índice va a la nube?
Parte 9 de 25
Siguiente
¿Cuál usar en Cursor: @Codebase, @Docs o @Files? Guía de decisión con escenarios reales
Guía práctica del sistema @ de Cursor: escenarios de @Codebase, @Docs y @Files, con árbol de decisión, casos reales y buenas prácticas para elegir el símbolo correcto y mejorar tu eficiencia con IA.
Parte 11 de 25



Comentarios
Inicia sesión con GitHub para dejar un comentario