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.
This commit is contained in:
@@ -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, `<style>`, `<script>`, and JSX expressions stripped), not from source line/byte counts.
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
The site has real trust scaffolding — a genuine street address, a real phone number, `CateringService` + `FAQPage` schema.org markup, legal pages (aviso legal/privacidad/cookies), and what appear to be genuine team/kitchen photos rather than stock imagery. But every one of the 6 commercial pages is **severely thin** (well under half of Google's topical-coverage floor for its page type), the four FAQ blocks are **generic and evasive rather than fact-bearing**, the "coverage is confirmed case-by-case" paragraph is **repeated near-verbatim five times** across five different pages, and — most importantly for AI-citability — **there is still no pricing anchor, no capacity range, and no lead-time/booking-window figure anywhere on the site**. This was flagged as a gap in a prior audit round; based on the current source, it has not been resolved. An AI assistant can correctly confirm "yes, MNQ does weddings in Málaga," but cannot answer any of the three questions a prospective customer (or an AI Overview) actually needs — how much, how many guests, how far in advance to book.
|
||||
|
||||
**Content Quality Score: 32/100**
|
||||
**AI Citation Readiness Score: 24/100**
|
||||
|
||||
---
|
||||
|
||||
## Findings
|
||||
|
||||
### 1. Thin content on every commercial page (HIGH severity)
|
||||
|
||||
Word counts of visible body copy (FAQ text included where present):
|
||||
|
||||
| Page | Words (measured) | Page-type floor | % of floor |
|
||||
|---|---|---|---|
|
||||
| `/` (homepage) | ~287 | 500 | 57% |
|
||||
| `/nosotros` (about — E-E-A-T critical) | ~291 | ~500 (treated as homepage-tier) | 58% |
|
||||
| `/bodas-reales` (service) | ~391 (319 body + 72 FAQ) | 800 | 49% |
|
||||
| `/corporativo-business` (service) | ~387 (307 body + 80 FAQ) | 800 | 48% |
|
||||
| `/reuniones-familiares` (service) | ~414 (347 body + 67 FAQ) | 800 | 52% |
|
||||
| `/contacto` | ~266 (191 body + 75 FAQ) | ~400–500 (lighter bar) | 53–67% |
|
||||
|
||||
None of the three actual service pages reach even 55% of the 800-word topical-coverage floor Google's guidelines describe for service pages. `/nosotros` — the single most important page for demonstrating Experience/Expertise — is barely 291 words and names no one.
|
||||
|
||||
**Recommendation:** Each service page needs genuinine topical expansion, not filler: a real sample menu or format breakdown per service type, 2–3 detailed case studies with real numbers (guest count, venue, service style), and a named chef/team-lead bio with real credentials on `/nosotros`.
|
||||
|
||||
### 2. No pricing, capacity, or lead-time facts anywhere (HIGH severity — this is the prior-round gap, still open)
|
||||
|
||||
Every page repeats variations of "se calcula/valora según..." without ever landing on a number. Representative quotes:
|
||||
|
||||
- Homepage: *"Cada proyecto se valora de forma individual. Confirmamos la viabilidad según la fecha, el número de asistentes, el tipo de servicio y el desplazamiento necesario..."*
|
||||
- `/bodas-reales`: *"Propuesta económica: se calcula según menú, servicio, menaje, tiempos y desplazamiento."*
|
||||
- `/corporativo-business`: *"Presupuesto: siempre se calcula a medida según servicio, menaje, personal y desplazamiento."*
|
||||
- `/reuniones-familiares` FAQ: *"¿Cómo se prepara el presupuesto? Se ajusta al número estimado de invitados, al formato del servicio, al menaje necesario y al desplazamiento previsto."*
|
||||
|
||||
Checked explicitly via grep across all page source: zero occurrences of "€", "precio", "desde [number]", any guest-count range (e.g. "20–500 invitados"), any stated minimum/maximum group size, or any lead-time figure ("reserve con X semanas/meses"). This is unchanged from what a prior audit round already flagged.
|
||||
|
||||
**Why this matters for AI citability:** an AI Overview or ChatGPT answer to "cuánto cuesta un catering de boda en Málaga" or "¿cuántos invitados puede cubrir MNQ?" cannot be constructed from this content — there is nothing to lift. Even an indicative range ("desde 65€/invitado", "de 20 a 400 comensales", "recomendamos reservar con 2–3 meses de antelación") would be directly quotable and would materially change AI-citation odds. Right now the honest answer any AI tool can give is "contact them to find out," which is a weak, low-value citation.
|
||||
|
||||
### 3. FAQ content is generic and non-committal, not fact-bearing (MEDIUM-HIGH severity)
|
||||
|
||||
`FAQPage` schema is present on 4 pages (`bodas-reales`, `corporativo-business`, `reuniones-familiares`, `contacto`) as stated, but the answers dodge the question rather than answering it. Example — `/bodas-reales`:
|
||||
|
||||
> Q: *"¿El presupuesto incluye solo comida?"*
|
||||
> A: *"La propuesta puede contemplar cocina, servicio, menaje y necesidades de montaje, según lo que requiera la celebración."*
|
||||
|
||||
This never actually says yes or no, nor gives a typical inclusion list. Same pattern on `/corporativo-business`:
|
||||
|
||||
> Q: *"¿Cómo valoran la cobertura de un evento de empresa?"*
|
||||
> A: *"La confirmamos según disponibilidad de fecha, desplazamiento, complejidad logística del espacio y necesidades reales de producción."*
|
||||
|
||||
This is the kind of FAQ answer an AI system will *not* select to quote, because it contains no extractable fact — it's a description of a process, not an answer. Compare to what would actually be citable: "Sí, la propuesta incluye siempre cocina y servicio de sala; menaje y decoración se cotizan aparte salvo que se solicite el paquete completo."
|
||||
|
||||
Also note the FAQ *questions* themselves are near-duplicated across pages: "¿Cómo se confirma/valora la cobertura/viabilidad?" appears, reworded, on `/bodas-reales`, `/corporativo-business`, `/reuniones-familiares`, and `/contacto`. "¿Cómo se prepara/calcula el presupuesto?" appears on 3 of the 4. This is templated content with the labels swapped, not four independently useful FAQ sections.
|
||||
|
||||
### 4. Repeated near-duplicate paragraph across 5 pages (MEDIUM severity)
|
||||
|
||||
The "we confirm coverage case-by-case, based on date/location/guest count/format/travel" paragraph is reused, reworded, on every single commercial page:
|
||||
|
||||
- Homepage: *"La cobertura final se valida caso a caso para asegurar montaje, tiempos de servicio y desplazamiento coherentes con el evento."*
|
||||
- `/bodas-reales`: *"Viabilidad: la confirmamos tras revisar disponibilidad y condiciones del espacio."*
|
||||
- `/corporativo-business`: *"Cobertura confirmada: La viabilidad final se valida según desplazamiento, montaje necesario y condicionantes del espacio."*
|
||||
- `/reuniones-familiares`: *"Cobertura confirmada: La viabilidad se revisa caso a caso para asegurar que el espacio y la logística estén alineados con la experiencia que promete MNQ."*
|
||||
- `/contacto`: *"No trabajamos con una cobertura automática ni con propuestas cerradas. Cada servicio se estudia según la ubicación del evento, la fecha disponible, el volumen de invitados y las necesidades reales de montaje o servicio."*
|
||||
|
||||
Individually each is fine; together, five near-identical restatements of the same non-answer read as templated boilerplate rather than distinct topical coverage per page — a pattern the Sept 2025 QRG flags as a low-quality-AI-content marker ("repetitive structure across pages"). The three-card layout (label + one sentence, "we assess X case by case") is also structurally identical across `/` , `/corporativo-business`, and `/reuniones-familiares`.
|
||||
|
||||
### 5. No named expertise signal — "Chef Ejecutivo" is mentioned but never identified (HIGH severity for Expertise/Authoritativeness)
|
||||
|
||||
Grep across all page source for "año", "experiencia", "fundad", "premio", "certificad", "chef" returns exactly one hit: `/reuniones-familiares.astro` line 278, *"Reunión con nuestro Chef Ejecutivo para definir el concepto gastronómico"* — no name, no bio, no photo caption identifying who this is, no prior restaurant/culinary pedigree, no years of experience, no certifications, no press mentions, no awards. `/nosotros` — the page whose entire job is to carry Expertise/Experience signals — never names a single person; the hero photo alt text is *"Responsable de MNQ acompañando la puesta a punto..."* (a role, not a name).
|
||||
|
||||
**Recommendation:** name the chef/founder, state actual years of experience or prior kitchens, add a real bio and headshot with credentials. This is the single highest-leverage E-E-A-T fix available.
|
||||
|
||||
### 6. Testimonials are unverifiable and one is geographically inconsistent with the brand's core claim (MEDIUM severity — needs owner verification)
|
||||
|
||||
Testimonials use first names only, no last names, no photos, no link to a verifiable source (Google Business Profile, Bodas.net, etc.):
|
||||
|
||||
- *"Isabel & Marcos — Boda en Hacienda del Sol"* (homepage)
|
||||
- *"Elena & Carlos — Finca La Montaña, Junio 2023"* / *"Patricia & Javier — Castillo de Viñuelas, Septiembre 2023"* (`/bodas-reales`)
|
||||
|
||||
**Flag for owner verification, not asserted as fact (could not browse to confirm live):** "Castillo de Viñuelas" is, per general knowledge, a well-known events venue in Tres Cantos, near Madrid — not in Málaga province. If MNQ's business is positioned as Málaga-based catering, a testimonial citing a Madrid-region venue either (a) represents a genuine out-of-area booking worth stating explicitly ("also available for destination weddings outside Málaga"), or (b) is placeholder/generic copy not tied to a real MNQ event — which would actively undermine local E-E-A-T if discovered by a prospective client or a fact-checking AI system. This is worth a direct check with the business owner before the next content pass.
|
||||
|
||||
No client company logos are shown on `/corporativo-business` despite claiming galas/lanzamientos "de alto nivel" for named-sounding brands.
|
||||
|
||||
### 7. Readability (LOW severity — this is a genuine strength)
|
||||
|
||||
Spanish sentence structure across all 6 pages is clean: short-to-medium sentences, no dense jargon, no run-on subordinate clauses. Business/process vocabulary ("desplazamiento", "menaje", "montaje", "briefing") is appropriate for the catering-industry audience and not overused. Marketing copy tends toward generic-premium adjectives ("excelencia", "exclusivo", "inolvidable", "de autor") but doesn't cross into incomprehensible fluff. This is the one area needing no changes.
|
||||
|
||||
### 8. What already works well
|
||||
|
||||
- Real, verifiable NAP: phone `+34 678 17 15 13` and street address `Calle Camino Vivero, 6, 29014, Málaga` are consistent across footer, `/contacto`, and `CateringService` schema (`src/layouts/MainLayout.astro`) — good baseline Trustworthiness signal.
|
||||
- `CateringService` + `FAQPage` JSON-LD is correctly implemented and machine-parseable (structured data itself is not the audit's finding — see `geo.md` / technical findings for schema-specific review).
|
||||
- Legal transparency pages exist (`aviso-legal`, `privacidad`, `cookies`) — a real trust signal most small local competitors skip.
|
||||
- Team/kitchen photography on `/nosotros` (`mnq-team-service.jpg`, `mnq-team-kitchen.webp`, etc.) appears to be genuine operational photography rather than stock — a real Experience signal, just uncaptioned with names.
|
||||
- `areaServed` in schema is honestly scoped to Málaga city + province rather than an inflated national claim — a good-faith trust choice, consistent with the git history ("add local business address and area served signals").
|
||||
- Format lists per service type (e.g. bodas: *"cóctel, banquete, recena o una combinación"*; corporate: *"coffee break, cóctel, comida de empresa, cena institucional"*) are concrete and non-generic — these are genuinely useful, specific facts and should be the template for how pricing/capacity/lead-time facts get added.
|
||||
|
||||
---
|
||||
|
||||
## AI-citability test results
|
||||
|
||||
- **"¿Hace MNQ bodas en Málaga?"** — Answerable and citable. `/bodas-reales` + schema `serviceType`/`areaServed` support a clean, correct answer.
|
||||
- **"¿Cómo reservo a MNQ para un evento corporativo?"** — Partially answerable: WhatsApp (`+34 678 17 15 13`), a contact form, and the specific info to send (fecha, ubicación, horario, asistentes, formato) are all stated on `/corporativo-business` and `/contacto`. This is citable at a shallow "how to start" level.
|
||||
- **"¿Cuánto cuesta / cuántos invitados puede cubrir / con cuánta antelación reservar?"** — Not answerable from current content. No price anchor, no capacity range, no lead-time figure exists anywhere in the source. This is the highest-priority content gap for AI citation readiness.
|
||||
|
||||
---
|
||||
|
||||
## Scores
|
||||
|
||||
| Factor | Weight | Score /100 | Notes |
|
||||
|---|---|---|---|
|
||||
| Experience | 20% | 35 | Real team photos, but no named individuals, no dated case studies |
|
||||
| Expertise | 25% | 25 | Unnamed "Chef Ejecutivo," zero credentials/years/certifications anywhere |
|
||||
| Authoritativeness | 25% | 20 | No press, no awards, no third-party review links, one geographically-inconsistent testimonial venue to verify |
|
||||
| Trustworthiness | 30% | 50 | Real NAP + legal pages + schema, undercut by zero pricing transparency and unverifiable testimonials |
|
||||
| **E-E-A-T weighted** | | **33/100** | |
|
||||
|
||||
**Content Quality Score: 32/100**
|
||||
**AI Citation Readiness Score: 24/100**
|
||||
|
||||
## Priority recommendations (highest impact first)
|
||||
|
||||
1. Add at least indicative pricing (a "desde X€/invitado" range or 2–3 worked examples), a capacity range, and a lead-time recommendation to every service page and the FAQ blocks — this is the single biggest lever for both thin-content and AI-citability.
|
||||
2. Name and credential the chef/founder on `/nosotros`; convert the unnamed "Chef Ejecutivo" mention into a real bio.
|
||||
3. Rewrite the 4 FAQ blocks so each answer states a concrete fact/number instead of describing the internal evaluation process.
|
||||
4. De-duplicate the "coverage confirmed case-by-case" paragraph — keep one clear statement of the qualification process (e.g. on `/contacto`) and use the space on service pages for page-specific substance (sample menus, format detail, case studies) instead.
|
||||
5. Verify (with the business owner) the "Castillo de Viñuelas" testimonial location before the next content pass, and add real last names/photos or a link to a verifiable review source for all testimonials.
|
||||
6. Independently confirm whether the DNS `NXDOMAIN` observed for `www.mnqcatering.com` / `mnqcatering.com` during this audit (2026-09-15, confirmed against both local resolver and `8.8.8.8`) reflects current production state — if so, this blocks all crawling/AI-citation regardless of content fixes.
|
||||
Reference in New Issue
Block a user