fix: seo
This commit is contained in:
parent
a8765990ef
commit
f378233328
23
index.html
23
index.html
|
|
@ -7,8 +7,27 @@
|
|||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
|
||||
<link rel="manifest" href="/site.webmanifest" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Queue North Technologies | Modern Communications Infrastructure</title>
|
||||
<meta name="description" content="Queue North Technologies is an official 8x8 Certified Partner delivering UCaaS, Contact Center, deployment, and managed lifecycle support for SMB and enterprise organizations." />
|
||||
<title>Queue North Technologies | Business Communications & IT Partner</title>
|
||||
<meta name="description" content="Queue North Technologies is a veteran-owned 8x8 Certified Partner providing business phone systems, UCaaS, contact center, IT support, and networking solutions. 25+ years of proven reliability." />
|
||||
<!-- Open Graph fallback for crawlers that don't execute JavaScript -->
|
||||
<meta property="og:title" content="Queue North Technologies | Business Communications & IT Partner" />
|
||||
<meta property="og:description" content="Veteran-owned 8x8 Certified Partner. Business phone, UCaaS, contact center, IT support, and networking solutions. 25+ years of proven reliability." />
|
||||
<meta property="og:url" content="https://queuenorth.com" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:image:secure_url" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:image:type" content="image/png" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content="Queue North Technologies — Business Communications & IT Partner" />
|
||||
<!-- Twitter / X Card fallback -->
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content="Queue North Technologies | Business Communications & IT Partner" />
|
||||
<meta name="twitter:description" content="Veteran-owned 8x8 Certified Partner. Business phone, UCaaS, contact center, IT support, and networking solutions." />
|
||||
<meta name="twitter:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta name="twitter:image:alt" content="Queue North Technologies — Business Communications & IT Partner" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
|
||||
const DEFAULT_IMAGE = 'https://queuenorth.com/assets/og-image.png'
|
||||
const DEFAULT_IMAGE_ALT = 'Queue North Technologies — Business Communications & IT Partner'
|
||||
const SITE_NAME = 'Queue North Technologies'
|
||||
|
||||
const SEO = ({ title, description, url, type = 'website', image = DEFAULT_IMAGE, jsonLd }) => {
|
||||
const schemas = jsonLd ? (Array.isArray(jsonLd) ? jsonLd : [jsonLd]) : []
|
||||
|
||||
return (
|
||||
<Helmet>
|
||||
<title>{title}</title>
|
||||
<meta name="description" content={description} />
|
||||
|
||||
{/* Open Graph — Facebook, LinkedIn, iMessage, Google Messages, Slack */}
|
||||
<meta property="og:title" content={title} />
|
||||
<meta property="og:description" content={description} />
|
||||
<meta property="og:url" content={url} />
|
||||
<meta property="og:type" content={type} />
|
||||
<meta property="og:site_name" content={SITE_NAME} />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:image" content={image} />
|
||||
<meta property="og:image:secure_url" content={image} />
|
||||
<meta property="og:image:type" content="image/png" />
|
||||
<meta property="og:image:width" content="1200" />
|
||||
<meta property="og:image:height" content="630" />
|
||||
<meta property="og:image:alt" content={DEFAULT_IMAGE_ALT} />
|
||||
|
||||
{/* Twitter / X — also used by Apple Messages on iOS 13+ */}
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
<meta name="twitter:title" content={title} />
|
||||
<meta name="twitter:description" content={description} />
|
||||
<meta name="twitter:image" content={image} />
|
||||
<meta name="twitter:image:alt" content={DEFAULT_IMAGE_ALT} />
|
||||
|
||||
{schemas.map((schema, i) => (
|
||||
<script key={i} type="application/ld+json">{JSON.stringify(schema)}</script>
|
||||
))}
|
||||
</Helmet>
|
||||
)
|
||||
}
|
||||
|
||||
export default SEO
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { Link } from 'react-router-dom'
|
||||
import { ArrowRight, Award, BadgeCheck, CheckCircle2, Compass, Cpu, Handshake, Headphones, Route, ShieldCheck, Users, Wrench } from 'lucide-react'
|
||||
|
||||
|
|
@ -46,16 +46,11 @@ const capabilities = [
|
|||
const About = () => {
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>About Queue North | Veteran-Owned 8x8 Partner - 25+ Years of Service</title>
|
||||
<meta name="description" content="Queue North Technologies is a veteran-owned 8x8 and Cisco Certified Partner with 25+ years of experience in communications, contact center, support, and network infrastructure." />
|
||||
<meta property="og:title" content="About Queue North | Veteran-Owned 8x8 Partner - 25+ Years of Service" />
|
||||
<meta property="og:description" content="Veteran-owned 8x8 and Cisco Certified Partner with 25+ years of communications and infrastructure experience." />
|
||||
<meta property="og:url" content="https://queuenorth.com/about" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="About Queue North | Veteran-Owned 8x8 Partner — 25+ Years of Service"
|
||||
description="Queue North Technologies is a veteran-owned 8x8 and Cisco Certified Partner with 25+ years of experience in communications, contact center, support, and network infrastructure."
|
||||
url="https://queuenorth.com/about"
|
||||
/>
|
||||
|
||||
{/* Page Hero */}
|
||||
<section className="bg-primary-navy py-12 lg:py-20 text-white">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
import { Button } from '@/components/ui/Button'
|
||||
|
|
@ -133,16 +133,11 @@ const Contact = () => {
|
|||
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>Contact Queue North | Schedule a Consultation</title>
|
||||
<meta name="description" content="Contact Queue North Technologies to schedule a free consultation. Call (321) 730-8020 or toll-free (888) 656-2850 or fill out our form for business phone, UCaaS, IT support, and networking solutions." />
|
||||
<meta property="og:title" content="Contact Queue North | Schedule a Consultation" />
|
||||
<meta property="og:description" content="Schedule a free consultation with Queue North Technologies. Business communications and IT solutions." />
|
||||
<meta property="og:url" content="https://queuenorth.com/contact" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="Contact Queue North | Schedule a Free Consultation"
|
||||
description="Contact Queue North Technologies to schedule a free consultation. Call (321) 730-8020 or toll-free (888) 656-2850 for business phone, UCaaS, IT support, and networking solutions."
|
||||
url="https://queuenorth.com/contact"
|
||||
/>
|
||||
|
||||
{/* Hero */}
|
||||
<section className="bg-primary-navy py-12 lg:py-20">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/Card'
|
||||
import { services } from '@/data/services'
|
||||
import { industries } from '@/data/industries'
|
||||
|
|
@ -57,18 +57,12 @@ const Home = () => {
|
|||
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>Queue North Technologies | Business Communications & IT Partner</title>
|
||||
<meta name="description" content="Queue North Technologies is a veteran-owned 8x8 Certified Partner providing business phone systems, UCaaS, contact center, IT support, and networking solutions. 25+ years of proven reliability." />
|
||||
<meta property="og:title" content="Queue North Technologies | Business Communications & IT Partner" />
|
||||
<meta property="og:description" content="Veteran-owned 8x8 Certified Partner. Business phone, UCaaS, contact center, IT support, and networking solutions. 25+ years of proven reliability." />
|
||||
<meta property="og:url" content="https://queuenorth.com" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
<script type="application/ld+json">{JSON.stringify(organizationLd)}</script>
|
||||
<script type="application/ld+json">{JSON.stringify(localBusinessLd)}</script>
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="Queue North Technologies | Business Communications & IT Partner"
|
||||
description="Queue North Technologies is a veteran-owned 8x8 Certified Partner providing business phone systems, UCaaS, contact center, IT support, and networking solutions. 25+ years of proven reliability."
|
||||
url="https://queuenorth.com"
|
||||
jsonLd={[organizationLd, localBusinessLd]}
|
||||
/>
|
||||
{/* Hero Section */}
|
||||
<section className="relative isolate overflow-hidden bg-primary-navy text-white">
|
||||
<div className="absolute inset-0 -z-10">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { industries } from '@/data/industries'
|
||||
import { Link } from 'react-router-dom'
|
||||
import { HeartPulse, ShoppingCart, Factory, Landmark, Building2 } from 'lucide-react'
|
||||
|
|
@ -14,16 +14,11 @@ const industryIcons = {
|
|||
const Industries = () => {
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>Industries We Serve | Queue North Technologies</title>
|
||||
<meta name="description" content="Queue North Technologies serves healthcare, retail, manufacturing, education, and finance industries with tailored communications and IT solutions." />
|
||||
<meta property="og:title" content="Industries We Serve | Queue North Technologies" />
|
||||
<meta property="og:description" content="Tailored communications and IT solutions for healthcare, retail, manufacturing, education, and finance." />
|
||||
<meta property="og:url" content="https://queuenorth.com/industries" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="Industries We Serve | Queue North Technologies"
|
||||
description="Queue North Technologies serves healthcare, retail, manufacturing, education, and finance industries with tailored communications and IT solutions."
|
||||
url="https://queuenorth.com/industries"
|
||||
/>
|
||||
{/* Page Hero */}
|
||||
<section className="bg-background py-12 lg:py-20">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { useParams } from 'react-router-dom'
|
||||
import { industries } from '@/data/industries'
|
||||
import { Link } from 'react-router-dom'
|
||||
|
|
@ -11,10 +11,11 @@ const IndustryDetail = () => {
|
|||
if (!industry) {
|
||||
return (
|
||||
<section className="bg-background py-12 lg:py-20">
|
||||
<Helmet>
|
||||
<title>Industry Not Found | Queue North Technologies</title>
|
||||
<meta name="description" content="The industry page you are looking for does not exist." />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="Industry Not Found | Queue North Technologies"
|
||||
description="The industry page you are looking for does not exist."
|
||||
url="https://queuenorth.com/industries"
|
||||
/>
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center">
|
||||
<h1 className="text-3xl font-bold text-primary-navy mb-4">Industry Not Found</h1>
|
||||
|
|
@ -34,16 +35,11 @@ const IndustryDetail = () => {
|
|||
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>{industryTitle}</title>
|
||||
<meta name="description" content={industryDesc} />
|
||||
<meta property="og:title" content={industryTitle} />
|
||||
<meta property="og:description" content={industryDesc} />
|
||||
<meta property="og:url" content={industryUrl} />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title={industryTitle}
|
||||
description={industryDesc}
|
||||
url={industryUrl}
|
||||
/>
|
||||
{/* Page Hero */}
|
||||
<section className="bg-background py-12 lg:py-20">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { useParams } from 'react-router-dom'
|
||||
import { services } from '@/data/services'
|
||||
import { Link } from 'react-router-dom'
|
||||
|
|
@ -18,10 +18,11 @@ const ServiceDetail = () => {
|
|||
if (!service) {
|
||||
return (
|
||||
<section className="bg-background py-16 md:py-24">
|
||||
<Helmet>
|
||||
<title>Service Not Found | Queue North Technologies</title>
|
||||
<meta name="description" content="The service page you are looking for does not exist." />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="Service Not Found | Queue North Technologies"
|
||||
description="The service page you are looking for does not exist."
|
||||
url="https://queuenorth.com/services"
|
||||
/>
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
<div className="text-center">
|
||||
<h1 className="text-3xl font-bold text-primary-navy mb-4">Service Not Found</h1>
|
||||
|
|
@ -58,17 +59,12 @@ const ServiceDetail = () => {
|
|||
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>{serviceTitle}</title>
|
||||
<meta name="description" content={serviceDesc} />
|
||||
<meta property="og:title" content={serviceTitle} />
|
||||
<meta property="og:description" content={serviceDesc} />
|
||||
<meta property="og:url" content={serviceUrl} />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
<script type="application/ld+json">{JSON.stringify(serviceDetailLd)}</script>
|
||||
</Helmet>
|
||||
<SEO
|
||||
title={serviceTitle}
|
||||
description={serviceDesc}
|
||||
url={serviceUrl}
|
||||
jsonLd={serviceDetailLd}
|
||||
/>
|
||||
{/* Page Hero */}
|
||||
<section className="bg-background py-14 md:py-20">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { services } from '@/data/services'
|
||||
import { MessageCircle, Users, LifeBuoy, GraduationCap, Link as LinkIcon, Wifi, Network } from 'lucide-react'
|
||||
import { Link } from 'react-router-dom'
|
||||
|
|
@ -21,17 +21,12 @@ const serviceLd = {
|
|||
const Services = () => {
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>Business Phone, UCaaS & IT Services | Queue North Technologies</title>
|
||||
<meta name="description" content="Explore Queue North Technologies services: unified communications, contact center, managed IT support, consulting & training, infrastructure cabling, wireless access, and local networking." />
|
||||
<meta property="og:title" content="Business Phone, UCaaS & IT Services | Queue North Technologies" />
|
||||
<meta property="og:description" content="Unified communications, contact center, managed IT support, consulting, cabling, wireless, and networking solutions." />
|
||||
<meta property="og:url" content="https://queuenorth.com/services" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
<script type="application/ld+json">{JSON.stringify(serviceLd)}</script>
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="Business Phone, UCaaS & IT Services | Queue North Technologies"
|
||||
description="Explore Queue North Technologies services: unified communications, contact center, managed IT support, consulting & training, infrastructure cabling, wireless access, and local networking."
|
||||
url="https://queuenorth.com/services"
|
||||
jsonLd={serviceLd}
|
||||
/>
|
||||
{/* Page Hero */}
|
||||
<section className="bg-background py-12 lg:py-20">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
import { Helmet } from 'react-helmet-async'
|
||||
import SEO from '@/components/SEO'
|
||||
import { useState } from 'react'
|
||||
import { toast } from 'sonner'
|
||||
import { Button } from '@/components/ui/Button'
|
||||
|
|
@ -135,16 +135,11 @@ const Support = () => {
|
|||
|
||||
return (
|
||||
<>
|
||||
<Helmet>
|
||||
<title>IT Support & Help Desk | Queue North Technologies</title>
|
||||
<meta name="description" content="Get IT support and help desk services from Queue North Technologies. 24/7 monitoring, rapid response SLAs, and dedicated support engineers for your business." />
|
||||
<meta property="og:title" content="IT Support & Help Desk | Queue North Technologies" />
|
||||
<meta property="og:description" content="24/7 IT support and help desk services. Rapid response SLAs, dedicated support engineers." />
|
||||
<meta property="og:url" content="https://queuenorth.com/support" />
|
||||
<meta property="og:type" content="website" />
|
||||
<meta property="og:image" content="https://queuenorth.com/assets/og-image.png" />
|
||||
<meta property="og:site_name" content="Queue North Technologies" />
|
||||
</Helmet>
|
||||
<SEO
|
||||
title="IT Support & Help Desk | Queue North Technologies"
|
||||
description="Get IT support and help desk services from Queue North Technologies. 24/7 monitoring, rapid response SLAs, and dedicated support engineers for your business."
|
||||
url="https://queuenorth.com/support"
|
||||
/>
|
||||
{/* Page Hero */}
|
||||
<section className="bg-primary-navy py-16 lg:py-20 text-white">
|
||||
<div className="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
||||
|
|
|
|||
Loading…
Reference in New Issue