From 42e0971a13a105b35af1f7c3a956db03e65e3289 Mon Sep 17 00:00:00 2001 From: Timo Knuth Date: Thu, 22 Jan 2026 15:17:20 +0100 Subject: [PATCH] Complete SEO overhaul --- App.tsx | 31 + components/AreasWeServe.tsx | 43 + components/CTA.tsx | 148 +- components/Counter.tsx | 56 +- components/FAQ.tsx | 65 + components/SEO.tsx | 68 + components/Services.tsx | 164 ++- components/Testimonials.tsx | 88 +- index.html | 16 + package-lock.json | 528 +++++++ package.json | 4 +- public/assets/services/business-it.png | Bin 0 -> 720005 bytes public/assets/services/help-desk.png | Bin 0 -> 643343 bytes public/assets/services/managed-it.png | Bin 0 -> 750686 bytes public/images/blog/aransas-pass-it.png | Bin 0 -> 862406 bytes public/images/blog/common-it-problems.png | Bin 0 -> 718241 bytes public/images/blog/corpus-christi-it.png | Bin 0 -> 833129 bytes public/images/blog/it-service-comparison.png | Bin 0 -> 751418 bytes public/images/blog/it-support-cost.png | Bin 0 -> 708252 bytes .../images/blog/it-support-small-business.png | Bin 0 -> 788192 bytes public/images/blog/kingsville-tx-it.png | Bin 0 -> 830609 bytes public/images/blog/outsourced-it-support.png | Bin 0 -> 775266 bytes public/images/blog/portland-tx-it.png | Bin 0 -> 837779 bytes public/images/blog/rockport-tx-it.png | Bin 0 -> 951685 bytes public/robots.txt | 6 + public/sitemap.xml | 147 ++ scripts/generate-robots.ts | 28 + scripts/generate-sitemap.ts | 85 ++ src/data/seoData.ts | 1251 +++++++++++++++++ src/pages/AboutPage.tsx | 492 +++---- src/pages/BlogPage.tsx | 185 ++- src/pages/BlogPostPage.tsx | 322 +++++ src/pages/ContactPage.tsx | 414 +++--- src/pages/HomePage.tsx | 120 +- src/pages/LocationPage.tsx | 214 +++ src/pages/ServicePage.tsx | 232 +++ src/pages/ServicesPage.tsx | 829 +++++------ 37 files changed, 4319 insertions(+), 1217 deletions(-) create mode 100644 components/AreasWeServe.tsx create mode 100644 components/FAQ.tsx create mode 100644 components/SEO.tsx create mode 100644 public/assets/services/business-it.png create mode 100644 public/assets/services/help-desk.png create mode 100644 public/assets/services/managed-it.png create mode 100644 public/images/blog/aransas-pass-it.png create mode 100644 public/images/blog/common-it-problems.png create mode 100644 public/images/blog/corpus-christi-it.png create mode 100644 public/images/blog/it-service-comparison.png create mode 100644 public/images/blog/it-support-cost.png create mode 100644 public/images/blog/it-support-small-business.png create mode 100644 public/images/blog/kingsville-tx-it.png create mode 100644 public/images/blog/outsourced-it-support.png create mode 100644 public/images/blog/portland-tx-it.png create mode 100644 public/images/blog/rockport-tx-it.png create mode 100644 public/robots.txt create mode 100644 public/sitemap.xml create mode 100644 scripts/generate-robots.ts create mode 100644 scripts/generate-sitemap.ts create mode 100644 src/data/seoData.ts create mode 100644 src/pages/BlogPostPage.tsx create mode 100644 src/pages/LocationPage.tsx create mode 100644 src/pages/ServicePage.tsx diff --git a/App.tsx b/App.tsx index 48f819c..dff70be 100644 --- a/App.tsx +++ b/App.tsx @@ -12,6 +12,10 @@ import AboutPage from './src/pages/AboutPage'; import ServicesPage from './src/pages/ServicesPage'; import BlogPage from './src/pages/BlogPage'; import ContactPage from './src/pages/ContactPage'; +import LocationPage from './src/pages/LocationPage'; +import ServicePage from './src/pages/ServicePage'; +import BlogPostPage from './src/pages/BlogPostPage'; +import { locationData, serviceData, blogPostData } from './src/data/seoData'; // Register GSAP plugins globally gsap.registerPlugin(ScrollTrigger, ScrollToPlugin); @@ -69,6 +73,33 @@ const AppContent: React.FC = () => { } /> } /> } /> + + {/* SEO Location Pages */} + {locationData.map((data) => ( + } + /> + ))} + + {/* SEO Service Pages */} + {serviceData.map((data) => ( + } + /> + ))} + + {/* Authority Blog Posts */} + {blogPostData.map((data) => ( + } + /> + ))}