# Combined SEO priority roadmap This document combines two sources reviewed on July 19, 2026: - PageSpeed Insights desktop report for `https://mnq.elkazurrotaberna.es/` - `docs/seo-audit/Google-SEO-Report-mnq.elkazurrotaberna.es-full.pdf` It is intentionally split into: - **Repo-verified issues**: confirmed from the current codebase - **Production-only checks**: reported by the PDF/PageSpeed but require live-environment validation --- ## Current headline picture - Performance: **80** - Accessibility: **96** - Best Practices: **100** - SEO: **100** - External full SEO PDF health score: **39/100** Interpretation: - Lighthouse says the site is technically decent at baseline. - The PDF surfaces bigger **search readiness / local SEO / entity trust** gaps that Lighthouse does not score deeply. --- ## Tier 1 — Critical fixes ### 1. Add crawl and discovery files **Status:** repo-verified missing **Missing** - `robots.txt` - `sitemap.xml` - `llms.txt` **Why this is critical** - Search engines and AI crawlers lack explicit discovery and policy signals. - This is one of the highest-leverage technical SEO fixes on a small site. **Files to add / touch** - `public/robots.txt` - sitemap generation setup in Astro - `public/llms.txt` **Recommended action** - Add `robots.txt` with a `Sitemap:` directive. - Generate a sitemap from the real route set. - Add a concise `llms.txt` with business summary, services, contact, and canonical domain. --- ### 2. Add missing `` SEO signals sitewide **Status:** repo-verified missing **Missing** - canonical tags - Open Graph tags - explicit meta robots tags - JSON-LD / structured data **Why this is critical** - The site currently has content, but weak machine-readable identity. - Canonicalization and entity markup matter more here than another visual polish pass. **Files to touch** - `src/layouts/MainLayout.astro` - possibly shared helpers/components if you extract metadata/schema logic **Recommended action** - Add self-referencing canonical tags. - Add base OG tags (`og:title`, `og:description`, `og:type`, `og:url`, `og:image`). - Add explicit `meta name="robots"` defaults, with special handling for legal pages if desired. - Add sitewide JSON-LD for the business plus page-specific schema later. --- ### 3. Fix language/market mismatch **Status:** repo-verified **Current code** - `src/layouts/MainLayout.astro` uses `lang="es-AR"` **Why this is critical** - The site targets Spain signals (`+34`, RGPD/legal context), not Argentina. - This mismatch hurts consistency for SEO, accessibility, and AI interpretation. **Files to touch** - `src/layouts/MainLayout.astro` - any copy using inconsistent register **Recommended action** - Change sitewide language to `es-ES`. - Standardize tone/register across pages. --- ### 4. Fix the business identity trust gap **Status:** partially repo-verified **Repo-verified issues** - `eventos@mnqcatering.com` appears in: - `src/pages/contacto.astro` - `src/pages/cookies.astro` - `src/pages/privacidad.astro` - Corporate client names in `src/pages/corporativo-business.astro` look like placeholders: - `LUMINA` - `Nordic Corp` - `Apex Sol.` **Why this is critical** - A dead email domain or invented-looking client proof is poison for conversions and trust. - This is not cosmetic. This is credibility. **Files to touch** - `src/pages/contacto.astro` - `src/pages/cookies.astro` - `src/pages/privacidad.astro` - `src/pages/corporativo-business.astro` **Recommended action** - Verify the real contact domain and replace broken email references if needed. - Remove fabricated-looking client names unless they are real and permissioned. - Replace them with real logos, real brands, or no claim at all. --- ### 5. Add service-area and local intent signals **Status:** repo gap strongly supported by PDF; should be treated as high-priority content work **Why this is critical** - The site needs explicit geography/service area to compete for local intent. - Right now the strongest geo signal appears to be the phone prefix. **Recommended action** - Add a visible service-area section on homepage and contact page. - Mention real cities/regions served. - Reflect the same area in JSON-LD (`areaServed`). **Likely files to touch** - `src/pages/index.astro` - `src/pages/contacto.astro` - service pages under `src/pages/` --- ## Tier 2 — High-impact SEO and conversion improvements ### 6. Add `tel:` links and strengthen contact usability **Status:** repo-verified missing **Why** - The PDF correctly flags phone numbers as plain text. - Click-to-call is basic conversion hygiene. **Files to touch** - `src/pages/contacto.astro` - `src/components/SiteFooter.astro` - any page/header component showing the phone number **Recommended action** - Wrap visible phone numbers in `tel:` links. - Keep formatting human-readable while normalizing href values. --- ### 7. Add FAQ and schema-backed informational sections **Status:** supported by PDF; not yet implemented in repo **Why** - The site is heavily CTA-driven but thin on concrete buyer-answer content. - FAQ helps SEO, AI retrieval, and lead qualification. **Recommended action** - Add short FAQ blocks on main commercial pages. - Add FAQPage schema only for visible questions/answers. **Likely files to touch** - `src/pages/bodas-reales.astro` - `src/pages/corporativo-business.astro` - `src/pages/reuniones-familiares.astro` - `src/pages/contacto.astro` --- ### 8. Add concrete facts: pricing, capacity, coverage, lead time **Status:** supported by PDF; likely real gap **Why** - Premium tone without specifics creates trust friction. - Visitors need qualifying information before filling a form or opening WhatsApp. **Recommended action** - Add readable prose covering: - capacity ranges - indicative pricing approach or starting-tier language - coverage area - booking lead time **Most important page** - `src/pages/reuniones-familiares.astro` appears weakest per the PDF. --- ## Tier 3 — Performance fixes with clear Lighthouse payoff ### 9. Remove or reduce render-blocking font requests **Status:** repo-verified + PageSpeed-supported **Files** - `src/layouts/MainLayout.astro` **Current issues** - external Google Fonts stylesheet request - external Material Symbols stylesheet request **Recommended action** - reduce font families/weights - replace icon font with local/inline SVGs if feasible - self-host fonts if the project keeps them **Why** - Lighthouse reports render-blocking request savings around **1380 ms**. --- ### 10. Fix image delivery and explicit dimensions **Status:** repo-verified + PageSpeed-supported **Files** - `src/pages/index.astro` - `src/pages/bodas-reales.astro` - `src/pages/corporativo-business.astro` - review also `src/pages/contacto.astro`, `src/pages/nosotros.astro`, `src/pages/reuniones-familiares.astro` **Recommended action** - add explicit `width` and `height` - make sure above-the-fold assets are not oversized - keep optimized formats consistent - use lazy loading for non-hero images **Why** - Lighthouse reports image savings around **1423 KiB**. - It also flags missing image dimensions. --- ### 11. Recompress and rationalize `public/images/` **Status:** repo-verified **Hotspots** - several large `.png` files in `public/images/` - oversized footer/logo assets relative to rendered size **Recommended action** - replace or recompress large PNGs - prefer lighter WebP variants where acceptable - remove duplicates not used in production **Folders** - `public/images/` - `public/images/generated/` --- ### 12. Fix footer contrast **Status:** repo-verified + Lighthouse-supported **Files** - `src/components/SiteFooter.astro` - `src/styles/components.css` **Current issue** - footer text uses muted color plus low opacity **Recommended action** - increase contrast on footer copy - reduce/remove low-opacity muted treatment --- ### 13. Normalize duplicated WhatsApp link labels **Status:** repo-verified via Lighthouse finding **Files** - `src/components/SiteHeader.astro` - `src/components/SiteFooter.astro` **Recommended action** - keep the same accessible purpose for identical WhatsApp destinations - use `aria-label` if visible text differs by context --- ### 14. Replace width animation on the progress bar **Status:** repo-verified + Lighthouse-supported **Files** - `src/styles/animations.css` - `src/layouts/MainLayout.astro` **Recommended action** - stop animating `width` - use `transform: scaleX(...)` with `transform-origin: left` --- ## Tier 4 — Production-only checks to verify before coding against them These came from the PDF/PageSpeed/live-site observations but are **not provable from the repo alone**. ### Validate on production - `www` behavior, redirects, and TLS coverage - security headers (`HSTS`, `X-Content-Type-Options`, `X-Frame-Options`, `CSP`) - gzip/brotli compression on HTML/CSS - cookie banner overlapping the floating WhatsApp CTA - broken/bleeding UI element near the top-left viewport - live caching policy for `/images/*` - whether the contact email domain truly fails resolution - whether the unrelated parent domain relationship must be clarified publicly These should be treated as a separate verification pass against the deployed site. --- ## Suggested implementation order 1. crawl/discovery files (`robots.txt`, sitemap, `llms.txt`) 2. canonical + OG + robots + base JSON-LD in `MainLayout.astro` 3. `lang` correction to `es-ES` 4. email/domain trust fix and corporate-proof cleanup 5. service-area content and `tel:` links 6. FAQ / concrete fact sections on service pages 7. font and image performance fixes 8. footer contrast and smaller accessibility cleanups 9. production header/caching/compression validation --- ## Minimum verification after each implementation batch 1. `npm run check` 2. `npm run build` 3. re-run desktop PageSpeed 4. manually inspect live `` output and generated crawl files --- ## Related files already present - `docs/seo-audit/Google-SEO-Report-mnq.elkazurrotaberna.es-full.pdf` - `docs/seo-audit/pagespeed-priority-list.md`