Crecimiento Orgánico
Ejecutas el sistema en PLAYBOOK.md sobre el proyecto actual. Léelo una vez al
inicio, luego lee un módulo solo cuando llegues a la fase que lo utiliza.
Escribe cada hallazgo en docs/seo/ del proyecto (copia las plantillas de
templates/) y haz commit después de cada fase.
Mapa
| # | Fase | Leer | Salida en el proyecto |
|---|---|---|---|
| 0 | Reconocimiento + línea base | PLAYBOOK.md §0 | docs/seo/00-baseline.md |
| 1 | SEO técnico | checklists/technical-seo.md | código + seo.config.mjs |
| 2 | Search Console + Bing | checklists/search-console.md | números de línea base |
| 3 | Investigación: Tendencias, disposición a pagar, autocompletado, Ahrefs/Semrush, Search Console, fuentes | modules/research.md | docs/seo/research/*.md, 09-sources-log.md |
| 4 | Plan de crecimiento | modules/pseo-2.md, modules/tool-led-seo.md, modules/money-pages.md, modules/linkable-assets.md | docs/seo/03-seo-plan.md |
| 5 | Limpieza + construcción | PLAYBOOK.md §5, briefs 04/07/08 | páginas, redirecciones, 05-consolidation-map.md |
| 6 | GEO + conversión | modules/geo-ai-search.md, modules/seo-to-revenue.md | robots, forma de página, CTAs, eventos |
| 7 | Lanzamiento + medición | PLAYBOOK.md §7 | docs/seo/06-launch-log.md |
El usuario puede pedir solo una parte ("solo herramientas SEO", "audita mi sitio", "plan pSEO"). Entonces haz solo esa fase, pero igual ejecuta la fase 0 rápidamente primero.
Preguntar primero (solo lo que el código no puede saber)
- Dominio de producción y host preferido (apex o www).
- Países e idiomas objetivo. Nunca los asumas desde la ubicación del fundador.
- Acceso a Search Console / analíticas.
- Herramientas de palabras clave de pago (Ahrefs, Semrush). Capturas de pantalla o exportaciones están bien.
- ¿Son reales las calificaciones, recuentos de reseñas o afirmaciones de "usado por" en el sitio?
Scripts (Node 18+, sin dependencias; en scripts/)
| Script | Uso |
|---|---|
check-live.sh <url> | Lo que los crawlers obtienen del sitio en vivo: redirecciones, 404, robots, sitemap, título/canonical/H1 por página sin JS |
prerender.mjs --config seo.config.mjs | SPA → HTML estático por ruta + 404.html + spa.html + sitemap.xml |
audit.mjs <dist> --base <url> | Verifica el HTML construido: títulos, descripciones, canonicals, H1, páginas finas, JSON-LD, consistencia del sitemap, esquema de calificación |
overlap.mjs <dist> --prefix /<cluster>/ | Control de duplicados: Jaccard de shingles de 5 palabras, <40% y ≥800 palabras |
autocomplete.mjs "<semilla>" --gl us,gb,au --expand | Consultas reales de autocompletado de Google por país (evidencia de demanda) |
Reglas aprendidas a las malas
- Investiga en la configuración regional del mercado objetivo. El autocompletado del país equivocado una vez produjo un lote completo de páginas del mercado equivocado.
- Guarda cada extracción de investigación como un archivo con fecha en
docs/seo/research/, y registra cada hecho en página en09-sources-log.md(fuentes oficiales para hechos legales; hechos de competidores fechados y revisados cada 90 días; afirmaciones no verificables omitidas). - La herramienta gratuita de Ahrefs tiene una verificación humana que el usuario debe pasar. Pide capturas de pantalla, nunca intentes evitarla.
- Las páginas existen porque existe demanda. Cada página planificada menciona su evidencia.
- El control de calidad no es opcional. <40% de superposición con hermanas, ≥800 palabras, sus propios datos/herramienta/salida. Las plantillas
{ciudad}intercambiadas recibennoindexy salen del sitemap. Las penalizaciones por contenido escalado afectan a todo el dominio. - Las herramientas son páginas, no widgets. Cada herramienta necesita una guía editorial única, preguntas frecuentes y esquema en HTML estático, o es una página fina.
- Menos páginas, más profundas. Fusiona publicaciones finas en guías profundas y redirige cada slug antiguo con 301.
- Sin números inventados ni prueba social. Precios obtenidos o calculados en la página; hechos de competidores fechados; esquema de calificación solo cuando el propietario confirma que es real.
- Los crawlers (y los crawlers de IA) deben ver el contenido sin JavaScript.
- Un host, una URL, 404 reales, un sitemap generado a partir de los mismos datos que las páginas.
- Lanza en lotes de 10–20; expande solo lo que recibe impresiones.
- Cada página termina en un CTA relevante; rastrea conversiones por grupo de páginas.
Estilo de trabajo
- Los cambios que afectan la producción (redirecciones, robots.txt, noindex, eliminar páginas) requieren una confirmación de una línea del usuario primero, con la lista.
- Los clics de Search Console, DNS y analíticas son del usuario; da pasos exactos.
- Ejecuta
audit.mjsdespués de cada compilación ycheck-live.shdespués de cada despliegue, y pega el resumen. - Registra números fechados en
06-launch-log.mdpara que la próxima sesión pueda comparar.
Frameworks
prerender.mjs es para SPAs renderizadas en cliente (Vite, CRA, React Router). Next.js,
Astro, Nuxt, SvelteKit, Remix: usa sus APIs de metadatos y plugins de sitemap, y de todas formas ejecuta audit.mjs en la salida de la compilación. WordPress/Webflow/Shopify: salta el código de la fase 1, usa la lista de verificación contra el sitio en vivo con check-live.sh.