Files
manuyasm87 b084aeff6e fix(seo): exclude noindex aviso-legal page from sitemap; add full audit report
Sitemap filter was excluding cookies/ and privacidad/ but not
aviso-legal/, even though that page is marked noindex,follow -- a
noindexed page has no business being listed for crawl discovery.

Also adds docs/seo-audit/mnqcatering.com-audit/ -- the full multi-agent
SEO audit run this session against the corrected live domain
(www.mnqeventos.es), including the FULL-AUDIT-REPORT.md, ACTION-PLAN.md,
and per-category findings files.
2026-09-15 10:19:00 +02:00

150 lines
17 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SXO Audit — mnqeventos.es (MNQ Catering y Evento)
**Audited URL:** https://www.mnqeventos.es/ (live, verified 2026-09-15)
**Pages in scope:** `/` (home), `/bodas-reales`, `/corporativo-business`, `/reuniones-familiares`
**Target keywords:** "catering bodas Málaga", "catering eventos corporativos Málaga", "catering premium Málaga"
**Method:** Live fetch via `render_page.py --mode auto` + `parse_html.py`, cross-referenced against real Google SERP results (WebSearch) and one competitor page inspection (WebFetch, laborraja.com).
> **Note on domain history:** the original audit target `mnqcatering.com` is an unregistered domain (WHOIS: no match, NXDOMAIN everywhere). The correct live site is `www.mnqeventos.es`. This was confirmed live and used for this audit.
---
## Critical technical caveat (outside SXO scope, but blocks everything below)
**Every page in scope currently self-references the wrong, unregistered domain** in `<link rel="canonical">`, `og:url`, `og:image`, `twitter:image`, and the `CateringService` JSON-LD `url` field — all point to `https://www.mnqcatering.com/...`, which does not resolve (NXDOMAIN). The footer also displays the text link `www.mnqcatering.com`.
This means Google's current understanding of "the real URL" for every page it has crawled points at a dead host. No amount of SXO/on-page work matters if canonical/indexing signals are broken — **this should be fixed and redeployed before any other action in this report is prioritized.** The orchestrator noted this is already corrected in the codebase and pending deployment; flagging here because it is what the *live* site still shows as of this audit. Recommend `/seo page` or a technical-SEO pass to confirm the fix covers canonical, OG, Twitter Card, and JSON-LD `url` fields consistently across all templates before redeploying.
---
## Summary
MNQ's four core pages are **structurally the right page type** — they closely follow the "Service Page" pattern (process/methodology sections, FAQ, testimonials, contact CTA) that dominates the real SERP for these keywords, which is good news: this is not a page-type mismatch requiring a rebuild. The real gap is a **content-completeness and local-anchoring gap**: the pages never mention "Málaga," never state a service area, never give any pricing anchor (not even a "desde X€/persona" range), and never state guest-capacity ranges. Real competitors ranking for the same terms (La Borraja, directories like bodas.net/celebrents.es, and a dedicated "cuánto cuesta un catering de boda en Málaga" guide) either saturate the page with location keywords, publish price ranges, or both. MNQ's copy is polished and emotionally strong (real named-couple testimonials, venue names, sensory dish descriptions) but reads as premium-generic rather than answering the two questions every first-time visitor actually has before contacting: **"Do they cover my area?"** and **"Is this within my budget?"**
**SXO Gap Score: 59/100** (Needs Work — see breakdown below; separate from any SEO Health Score).
---
## SERP Analysis
Searched: "catering bodas Málaga premium", "catering eventos corporativos Málaga", "catering bodas Málaga precio".
| Signal | Observation |
|---|---|
| Dominant result type | Mixed: ~45% marketplace/directory pages (bodas.net, celebrents.es, cateringclick.com, encuentratucatering.es — **Comparison/Local-directory type**), ~45% individual competitor **Service Pages** with strong local anchoring (La Borraja, Smart Catering Málaga, Gorest, Alejandra Catering, Top Food, La Monarca, Catering Lepanto), ~10% informational/price-guide content (Alejandra Catering's "¿Cuánto cuesta realmente un catering de boda en Málaga?"). |
| Location saturation | Competitor pages mention "Málaga"/"Costa del Sol" 15+ times each (verified on laborraja.com), including named venues (Archidona, Marbella, Ronda, Churriana). MNQ's 4 pages: **0 mentions of Málaga/Costa del Sol/Andalucía** in body copy, headings, or schema. |
| Pricing signal | Multiple ranking pages/directories display explicit price ranges (€69–153/person, avg €70–109/person) or a whole article dedicated to cost breakdown. This is a real, rankable, expected content angle Google is rewarding. MNQ shows **no number anywhere**, on any of the 4 pages — three near-identical FAQ answers just say "se calcula a medida." |
| Trust signals on competitors | Even top competitors mostly lack chef bios/certifications too (La Borraja has none) — so MNQ's 2 named-couple testimonials with real venue names on `/bodas-reales` are already **above competitor baseline** on this specific dimension. |
| Local pack / NAP | Directories imply strong local-intent SERP; MNQ has PostalAddress/`addressLocality: Málaga` only on `/contacto` (outside audit scope) — none of the 4 in-scope pages carry any local business schema or address. |
**Dominant SERP page type: Service Page with Local Page characteristics** (location-saturated, venue-specific, sometimes with directory/comparison competition layered on top).
---
## Page-Type Classification & Mismatch Severity
| Page | Classification (taxonomy) | vs. SERP dominant type | Mismatch severity |
|---|---|---|---|
| `/` (home) | Service Page hub (hero + CTA + 3 service teasers + testimonials) | Correct base type | ALIGNED (structure) |
| `/bodas-reales` | Service Page (overview → process → testimonials → FAQ → CTA) — matches taxonomy's Service Page structure almost exactly | Missing the **Local Page** layer (no address, no service-area statement, no Málaga keyword) that real competitors add on top of the same Service Page skeleton | **MEDIUM** |
| `/corporativo-business` | Service Page, best-executed of the three (on-page lead form) | Same local-layer gap | **MEDIUM** |
| `/reuniones-familiares` | Service Page | Same local-layer gap, plus missing guest-capacity/minimum info | **MEDIUM** |
**Primary finding: this is not a page-type mismatch (the skeleton is right) — it's a missing Local Page layer + missing pricing transparency**, both of which the real SERP consensus rewards. Treat as MEDIUM severity: structurally sound, functionally incomplete for a local, budget-sensitive buyer journey.
---
## User Stories (derived from SERP signals)
1. **As a bride/groom planning a wedding in Málaga (Awareness→Consideration)**, I want to instantly confirm this caterer serves my area, because I'm scanning several providers quickly, but I'm blocked by **zero mentions of "Málaga" or any service area** anywhere on `/bodas-reales` — the copy could describe a caterer in any city.
*(Source: competitor SERP pages mention Málaga/Costa del Sol 15+ times each; MNQ page: 0 mentions.)*
2. **As a budget-conscious couple (Consideration)**, I want at least a ballpark price per person before messaging a stranger on WhatsApp, because the SERP itself surfaces a dedicated "¿Cuánto cuesta un catering de boda en Málaga?" guide and directory pages publishing €69–153/person ranges, but I'm blocked by MNQ's explicit refusal to give any number ("no trabajamos con paquetes cerrados," "presupuesto a medida" repeated verbatim on 3 pages).
*(Source: ranking price-guide article + directory price displays in top-10 SERP.)*
3. **As a corporate event planner comparing several caterers (Decision)**, I want to see named case studies or client logos specific to corporate events, because comparison fatigue is high in this niche (7+ visually similar "premium" competitors rank), but `/corporativo-business` shows **zero** case studies or logos on the page itself — the only testimonial in the entire site (Javier Ruiz, TechCorp) lives on the homepage and isn't repeated here.
*(Source: 7 individual competitor Service Pages co-ranking; page content inspection.)*
4. **As a couple wanting reassurance before contacting (Consideration→Decision)**, I want to confirm they can actually travel to my specific venue, because `/bodas-reales` *does* build real trust with two named-couple testimonials and real venue names (Finca La Montaña, Castillo de Viñuelas) — a genuine strength — but coverage is only ever described as "cobertura a confirmar," leaving the geography question open even after reading the FAQ.
*(Source: page FAQ "¿Cuándo se confirma la viabilidad del evento?" answers process, never geography.)*
5. **As a family organizing a baptism or anniversary (Awareness)**, I want to know roughly how many guests they can handle and whether my gathering is "big enough" or "too big," because `/reuniones-familiares` clearly lists formats (Brunch, comida sentada, cóctel, cena privada) — good clarity — but never states a minimum or maximum guest count or minimum spend, so I don't know if I qualify before reaching out.
*(Source: page content inspection — no numeric guest range anywhere on the page.)*
Stories span Awareness (1, 5), Consideration (2, 3), and Decision (4) — 3 journey stages covered.
---
## Persona Scoring
| Persona | Target page | Relevance | Clarity | Trust | Action | Total | Rating |
|---|---|---|---|---|---|---|---|
| Novia/Novio premium en Málaga | `/bodas-reales` | 20/25 | 14/25 | 18/25 | 16/25 | **68/100** | Good |
| Responsable corporativo comparando proveedores | `/corporativo-business` | 21/25 | 17/25 | 12/25 | 22/25 | **72/100** | Good |
| Familia organizando bautizo/aniversario | `/reuniones-familiares` | 19/25 | 13/25 | 15/25 | 17/25 | **64/100** | Good (borderline) |
| Comprador sensible al precio (cross-site) | all 4 | 10/25 | 6/25 | 10/25 | 14/25 | **40/100** | Critical Mismatch |
| Buscador en Costa del Sol fuera de Málaga capital | all 4 | 12/25 | 8/25 | 12/25 | 15/25 | **47/100** | Needs Work |
| Wedding/event planner profesional evaluando proveedor | `/corporativo-business` + home | 17/25 | 12/25 | 14/25 | 13/25 | **56/100** | Needs Work |
### Weakest Persona: Comprador sensible al precio (40/100)
**Top issue:** No page in scope gives any numeric price anchor — not a range, not a "desde X€/persona," nothing. Three FAQ answers across three different pages use near-identical wording to deflect the cost question entirely.
**Recommended fix:** Add a transparent-but-vague anchor that preserves the bespoke positioning without scaring off budget-checkers — e.g., a line under the FAQ "¿El presupuesto incluye solo comida?" stating an indicative starting range (mirrors the €69–153/pp band competitors already publish), or a "solicite rango orientativo" micro-CTA that's lower-friction than a full WhatsApp message.
### Systemic Issue: Clarity is the weakest dimension across every persona
Average Clarity score ≈ 11.7/25 vs. Relevance ≈ 16.5/25. Root causes, both fixable at the content level:
- No numeric anchors anywhere (price, guest capacity, service radius) — every "how much / how many / how far" question requires initiating contact to answer.
- The three FAQ blocks (bodas, corporativo, familiares) reuse nearly identical template language ("se calcula según... invitados, personal, menaje, timing, desplazamiento") instead of giving page-specific concrete numbers or examples.
### Priority Actions
1. Add an indicative price range (or minimum spend) near the budget FAQ on all three service pages — targets the weakest persona (Comprador sensible al precio, 40/100).
2. Add explicit service-area copy ("Servicio en Málaga capital y Costa del Sol — Marbella, Ronda, Estepona...") to the hero or a dedicated info block on all 3 service pages and the homepage — targets both the location-uncertainty persona (47/100) and the SERP's dominant location-saturation signal.
3. Add a guest-count range or minimum to `/reuniones-familiares` and `/bodas-reales` — closes the second-most-cited clarity gap.
4. Add at least one named case study/logo to `/corporativo-business` — targets the professional-planner and corporate personas (56/100, 72/100) and directly addresses comparison fatigue from 7+ visually similar competitors.
---
## Gap Analysis (7 dimensions, 100 pts)
| Dimension | Score | Evidence |
|---|---|---|
| Page Type (0–15) | 12/15 | Correct Service Page skeleton (process, FAQ, testimonials, CTA) matching SERP consensus; missing the Local Page layer competitors add. |
| Content Depth (0–15) | 7/15 | 358–488 words/page; no pricing, no capacity, no service-area detail — thin vs. the depth a "guía de presupuesto" competitor article demonstrates ranks well for these terms. |
| UX Signals (0–15) | 10/15 | Clear headings, working FAQ accordions, `/corporativo-business` has an actual lead-capture form (best element on the site); but WhatsApp-only CTA on the other two pages, and no low-commitment alternative (menu download, price calculator). |
| Schema (0–15) | 8/15 | `CateringService` + `FAQPage` JSON-LD present on all 3 service pages (good); but `url` field hard-codes the unregistered domain, no address/areaServed/geo despite being a local business, no Review/AggregateRating schema despite having testimonials. |
| Media (0–15) | 12/15 | 6–13 images per page, descriptive Spanish alt text, dedicated gallery on homepage; missing chef/team photos and photos tied to the named testimonials/venues. |
| Authority (0–15) | 5/15 | Only 2 named testimonials total (on `/bodas-reales`) + 1 generic corporate quote on the homepage not reused elsewhere; zero press mentions, awards, certifications, or "X eventos realizados" counters (competitor La Monarca advertises "+300 eventos/año"). |
| Freshness (0–10) | 5/10 | Footer says "© 2025" and testimonials are dated (Junio/Septiembre 2023) but look stale by comparison; no visible "recently updated" or current-year case study signal. |
| **Total** | **59/100** | |
**SXO Gap Score: 59/100** (this is separate from and not comparable to any SEO Health Score).
---
## What already works well
- **Correct page-type skeleton**: all 3 service pages already follow the Service Page structure the real SERP rewards (process/methodology sections, FAQ, testimonial, CTA) — no rebuild needed, just content completion.
- **Real, specific testimonials**: named couples + real venue names (Finca La Montaña, Castillo de Viñuelas) on `/bodas-reales` are stronger trust signals than at least one top-ranking competitor (La Borraja has none at all).
- **`/corporativo-business` lead form**: the only page with a proper on-page form (Empresa, Correo Corporativo, Tipo de Evento, Nº Asistentes) instead of relying solely on WhatsApp — meaningfully lower friction and the strongest-performing page in persona scoring (72/100).
- **FAQPage + CateringService structured data present and valid** on all 3 service pages — most competitors inspected don't appear to have this.
- **Descriptive, consistent image alt text** in Spanish across all pages (13 images on homepage alone, all with meaningful alt attributes).
- **Consistent CTA presence**: every page has at least one clear, above-the-fold-reachable WhatsApp CTA.
---
## Limitations
- Only the 4 requested pages (`/`, `/bodas-reales`, `/corporativo-business`, `/reuniones-familiares`) were fetched and parsed; `/contacto` and `/nosotros` were referenced only via nav links, not audited in depth (contacto.html data available from a prior pass in this session shows `addressLocality: Málaga` in schema there, suggesting the address exists but isn't surfaced on the pages that actually need it for buyer decision-making).
- SERP analysis is based on 3 representative WebSearch queries (~9 unique top-10 URLs) plus one deep competitor page inspection (laborraja.com), not a full manual SERP crawl with PAA/AI Overview/ads capture — Google's live PAA boxes and AI Overview content for these exact queries could not be directly inspected through the available tools.
- No rank-tracking or Search Console data was available to confirm MNQ's current ranking position or click-through behavior for these keywords.
- Mobile-rendered/JS-rendered DOM was not force-rendered (`--mode always`); pages returned `is_spa: false` and raw HTML matched expected content, so this is a low-risk gap, but above-the-fold visual verification (Lighthouse/screenshot) was not performed in this pass.
- The canonical/OG/schema domain-mismatch issue is reported here because it was observed live, but a full technical-SEO remediation check is out of scope for this SXO audit — recommend a dedicated technical pass after the pending domain-fix deploy.
---
## Recommended follow-ups
- `/seo schema` — add `areaServed`/`address`/`geo` to the `CateringService` JSON-LD on all 3 service pages, add `Review`/`AggregateRating` for the testimonials, and fix the `url` field once the domain fix is deployed.
- `/seo local` — formalize service-area messaging (Málaga capital + Costa del Sol towns) across the 3 service pages and homepage, not just `/contacto`.
- `/seo content` — add pricing-range and guest-capacity content blocks; expand `/corporativo-business` with a named case study.
- Generate a PDF report? Use `/seo google report`.