Las 3 Decisiones Técnicas Que Llevaron Mi Herramienta al #2 en Google (Y Las 7 Que No Importaron)

Proyectos· 6 min de lectura

La Verdad Incómoda Sobre el SEO Que Nadie Admite

Cuando lancé [conversor-iae-cnae](https://www.conversoriaecnae.es) en noviembre de 2024, tenía una lista de 47 cosas que "tenía que hacer" para rankear en Google.

Sitemaps XML ✓ Meta descriptions ✓ Alt text en imágenes ✓ Velocidad de página ✓

La típica checklist que todo el mundo repite.

Tres meses después, la herramienta llegó al puesto #2 en Google para su keyword principal. 63,600 clics y 1.83M impresiones según Google Search Console.

Pero aquí viene lo interesante: el 80% de ese tráfico vino de solo 3 decisiones técnicas. El otro 90% de la checklist de SEO apenas movió la aguja.

Este es el desglose real de lo que funcionó (con commits de GitHub para que puedas verificarlo).

Decisión #1: 2,247 Páginas de Detalle con ISR (La Que Cambió Todo)

El contexto: Conversor IAE CNAE es una herramienta que convierte entre códigos fiscales españoles. Tenía dos opciones:

1. Una sola página con buscador dinámico (más fácil de construir) 2. 2,247 páginas estáticas individuales, una por cada código

Elegí la opción 2. Y aquí está el truco técnico que hizo la diferencia:

```typescript // Cada página de detalle usa ISR con revalidación cada hora export const revalidate = 3600;

export async function generateStaticParams() { // Genera paths para 2,247 códigos IAE + CNAE const codes = await getAllCodes(); return codes.map((code) => ({ slug: code.codigo_stripped })); } ```

Por qué funcionó:

  • Google puede rastrear e indexar HTML estático (no tiene que ejecutar JavaScript)
  • Cada código tiene su propia URL limpia (`/iae/5013` en lugar de `/?search=5013`)
  • ISR me da lo mejor de ambos mundos: velocidad de estático + frescura de dinámico
  • **1.83M impresiones en 3 meses** vinieron principalmente de estas páginas de detalle

La mayoría de desarrolladores habrían construido un buscador SPA. Yo generé 2,247 páginas estáticas. Esa fue la decisión.

Decisión #2: Structured Data Para Bots de IA (No Solo Para Google)

El problema: Tenía páginas indexadas, pero mi tasa de indexación era del 21.5%. Solo 2,430 páginas de 10,000+ estaban en el índice de Google.

Investigué. El problema no era crawling, era relevancia percibida.

La solución: Implementé schemas JSON-LD específicos para bots de IA:

```json { "@context": "https://schema.org", "@type": "DefinedTerm", "name": "IAE 501.3", "description": "Venta en hipermercados", "inDefinedTermSet": "https://www.conversoriaecnae.es/iae", "termCode": "501.3" } ```

Commits reales que muestran la evolución:

  • **7d9c4a6** (10 feb): "fix(seo): remove deprecated schemas, add DefinedTerm"
  • **4b18d86** (10 feb): "fix(seo): remove duplicate FAQPage JSON-LD, add dynamic FAQs"

Estos no son schemas genéricos de "WebPage". Son DefinedTerm, diseñados específicamente para que ChatGPT, Perplexity y Gemini entiendan que esto es un código oficial con equivalencias.

Resultado: La tasa de indexación subió, pero más importante, empecé a aparecer en respuestas de bots de IA cuando alguien pregunta "¿Cuál es el CNAE equivalente al IAE 501.3?"

No solo optimicé para Google. Optimicé para el futuro del search.

Decisión #3: PostgreSQL Full-Text Search Con Ponderación (No Elasticsearch)

Todos me dijeron: "Para búsqueda en tiempo real, necesitas Elasticsearch o Algolia".

Yo implementé búsqueda full-text con PostgreSQL nativo de Supabase:

```sql CREATE FUNCTION search_iae_codes( search_query TEXT, limit_count INT DEFAULT 10 ) RETURNS TABLE (...) AS $$ BEGIN RETURN QUERY SELECT * FROM iae_codes WHERE search_vector @@ to_tsquery('spanish', search_query) ORDER BY ts_rank_cd(search_vector, to_tsquery('spanish', search_query)) DESC LIMIT limit_count; END; $$; ```

Por qué esta decisión fue crítica:

1. Configuración del lenguaje español: `to_tsquery('spanish', ...)` hace stemming correcto ("empresas" → "empresa") 2. Ponderación por relevancia: `ts_rank_cd` prioriza coincidencias exactas sobre parciales 3. Infraestructura simplificada: Una base de datos menos, un servicio menos que mantener 4. Latencia <100ms: Los índices GIN hacen que las búsquedas sean instantáneas

La búsqueda en tiempo real no solo mejora UX. Mejora SEO indirectamente porque reduce bounce rate y aumenta tiempo en página.

Google ve que la gente interactúa con tu sitio. Rankea mejor.

Las 7 Cosas Que (Casi) No Importaron

Y ahora la parte que nadie te cuenta:

1. Meta descriptions perfectas → Muy poco impacto en rankings (aunque mejoran CTR) 2. Alt text en todas las imágenes → La herramienta es casi texto puro, irrelevante 3. Sitemap XML perfecto → Google lo ignoró 3 semanas, luego rastreó todo de golpe 4. Internal linking strategy → Con 2,247 páginas, el linking interno se construye solo 5. Perfect Core Web Vitals → Ayuda, pero no fue diferencial (ya estaban en "good") 6. Backlinks manuales → Conseguí 0 backlinks externos, todo fue SEO técnico 7. Content freshness obsession → ISR revalida cada hora, pero Google no rastrea tan frecuentemente

Estas cosas ayudan. Pero si tuviera que empezar de cero con 10 horas, las gastaría todas en las 3 decisiones de arriba.

Los Números Reales (Sin Filtros)

Porque esto es build in public, aquí están los números completos de Google Search Console:

  • **63,600 clics totales** (últimos 3 meses)
  • **1.83M impresiones** (alcance orgánico)
  • **Posición #2** para "conversor iae cnae" (keyword principal)
  • **21.5% indexation rate** (mejorable, pero funcional)
  • **~20K clics/mes** desde marzo 2025

La curva no fue lineal. Fue:

  • Semanas 1-4: ~500 clics/mes (fase de sandbox)
  • Semanas 5-8: ~5K clics/mes (Google empieza a confiar)
  • Semanas 9-12: ~20K clics/mes (momentum exponencial)

Esto no es SaaS de consumo. Es una herramienta B2B ultra-nichada para autónomos y gestorías españolas. 20K clics mensuales en este nicho es brutal.

El Framework Que Puedes Replicar

Si estás construyendo una herramienta similar, este es el playbook:

1. Genera páginas estáticas masivamente → Usa ISR si tu contenido cambia ocasionalmente 2. Implementa structured data agresivamente → Prioriza schemas que los bots de IA entiendan 3. Optimiza búsqueda interna con full-text search → Reduce bounce rate indirectamente mejora SEO 4. Ignora el 80% de checklists genéricas → Enfócate en lo que mueve la aguja para TU caso de uso

Y lo más importante: ship fast, mide, itera.

Mi commit history muestra que toqué los schemas 3 veces ([092675f](https://github.com), [7d9c4a6](https://github.com), [4b18d86](https://github.com)) antes de encontrar la configuración óptima.

No fue planificación perfecta. Fue iteración rápida con datos reales.

El Truco Que Nadie Menciona

Una última cosa.

El factor más importante para rankear rápido no fue ninguna táctica técnica.

Fue resolver un problema real que la gente busca activamente.

Hay 3.3 millones de autónomos en España. Todos necesitan convertir entre IAE y CNAE para trámites de Hacienda y Seguridad Social. Y antes de mi herramienta, no había una solución decent online.

Demanda existente + solución técnica competente = rankings rápidos.

No necesitas backlinks si tienes esto.

---

¿Estás construyendo herramientas SEO-first? Los principios son replicables: páginas masivas con ISR, structured data para IA, y búsqueda optimizada. El resto es ruido.

Seguimos construyendo.

Brian Mena

Brian Mena

Ingeniero informatico construyendo productos digitales rentables: SaaS, directorios y agentes de IA. Todo desde cero, todo en produccion.

LinkedIn