Cross-Site SEO, AI & GEO Optimization Strategy
Master plan for SEO, Generative Engine Optimization (GEO), and AI agent discoverability across all urWave Company websites.
Created: 2026-02-19 Scope: urWhats.com, urWave.com, urLead.net, urHackathon.com Parent Company: urWave Company (LLC), CR: 7052775355, Riyadh, Saudi Arabia Hosting: Cloudflare Pages (static hosting, no Workers) Framework: All sites use Astro v5 (static output)
Table of Contents
- Current State Audit
- Critical Issues
- AI Agent Optimization Standards
- Generative Engine Optimization (GEO)
- Execution Plan
- Per-Site Details
- Contact Info Standard
- Cloudflare Configuration Notes
Current State Audit
Site Overview
| Site | Domain | Purpose | Pages | Framework | CSS |
|---|---|---|---|---|---|
| urWhats | urwhats.com | WhatsApp Business API Platform | 23 (11EN+11AR+404) | Astro 5.16 | Bootstrap 5 |
| urWave | urwave.com | Corporate / Mother Company | ~40 (18EN+18AR+sitemaps) | Astro 5.16 | Bootstrap 5 |
| urLead | urlead.net | Marketing & Sales Automation (GHL white-label) | 17 (8EN+8AR+sitemap) | Astro 5.16 | Bootstrap 5 |
| urHackathon | urhackathon.com | Hackathon Management Platform | 2 (1EN+1AR) | Astro 5.16 | Tailwind 4 |
AI/SEO Readiness Matrix
| Feature | urWhats | urWave | urLead | urHackathon | Standard |
|---|---|---|---|---|---|
| llms.txt | YES (450 lines) | YES (529 lines) | YES | YES | llmstxt.org |
| llms-full.txt | YES (448 lines) | NO | NO | NO | llmstxt.org |
| ai-plugin.json | YES (.well-known/) | NO | NO | NO | OpenAI/ChatGPT |
| schema.json | YES (.well-known/) | NO | NO | NO | Schema.org |
| security.txt | YES (.well-known/) | NO | NO | NO | RFC 9116 |
| robots.txt (AI bots) | EXCELLENT | EXCELLENT | EXCELLENT | EXCELLENT | Standard |
| JSON-LD schemas | 6-7/page | 3-5/page | 3/page | 4/page | Schema.org |
| hreflang (EN/AR) | YES | YES | YES | YES | Google i18n |
| AI meta tags | Extensive | Some | Some | Some | Emerging |
| link rel="author" /llms.txt | YES | NO | YES | NO | llmstxt.org |
| FAQPage schema | YES (FAQ page) | YES (products) | NO | NO | |
| OG image (1200x630 PNG) | MISSING | SVG (broken) | Unknown | Hero image | OG spec |
| Twitter handles | MISSING | @urwave | MISSING | MISSING | Twitter Cards |
| Image sitemap | NO | YES | NO | NO | |
| Dublin Core | NO | YES | NO | NO | Dublin Core |
| Geo meta tags | Some | YES | NO | YES | Local SEO |
| Google Search Console | NOT SET UP | NOT SET UP | NOT SET UP | NOT SET UP | |
| GA4 | NOT SET UP | Configured | NOT SET UP | NOT SET UP | |
| Google Business Profile | NOT CLAIMED | NOT CLAIMED | N/A | N/A | Local SEO |
| Markdown page versions | NO | NO | NO | NO | llmstxt.org |
Critical Issues
SEVERITY: CRITICAL (Fix Immediately)
1. Fake AggregateRating Data -- Google Penalty Risk
Affected: urWhats, urWave, urLead Issue: Fabricated review scores in JSON-LD structured data
- urWhats: 4.8/5 from 150 reviews (SEO.astro, schema.json, ai-plugin.json, llms.txt, llms-full.txt)
- urWave: 4.9/5 from 127 reviews (SEO.astro) + 4.8/5 from 45 reviews (product schema)
- urLead: 4.8/5 from 150 reviews (SEO.astro) Risk: Google manual action (penalty), loss of rich snippets Fix: Remove ALL aggregateRating from structured data until real reviews exist. Use Google-verified review platforms when ready.
2. No Google Search Console
Affected: ALL sites Issue: Cannot monitor indexing, crawl errors, or search performance Fix: Set up GSC for all 4 domains. Add verification meta tag to each site.
3. Broken OG Images
Affected: urWhats (file missing), urWave (SVG, not renderable), urLead (likely wrong) Fix: Create 1200x630 PNG images for each brand. Social sharing is fundamentally broken without this.
4. Malformed Sitemaps
Affected: urWhats (invalid XML), urLead (wrong URLs)
- urWhats: static sitemap.xml has closing
</urlset>in the middle, orphaned entries after - urLead: generates English URLs as
/en/toolsinstead of/tools-- all 301 redirect Fix: urWhats: delete static sitemap, install @astrojs/sitemap. urLead: fix URL generation.
SEVERITY: HIGH
5. Contact Info Inconsistencies
All sites show different phone numbers and emails. Standard should be:
- Phone: +966 508 777 669
- Sales email: sales@urwave.com
- Info email: info@urwave.com (for general inquiries)
6. Route Casing Mismatch
/Privacy and /Terms (PascalCase) on urWhats, urWave, urLead. Sitemaps reference lowercase. Creates 404 crawl errors.
7. False Claims in llms.txt Files
- urWhats: Claims Salesforce/HubSpot/Zoho/Shopify/WooCommerce integrations (unverified)
- urWhats: References "UAE PDPL" (should be Saudi PDPL)
- urWhats: Claims "10,000+ businesses" (unverified)
- urWave: References "50-100 employees" (unlikely for company founded Dec 2025)
8. urLead Site Quality Issues
- Footer says "urWhats" copyright instead of "urLead"
- RTL CSS not loaded (Arabic pages render LTR)
- No Arabic font loaded
- api.config.ts is a stub (Plans.astro may fail)
- Content JSON has urIdea contamination
SEVERITY: MEDIUM
9. Duplicate Meta Tags
- urWhats: Duplicate
<meta name="robots">tag - urHackathon: Duplicate og:type, og:locale, theme-color, apple-touch-icon, manifest
10. SearchAction Schema Points to Non-existent Pages
All sites have SearchAction in WebSite schema pointing to /search?q= or /contact?q= -- no search functionality exists.
11. Missing .well-known/ Directory
Only urWhats has .well-known/. urWave, urLead, urHackathon need it for AI agent discovery.
AI Agent Optimization Standards
1. llms.txt (llmstxt.org) -- IMPLEMENTED, NEEDS CLEANUP
What it is: A /llms.txt file in the site root providing LLM-friendly content in Markdown format. Helps AI tools (ChatGPT, Claude, Perplexity, etc.) understand your site at inference time.
Spec format:
# Site Name
> Brief description (blockquote)
Detailed info paragraphs
## Section Name
- [Link title](url): Description
## Optional
- [Link title](url): Can be skipped for shorter context
Current status: All 4 sites have llms.txt but need cleanup:
- Remove fake statistics
- Fix incorrect legal references (UAE -> Saudi Arabia)
- Remove unverified integration claims
- Restructure to follow the spec format strictly
- Add proper cross-links between product sites
2. llms-full.txt -- PARTIALLY IMPLEMENTED
What it is: Expanded version of llms.txt with full content from linked pages. Gives AI tools complete context without needing to fetch multiple URLs.
Current status: Only urWhats has it. Needs adding to urWave, urLead, urHackathon.
3. .well-known/ Directory Files
ai-plugin.json
What it is: Originally an OpenAI standard for ChatGPT plugins. Now used broadly for AI agent discovery. Status: Only urWhats has it. Template:
{
"schema_version": "v1",
"name_for_human": "urWhats",
"name_for_model": "urwhats_whatsapp_api",
"description_for_human": "...",
"description_for_model": "...",
"auth": { "type": "none" },
"api": { "type": "openapi", "url": "..." },
"logo_url": "...",
"contact_email": "...",
"legal_info_url": "..."
}
schema.json
What it is: Machine-readable Organization/Product schema for AI tools that look for structured data. Status: Only urWhats has it.
security.txt (RFC 9116)
What it is: Security contact information. Builds trust with both AI tools and security researchers. Status: Only urWhats has it (but references non-existent pgp-key.txt).
4. Markdown Page Versions (.md endpoints)
What it is: The llmstxt.org spec recommends serving Markdown versions of pages at {url}.md or {url}.html.md. AI tools can then fetch clean, parsed content instead of parsing HTML.
Implementation: Create Astro API routes that serve Markdown versions of key pages. Priority: MEDIUM -- Useful for developer-focused sites, less critical for SaaS landing pages. Recommendation: Implement for urWave (corporate/products) first, then evaluate impact.
5. AI Meta Tags
What they are: Custom meta tags that help AI tools categorize and understand pages:
<meta name="ai:description" content="...">
<meta name="ai:category" content="...">
<meta name="ai:features" content="...">
<meta name="ai:use_cases" content="...">
<meta name="ai:audience" content="...">
Status: urWhats has extensive AI meta tags. Other sites have minimal or none.
6. Link to llms.txt from HTML Head
<link rel="author" href="/llms.txt">
Status: urWhats and urLead have it. urWave and urHackathon need it.
7. Directory Registration
Register all sites on:
- llmstxt.site -- Main llms.txt directory
- directory.llmstxt.cloud -- Secondary directory
Generative Engine Optimization (GEO)
GEO optimizes content for AI-powered search (Google AI Overviews, Perplexity, ChatGPT with search, Bing Copilot, etc.).
Key GEO Principles
Cite Statistics & Data Points
- BAD: "We help many businesses"
- GOOD: "urWhats processes over 50 million WhatsApp messages monthly across 150+ enterprise clients in Saudi Arabia"
- AI models weight specific, cited numbers higher than vague claims
Use Authoritative Language
- BAD: "We're a good WhatsApp solution"
- GOOD: "As an Official Meta Technical Provider, urWhats delivers enterprise-grade WhatsApp Business API solutions"
Entity-Rich Descriptions
- Include: company name, product names, locations, partner names (Meta), certifications
- AI tools extract entities for knowledge graph matching
Structured FAQ on Every Page
- Not just the FAQ page -- add 3-5 relevant Q&As at the bottom of EVERY page
- Use FAQPage schema markup
Comparison Content
- "urWhats vs Twilio", "urWhats vs Respond.io", "urLead vs HubSpot"
- AI tools are often asked comparison questions -- be the source of truth
Technical Depth
- Include API documentation references
- Show integration capabilities
- Provide implementation details
Local Authority
- "Headquartered in Riyadh, Saudi Arabia"
- "Compliant with Saudi Personal Data Protection Law (PDPL)"
- "Serving businesses across the GCC region"
Content Structure for GEO
Every key page should follow this structure:
- Clear H1 with primary keyword and entity
- Introductory paragraph with key facts (who, what, where, why)
- Feature sections with specific capabilities
- Use cases with industry/role context
- Social proof (real testimonials, partner badges -- NOT fabricated)
- FAQ section with FAQPage schema
- CTA with clear next step
Execution Plan
Phase 0: Emergency Fixes (ALL SITES) -- Priority: CRITICAL
| # | Task | Sites | Effort |
|---|---|---|---|
| 0.1 | Remove ALL fake aggregateRating from JSON-LD, schema.json, ai-plugin.json, llms files | urWhats, urWave, urLead | 2h |
| 0.2 | Create proper OG images (1200x630 PNG) for all sites | ALL | 1h |
| 0.3 | Fix urWhats malformed sitemap (delete static, use @astrojs/sitemap or fix dynamic) | urWhats | 1h |
| 0.4 | Fix urLead sitemap URL generation (remove /en/ prefix) | urLead | 30m |
| 0.5 | Unify contact info to +966508777669 / sales@urwave.com across ALL sites | ALL | 2h |
| 0.6 | Rename /Privacy -> /privacy, /Terms -> /terms (all sites that have them) | urWhats, urWave, urLead | 2h |
| 0.7 | Fix urLead footer copyright ("urWhats" -> "urLead") | urLead | 15m |
| 0.8 | Remove false claims from llms.txt/llms-full.txt files (fake stats, unverified integrations, UAE PDPL) | urWhats | 1h |
Phase A: AI Agent Optimization (ALL SITES) -- Priority: HIGH
| # | Task | Sites | Effort |
|---|---|---|---|
| A.1 | Restructure llms.txt to strict llmstxt.org spec format | ALL | 2h |
| A.2 | Create llms-full.txt for sites that lack it | urWave, urLead, urHackathon | 2h |
| A.3 | Create .well-known/ directory with ai-plugin.json, schema.json, security.txt | urWave, urLead, urHackathon | 2h |
| A.4 | Add <link rel="author" href="/llms.txt"> to all sites |
urWave, urHackathon | 30m |
| A.5 | Enhance AI meta tags (ai:description, ai:category, ai:features, ai:use_cases) | urWave, urLead, urHackathon | 1h |
| A.6 | Register all domains on llmstxt.site and llmstxt.cloud directories | ALL | 30m |
| A.7 | Add cross-product links in llms.txt files (link to sibling products) | ALL | 1h |
Phase B: SEO Foundation (ALL SITES) -- Priority: HIGH
| # | Task | Sites | Effort |
|---|---|---|---|
| B.1 | Set up Google Search Console for all domains | ALL | 1h |
| B.2 | Set up GA4 tracking (or verify existing) | urWhats, urLead, urHackathon | 2h |
| B.3 | Claim Google Business Profile for urWave Company | urWave | 1h |
| B.4 | Add proper 301 redirects for renamed routes (Privacy->privacy, Terms->terms) | ALL | 1h |
| B.5 | Install @astrojs/sitemap on urWhats (replace manual sitemaps) | urWhats | 1h |
| B.6 | Add image sitemaps | urWhats, urLead, urHackathon | 2h |
| B.7 | Add Twitter handles to all sites (@urwave or product-specific) | ALL | 30m |
| B.8 | Remove duplicate tags | urWhats, urHackathon | 30m |
| B.9 | Remove SearchAction schema (no search exists) or implement search | ALL | 30m |
| B.10 | Fix urLead RTL CSS loading for Arabic pages | urLead | 1h |
| B.11 | Add Arabic font to urLead | urLead | 30m |
Phase C: Content & GEO Enhancement -- Priority: MEDIUM-HIGH
| # | Task | Sites | Effort |
|---|---|---|---|
| C.1 | Rewrite homepage with GEO principles (stats, entities, authority) | urWhats | 4h |
| C.2 | Add FAQ sections with FAQPage schema to every content page | urWhats | 4h |
| C.3 | Create comparison pages (vs Twilio, vs Respond.io, etc.) | urWhats | 4h |
| C.4 | Add case studies page (real projects: SIDF, Ministry of Energy) | urWave | 4h |
| C.5 | Clean urLead content (remove urIdea contamination, fix branding) | urLead | 2h |
| C.6 | Restructure urWhats messaging per marketing manager feedback + CONTENT-STRATEGY.md | urWhats | 6h |
| C.7 | Update legal pages to Saudi PDPL references | ALL | 2h |
| C.8 | Create dedicated About/Contact/Features pages for urHackathon | urHackathon | 4h |
| C.9 | Create centralized variables.config.ts for urHackathon | urHackathon | 1h |
Phase D: Technical Optimization -- Priority: MEDIUM
| # | Task | Sites | Effort |
|---|---|---|---|
| D.1 | Implement Cloudflare Web Analytics (complement to GA4) | ALL | 1h |
| D.2 | Add proper breadcrumb navigation UI (not just schema) | urWhats, urLead | 2h |
| D.3 | Implement Markdown page versions (.md endpoints) for key pages | urWave | 4h |
| D.4 | Clean up dead Service Worker files | urWave, urWhats | 30m |
| D.5 | Add DNS prefetch/preconnect for critical third-party origins | ALL | 1h |
| D.6 | Audit and fix all _headers CSP policies across sites | ALL | 2h |
Per-Site Details
urWhats.com
- Repo: D:\Work\Website-urWhats.com
- Branch: feature/seo-enhancements
- Existing plan: .specs/IMPROVEMENT-PLAN.md (49 tasks, 5 phases)
- Status: Phase 1 mostly done (7/8), uncommitted
- Key issues: Fake ratings, malformed sitemap, missing OG image, false llms.txt claims
urWave.com
- Repo: D:\Work\Website-urWave.com
- Branch: main (1 unpushed commit)
- CLAUDE.md: .claude/CLAUDE.md (211 lines)
- Key issues: SVG OG image, fake ratings, route casing, hardcoded hero, phone inconsistency
urLead.net
- Repo: D:\Work\Website-urLead.net
- Branch: (check)
- CLAUDE.md: MISSING
- Key issues: Wrong sitemap URLs, urWhats copyright in footer, RTL CSS broken, no Arabic font, urIdea content contamination, fake ratings, stub API config
urHackathon.com
- Repo: D:\Work\Website-urHackathon.com
- Branch: (check)
- CLAUDE.md: MISSING
- Key issues: Hardcoded values everywhere, no centralized config, duplicate meta tags, 2 pages only, missing analytics
Contact Info Standard
All urWave Company websites MUST use these contact details:
| Field | Value |
|---|---|
| Business Phone | +966 508 777 669 |
| Phone Display | +966 50 877 7669 |
| Sales Email | sales@urwave.com |
| Info Email | info@urwave.com |
| WhatsApp Link | https://wa.me/966508777669 |
| Address | Riyadh, Saudi Arabia |
| Company | urWave Company (LLC) |
| CR | 7052775355 |
| VAT | 300075277550003 |
Old numbers to remove globally:
- +966547778955
- +966544757057
- +971509056326
Cloudflare Configuration Notes
All Sites Use:
- Cloudflare Pages (static hosting)
- No Workers (yet)
_headersfile for security headers (CSP, HSTS, XSS protection)_redirectsfile for URL redirects- Asset caching: 1 year for immutable assets, 0 for HTML
Recommended Cloudflare Additions:
- Cloudflare Web Analytics -- Free, privacy-friendly, no JS overhead. Complements GA4.
- Cloudflare Turnstile -- Already used on contact forms (good).
- DNS records -- Ensure all domains have proper CNAME/A records pointing to Cloudflare Pages.
- Email routing -- sales@urwave.com and info@urwave.com should be set up via Cloudflare Email Routing if not already.
Headers Recommendations:
Add to all sites' _headers:
# AI/LLM files
/llms.txt
Content-Type: text/plain; charset=utf-8
Cache-Control: public, max-age=86400
X-Robots-Tag: noindex
/llms-full.txt
Content-Type: text/plain; charset=utf-8
Cache-Control: public, max-age=86400
X-Robots-Tag: noindex
/.well-known/*
Content-Type: application/json
Cache-Control: public, max-age=86400
Access-Control-Allow-Origin: *
Version History
| Date | Author | Changes |
|---|---|---|
| 2026-02-19 | Claude Code | Initial comprehensive audit and strategy |