# SEO Audit Report - console.svc.plus **Date**: 2026-01-29 **Audited By**: Antigravity AI **Scope**: SEO optimization without changing functionality --- ## 📊 Summary of Issues Based on Google Search Console data: - **404 Errors**: 804 pages - **Duplicate Pages**: 299 instances - **Redirect Issues**: 8 instances - **5xx Errors**: 6 instances - **Soft 404**: 3 instances - **Missing noindex**: 1 instance - **robots.txt Blocked**: 1 instance - **401 Errors**: 1 instance - **Missing Index**: 235 instances --- ## 🔴 Critical Issues ### 1. Dead Links (404 Errors) - 804 Pages **Problem**: Numerous `href="#"` placeholders throughout the codebase **Affected Files**: - `src/app/page.tsx` (line 259) - `src/components/Header.tsx` (lines 22, 25, 28) - `src/components/DownloadSection.tsx` (line 68) - `src/app/(auth)/login/LoginContent.tsx` (line 299) - `src/app/(auth)/login/LoginForm.tsx` (line 303) **Impact**: - Poor user experience - Negative SEO ranking - Crawl budget waste **Fix Priority**: 🔴 HIGH --- ### 2. Missing not-found.tsx **Problem**: No custom 404 page at app root level **Current State**: - Has `/404/page.tsx` but not `not-found.tsx` - Next.js 13+ App Router requires `not-found.tsx` for proper 404 handling **Impact**: - Improper 404 handling - Missing SEO metadata on 404 pages **Fix Priority**: 🔴 HIGH --- ### 3. Incomplete SEO Metadata **Problem**: Root layout missing essential SEO tags **Current State** (`src/app/layout.tsx`): ```typescript export const metadata = { title: 'Cloud-Neutral', description: 'Unified tools for your cloud native stack', } ``` **Missing**: - Open Graph tags - Twitter Card tags - Canonical URLs - Viewport meta tag - Theme color - Robots meta tag **Fix Priority**: 🟡 MEDIUM --- ### 4. Anchor Links Without Proper Targets **Problem**: Hash links (`#features`, `#docs`, etc.) without corresponding IDs **Affected Files**: - `src/app/[slug]/Client.tsx` (lines 146-161) - `src/components/marketing/ProductScenarios.tsx` (lines 57, 71) - `src/components/marketing/ProductDownload.tsx` (line 88) **Impact**: - Broken in-page navigation - Poor user experience - Potential crawl errors **Fix Priority**: 🟡 MEDIUM --- ### 5. robots.txt Configuration Issues **Problem**: Conflicting rules in robots.txt **Current State**: ``` User-agent: Googlebot Allow: / Allow: /_next/static/ Allow: /_next/image Disallow: /admin/ Disallow: /api/ Disallow: /internal/ Disallow: /_next/ # ⚠️ Conflicts with Allow above ``` **Fix Priority**: 🟡 MEDIUM --- ### 6. Missing Structured Data **Problem**: No JSON-LD structured data for rich snippets **Missing**: - Organization schema - WebSite schema - BreadcrumbList schema - Article schema (for blog posts) **Fix Priority**: 🟢 LOW --- ## 🛠️ Recommended Fixes ### Fix 1: Replace All `href="#"` Links **Action**: Replace placeholder links with actual URLs or remove them ```typescript // ❌ Before Learn more // ✅ After (Option 1: Real link) Learn more // ✅ After (Option 2: Button if not navigating) // ✅ After (Option 3: Disabled state) Coming soon ``` **Files to Update**: 1. `src/app/page.tsx` 2. `src/components/Header.tsx` 3. `src/components/DownloadSection.tsx` 4. `src/app/(auth)/login/LoginContent.tsx` 5. `src/app/(auth)/login/LoginForm.tsx` --- ### Fix 2: Add not-found.tsx **Action**: Create proper 404 handler **File**: `src/app/not-found.tsx` ```typescript import type { Metadata } from 'next' import Link from 'next/link' export const metadata: Metadata = { title: '404 - Page Not Found | Cloud-Neutral', description: 'The page you are looking for does not exist.', robots: { index: false, follow: false, }, } export default function NotFound() { return (

404

Page not found

The page you were looking for could not be found. Please return to the homepage.

Back to homepage
) } ``` --- ### Fix 3: Enhanced SEO Metadata **Action**: Update root layout with comprehensive metadata **File**: `src/app/layout.tsx` ```typescript import type { Metadata } from 'next' export const metadata: Metadata = { metadataBase: new URL('https://www.svc.plus'), title: { default: 'Cloud-Neutral | Unified Cloud Native Tools', template: '%s | Cloud-Neutral', }, description: 'Unified tools for your cloud native stack. Manage infrastructure, deployments, and services across multiple cloud providers.', keywords: ['cloud native', 'kubernetes', 'infrastructure', 'devops', 'cloud management'], authors: [{ name: 'Cloud-Neutral Team' }], creator: 'Cloud-Neutral', publisher: 'Cloud-Neutral', formatDetection: { email: false, address: false, telephone: false, }, openGraph: { type: 'website', locale: 'en_US', url: 'https://www.svc.plus', title: 'Cloud-Neutral | Unified Cloud Native Tools', description: 'Unified tools for your cloud native stack', siteName: 'Cloud-Neutral', images: [ { url: '/og-image.png', width: 1200, height: 630, alt: 'Cloud-Neutral Platform', }, ], }, twitter: { card: 'summary_large_image', title: 'Cloud-Neutral | Unified Cloud Native Tools', description: 'Unified tools for your cloud native stack', images: ['/og-image.png'], creator: '@cloudneutral', }, robots: { index: true, follow: true, googleBot: { index: true, follow: true, 'max-video-preview': -1, 'max-image-preview': 'large', 'max-snippet': -1, }, }, verification: { google: 'your-google-verification-code', }, } export default function RootLayout({ children }: { children: React.ReactNode }) { return ( {/* ... rest of head */} {/* ... rest of layout */} ) } ``` --- ### Fix 4: Add Section IDs for Anchor Links **Action**: Add proper `id` attributes to sections **File**: `src/app/[slug]/Client.tsx` ```typescript // Add IDs to sections
{/* Features content */}
{/* Editions content */}
{/* Scenarios content */}
{/* Download content */}
{/* Docs content */}
{/* FAQ content */}
``` --- ### Fix 5: Clean Up robots.txt **Action**: Remove conflicting rules **File**: `public/robots.txt` ```txt User-agent: Googlebot Allow: / Allow: /_next/static/ Allow: /_next/image Disallow: /admin/ Disallow: /api/ Disallow: /internal/ User-agent: * Allow: / Allow: /_next/static/ Allow: /_next/image Disallow: /admin/ Disallow: /api/ Disallow: /internal/ Sitemap: https://www.svc.plus/sitemap.xml ``` --- ### Fix 6: Add Structured Data **Action**: Add JSON-LD schemas **File**: `src/app/layout.tsx` ```typescript export default function RootLayout({ children }: { children: React.ReactNode }) { const organizationSchema = { '@context': 'https://schema.org', '@type': 'Organization', name: 'Cloud-Neutral', url: 'https://www.svc.plus', logo: 'https://www.svc.plus/logo.png', sameAs: [ 'https://twitter.com/cloudneutral', 'https://github.com/x-evor', ], } const websiteSchema = { '@context': 'https://schema.org', '@type': 'WebSite', name: 'Cloud-Neutral', url: 'https://www.svc.plus', potentialAction: { '@type': 'SearchAction', target: 'https://www.svc.plus/search?q={search_term_string}', 'query-input': 'required name=search_term_string', }, } return ( {/* ... other head elements */}