Cross-Site SEO Strategy
Cross-Site SEO, AI & GEO Optimization Strategy
Section titled “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
Section titled “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
Section titled “Current State Audit”Site Overview
Section titled “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
Section titled “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
Section titled “Critical Issues”SEVERITY: CRITICAL (Fix Immediately)
Section titled “SEVERITY: CRITICAL (Fix Immediately)”1. Fake AggregateRating Data — Google Penalty Risk
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “SEVERITY: HIGH”5. Contact Info Inconsistencies
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “SEVERITY: MEDIUM”9. Duplicate Meta Tags
Section titled “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
Section titled “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
Section titled “11. Missing .well-known/ Directory”Only urWhats has .well-known/. urWave, urLead, urHackathon need it for AI agent discovery.
AI Agent Optimization Standards
Section titled “AI Agent Optimization Standards”1. llms.txt (llmstxt.org) — IMPLEMENTED, NEEDS CLEANUP
Section titled “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 contextCurrent 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
Section titled “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
Section titled “3. .well-known/ Directory Files”ai-plugin.json
Section titled “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
Section titled “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)
Section titled “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)
Section titled “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
Section titled “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
Section titled “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
Section titled “7. Directory Registration”Register all sites on:
- llmstxt.site — Main llms.txt directory
- directory.llmstxt.cloud — Secondary directory
Generative Engine Optimization (GEO)
Section titled “Generative Engine Optimization (GEO)”GEO optimizes content for AI-powered search (Google AI Overviews, Perplexity, ChatGPT with search, Bing Copilot, etc.).
Key GEO Principles
Section titled “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
Section titled “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
Section titled “Execution Plan”Phase 0: Emergency Fixes (ALL SITES) — Priority: CRITICAL
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Per-Site Details”urWhats.com
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “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
Section titled “Cloudflare Configuration Notes”All Sites Use:
Section titled “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:
Section titled “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:
Section titled “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
Section titled “Version History”| Date | Author | Changes |
|---|---|---|
| 2026-02-19 | Claude Code | Initial comprehensive audit and strategy |