diff --git a/astro.config.mjs b/astro.config.mjs
index ad7459b..13cc3a6 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -10,7 +10,10 @@ export default defineConfig({
}),
integrations: [
sitemap({
- filter: (page) => !page.endsWith('/cookies/') && !page.endsWith('/privacidad/'),
+ filter: (page) =>
+ !page.endsWith('/cookies/') &&
+ !page.endsWith('/privacidad/') &&
+ !page.endsWith('/aviso-legal/'),
}),
],
});
diff --git a/docs/seo-audit/mnqcatering.com-audit/ACTION-PLAN.md b/docs/seo-audit/mnqcatering.com-audit/ACTION-PLAN.md
new file mode 100644
index 0000000..5c7f084
--- /dev/null
+++ b/docs/seo-audit/mnqcatering.com-audit/ACTION-PLAN.md
@@ -0,0 +1,37 @@
+# Plan de acción priorizado — MNQ Catering y Evento
+
+## Fase 0 — Ya hecho, pendiente de un solo paso tuyo
+- [x] Corregir dominio canónico en todo el código (commit `a6692b7`)
+- [x] Corregir `@type` de schema inválido (`CateringService` → `CateringBusiness`)
+- [ ] **Desplegar a producción** — sin esto, nada de lo de hoy tiene efecto real. Es el único paso que falta para resolver ~15 hallazgos de golpe (dominio, sitemap, robots, OG, canonical).
+
+## Fase 1 — Críticos (esta semana)
+- [ ] Desplegar el commit `a6692b7` (ver Fase 0)
+- [ ] Quitar `/aviso-legal/` del filtro de exclusión inverso en `astro.config.mjs` (está `noindex` pero sigue en el sitemap)
+- [ ] Quitar el `` duplicado de Google Fonts en `MainLayout.astro` (regresión: re-bloquea el render que el preload ya había resuelto)
+- [ ] Revisar por qué el CSS de `/aviso-legal` (24KB) se está bundleando sitewide — probable leak de Astro
+- [ ] Agregar headers de seguridad (HSTS, X-Content-Type-Options, X-Frame-Options, CSP) a nivel de hosting/reverse-proxy
+- [ ] Habilitar compresión gzip/brotli en el servidor
+
+## Fase 2 — Alto impacto (próximas 2-3 semanas, necesita datos tuyos)
+- [ ] Agregar rango de precio ("desde X€ por persona" o similar) — bloqueador #1 de conversión y de citabilidad IA según 3 auditores independientes
+- [ ] Agregar rango de capacidad (mínimo/máximo de invitados) por tipo de evento
+- [ ] Agregar antelación mínima de reserva
+- [ ] Mencionar "Málaga" y zona de cobertura explícitamente en el texto visible de cada página (hoy: cero menciones)
+- [ ] Unificar "MNQ Catering y Evento" vs "y Eventos" en todo el sitio (header/footer vs. resto)
+- [ ] Corregir la CSS que retrasa el LCP del `
` del hero (animation-delay de 500ms en `hero-enter-2`)
+
+## Fase 3 — Contenido y autoridad (mes 2)
+- [ ] Completar Google Business Profile (dirección, categoría, fotos) — ver `docs/seo-audit/publicacion-buscadores-checklist.md`
+- [ ] Agregar coordenadas `geo` al schema una vez fijado el pin en GBP
+- [ ] Agregar perfiles sociales reales (`sameAs`) si existen
+- [ ] Nombrar y dar credenciales al "Chef Ejecutivo" mencionado (hoy sin nombre ni bio) — señal de E-E-A-T
+- [ ] Verificar que el venue de testimonio citado ("Castillo de Viñuelas") sea correcto — parece ser de Madrid, no Málaga
+- [ ] Replicar el patrón FAQ (bueno para AEO) en homepage, no solo en /contacto
+- [ ] Reescribir el párrafo "cobertura confirmada caso a caso" que se repite casi idéntico en 5 páginas
+
+## Fase 4 — Monitoreo continuo
+- [ ] Verificar Search Console tras el deploy (indexación real de las 6 páginas)
+- [ ] Re-correr Lighthouse tras aplicar Fase 1-2
+- [ ] Medir `/corporativo-business` con Lighthouse (no se completó en esta auditoría por límite de tiempo)
+- [ ] Confirmar comportamiento del apex `mnqeventos.es` sin `www` (no respondió durante esta auditoría, verificar redirect)
diff --git a/docs/seo-audit/mnqcatering.com-audit/FULL-AUDIT-REPORT.md b/docs/seo-audit/mnqcatering.com-audit/FULL-AUDIT-REPORT.md
new file mode 100644
index 0000000..4a31f1f
--- /dev/null
+++ b/docs/seo-audit/mnqcatering.com-audit/FULL-AUDIT-REPORT.md
@@ -0,0 +1,81 @@
+# Auditoría SEO completa — MNQ Catering y Evento
+
+Fecha: 2026-09-15
+Sitio auditado: **https://www.mnqeventos.es** (dominio real y registrado)
+
+## ⚠️ Nota metodológica crítica
+
+Esta auditoría arrancó apuntando a `mnqcatering.com` porque es el dominio que
+usa todo el código fuente (`astro.config.mjs`, schema, footer, etc.) y los
+últimos commits del repo. A mitad de auditoría se confirmó — vía `dig`,
+`whois` y `curl`/WebFetch independientes — que **`mnqcatering.com` nunca fue
+registrado**: WHOIS devuelve "No match", no tiene NS, no resuelve. El dominio
+real, registrado y sirviendo tráfico ahora mismo es **`www.mnqeventos.es`**.
+
+Se corrigió el rumbo a mitad de auditoría: cada especialista fue re-dirigido
+contra `www.mnqeventos.es`. El código del repo ya fue corregido en el commit
+`a6692b7` (dominio canónico + un bug real de schema.org encontrado en la
+auditoría), **pero ese fix todavía no está desplegado en producción** — el
+sitio en vivo sigue sirviendo el build viejo, con todas las referencias
+internas (canonical, OG, JSON-LD, sitemap, robots.txt) apuntando al dominio
+muerto.
+
+**Esto es, en sí mismo, el hallazgo más severo de toda la auditoría**: hasta
+que se despliegue, cada motor de búsqueda y cada IA que respete la
+canonicalización va a asociar el contenido con una URL que no existe.
+
+## Resumen ejecutivo
+
+**SEO Health Score: ~52/100 (estado actualmente en vivo)**
+
+Este número reflejaría **~65-70/100 solo con desplegar** el fix ya
+commiteado (dominio + schema), sin escribir una línea de código nueva. El
+resto (contenido, precios, GBP) sí requiere trabajo adicional.
+
+| Categoría | Score | Nota |
+|---|---|---|
+| Técnico | 58/100 | Bueno en fuente; roto en vivo por el dominio no desplegado |
+| Contenido | 32/100 | Contenido "thin", cero cifras concretas (precio/capacidad) |
+| Schema / structured data | 62/100 (medido antes del fix) | `@type` inválido corregido hoy, pendiente de deploy |
+| Sitemap | 25/100 (en vivo) → ~75 post-deploy | Cadena de sitemap 100% rota en vivo por el dominio |
+| Performance (Lighthouse real) | ~78-84/100 | Bueno, con un LCP evitable por CSS de animación |
+| Visual/mobile | No verificable | Limitación de red del sandbox, no defecto del sitio |
+| AEO / GEO (IA) | 46/100 | Permisivo con AI crawlers, pero sin señales de marca |
+| SEO local | 22/100 (en vivo) | Sin dirección/ciudad visible en el sitio en vivo hoy |
+| SXO (experiencia de búsqueda) | 59/100 | Estructura de página correcta, sin ancla de precio/zona |
+
+### Top 5 críticos
+1. **El fix de dominio ya commiteado no está desplegado** — deploy pendiente, cero código nuevo necesario.
+2. **Cero mención de "Málaga" o de la dirección en el sitio en vivo** — ni en texto ni en schema.
+3. **Cero cifras de precio/capacidad/antelación** en ninguna página — el bloqueador #1 de conversión y de citabilidad por IA.
+4. `@type: "CateringService"` no es un tipo válido de schema.org — corregido hoy a `CateringBusiness`, pendiente de deploy.
+5. El sitemap y el robots.txt en vivo apuntan a `sitemap-0.xml` del dominio muerto — cadena de descubrimiento rota.
+
+### Top 5 quick wins (una vez desplegado)
+1. Deploy del commit `a6692b7` — resuelve dominio, schema, sitemap, robots.txt, OG de un saque.
+2. Agregar "Málaga" + rango de precio "desde X€" en homepage y páginas de servicio (bloqueado solo por falta de esos datos reales, no de código).
+3. Quitar el `` duplicado de Google Fonts que re-bloquea el render (regresión de un fix anterior).
+4. Excluir `/aviso-legal/` del sitemap (ya está `noindex` pero sigue listada).
+5. Unificar "MNQ Catering y Evento" vs "y Eventos" (inconsistencia de nombre de marca en header/footer vs. resto del sitio).
+
+## Detalle por categoría
+
+Cada archivo tiene evidencia completa (curl/dig/whois, snippets, tablas de severidad):
+
+- [`findings/technical.md`](findings/technical.md) — robots, sitemap, canonicals, headers de seguridad, TLS
+- [`findings/content.md`](findings/content.md) — E-E-A-T, thin content, citabilidad IA
+- [`findings/schema.md`](findings/schema.md) — JSON-LD, tipo inválido corregido, recomendaciones
+- [`findings/sitemap.md`](findings/sitemap.md) — estructura, aviso-legal, trailing slash
+- [`findings/performance.md`](findings/performance.md) — Lighthouse real, LCP, CSS duplicado
+- [`findings/visual.md`](findings/visual.md) — bloqueado por limitación de red del sandbox
+- [`findings/geo.md`](findings/geo.md) — AEO/GEO, llms.txt, AI crawlers
+- [`findings/local.md`](findings/local.md) — NAP, GBP (pendiente, reconocido), schema local
+- [`findings/sxo.md`](findings/sxo.md) — SERP real, personas, page-type match
+
+## Seguridad de headers (hallazgo transversal)
+
+Ninguna respuesta del sitio en vivo trae HSTS, X-Content-Type-Options,
+X-Frame-Options, CSP ni Referrer-Policy, y no hay compresión gzip/brotli en
+el HTML. Esto es de capa de hosting/reverse-proxy, no de código Astro — hay
+que revisarlo donde esté corriendo el servidor (Docker/nixpacks + lo que sea
+que haga de proxy delante).
diff --git a/docs/seo-audit/mnqcatering.com-audit/findings/content.md b/docs/seo-audit/mnqcatering.com-audit/findings/content.md
new file mode 100644
index 0000000..b963e79
--- /dev/null
+++ b/docs/seo-audit/mnqcatering.com-audit/findings/content.md
@@ -0,0 +1,142 @@
+# Content Quality Audit — mnqcatering.com
+
+Scope: E-E-A-T, readability, thin content, duplication, AI citation readiness for the 6 commercial pages (`/`, `/nosotros`, `/bodas-reales`, `/corporativo-business`, `/reuniones-familiares`, `/contacto`).
+
+## Methodology note / critical caveat
+
+**The live site could not be fetched during this audit.** `www.mnqcatering.com` and `mnqcatering.com` returned `NXDOMAIN` both from the local resolver and when queried directly against `8.8.8.8` (Google public DNS) on 2026-09-15 — this is a real, non-sandboxed DNS failure, not a tool limitation (general internet access and DNS resolution for other domains worked fine in the same environment). If this is still true in production, it is a **critical, audit-blocking issue in its own right**: no amount of content quality matters if the domain doesn't resolve — Googlebot, ChatGPT/Perplexity crawlers, and users get nothing. This should be verified independently and flagged to whichever category owns DNS/hosting/technical SEO; it is out of scope for this content-only review to diagnose further.
+
+Given the fetch failure, this audit is based on the **Astro page source** (`src/pages/*.astro`) in the repo, which renders the copy 1:1 (no client-side content injection observed — FAQ arrays and structured data are server-rendered at build time). Word counts below are computed programmatically from the actual rendered text nodes (frontmatter, `