Skip to content

Commit 787f9a6

Browse files
Add per-page meta descriptions and JSON-LD structured data (Organization, Person, WebSite)
1 parent 6efd36c commit 787f9a6

12 files changed

Lines changed: 106 additions & 0 deletions

File tree

src/components/common/JsonLd.astro

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
---
2+
import { SITE } from 'astrowind:config';
3+
4+
const siteUrl = SITE.site || 'https://www.hybridsolutions.cloud';
5+
6+
const organizationSchema = {
7+
'@context': 'https://schema.org',
8+
'@type': 'LocalBusiness',
9+
'@id': `${siteUrl}/#organization`,
10+
name: 'Hybrid Cloud Solutions, LLC',
11+
url: siteUrl,
12+
logo: `${siteUrl}/_astro/logo-primary-800.png`,
13+
description:
14+
'Microsoft hybrid cloud consulting, training, and architecture — specializing in Azure Local, Azure Arc, Hyper-V, and edge infrastructure.',
15+
foundingDate: '2023',
16+
areaServed: 'US',
17+
serviceType: ['Hybrid Cloud Consulting', 'Azure Architecture', 'Microsoft Training', 'Conference Speaking'],
18+
sameAs: [
19+
'https://twitter.com/countrycloudboy',
20+
'https://youtube.com/@countrycloudboy',
21+
'https://github.com/hybridsolutionscloud',
22+
'https://www.linkedin.com/in/intcloudboy/',
23+
'https://sessionize.com/kristopherjturner/',
24+
],
25+
contactPoint: {
26+
'@type': 'ContactPoint',
27+
url: `${siteUrl}/contact`,
28+
contactType: 'customer service',
29+
},
30+
};
31+
32+
const personSchema = {
33+
'@context': 'https://schema.org',
34+
'@type': 'Person',
35+
name: 'Kristopher Turner',
36+
jobTitle: 'Founder & Principal Consultant',
37+
worksFor: {
38+
'@type': 'Organization',
39+
name: 'Hybrid Cloud Solutions, LLC',
40+
},
41+
url: siteUrl,
42+
sameAs: [
43+
'https://twitter.com/countrycloudboy',
44+
'https://youtube.com/@countrycloudboy',
45+
'https://www.linkedin.com/in/intcloudboy/',
46+
'https://sessionize.com/kristopherjturner/',
47+
'https://mvp.microsoft.com/en-US/mvp/profile/76834ced-665a-e411-93f2-9cb65495d3c4',
48+
],
49+
knowsAbout: [
50+
'Microsoft Azure',
51+
'Azure Local',
52+
'Azure Arc',
53+
'Hyper-V',
54+
'Azure Virtual Desktop',
55+
'Hybrid Cloud Architecture',
56+
'Windows Server',
57+
],
58+
hasCredential: [
59+
{
60+
'@type': 'EducationalOccupationalCredential',
61+
credentialCategory: 'certification',
62+
name: 'Microsoft Certified: Azure Solutions Architect Expert',
63+
},
64+
{
65+
'@type': 'EducationalOccupationalCredential',
66+
credentialCategory: 'certification',
67+
name: 'Microsoft Certified: Cybersecurity Architect Expert',
68+
},
69+
],
70+
};
71+
72+
const websiteSchema = {
73+
'@context': 'https://schema.org',
74+
'@type': 'WebSite',
75+
name: 'Hybrid Cloud Solutions',
76+
url: siteUrl,
77+
publisher: {
78+
'@id': `${siteUrl}/#organization`,
79+
},
80+
};
81+
---
82+
83+
<script type="application/ld+json" set:html={JSON.stringify(organizationSchema)} />
84+
<script type="application/ld+json" set:html={JSON.stringify(personSchema)} />
85+
<script type="application/ld+json" set:html={JSON.stringify(websiteSchema)} />

src/layouts/Layout.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import Metadata from '~/components/common/Metadata.astro';
1111
import SiteVerification from '~/components/common/SiteVerification.astro';
1212
import Analytics from '~/components/common/Analytics.astro';
1313
import BasicScripts from '~/components/common/BasicScripts.astro';
14+
import JsonLd from '~/components/common/JsonLd.astro';
1415
1516
// Comment the line below to disable View Transitions
1617
import { ClientRouter } from 'astro:transitions';
@@ -35,6 +36,7 @@ const { language, textDirection } = I18N;
3536
<Metadata {...metadata} />
3637
<SiteVerification />
3738
<Analytics />
39+
<JsonLd />
3840

3941
<!-- Comment the line below to disable View Transitions -->
4042
<ClientRouter fallback="swap" />

src/pages/about.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import kristopherImg from '~/assets/images/kristopher-turner.jpg';
1111
1212
const metadata = {
1313
title: 'About',
14+
description:
15+
'Meet Kristopher Turner — Microsoft MVP, MCT, and founder of Hybrid Cloud Solutions. 15+ years of hands-on experience with Azure, Hyper-V, and hybrid infrastructure.',
1416
};
1517
---
1618

src/pages/brand.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import ogImage from '~/assets/images/og-image-1200x630.png';
2121
2222
const metadata = {
2323
title: 'Brand Assets',
24+
description:
25+
'Official Hybrid Cloud Solutions brand assets — logos, marks, colors, and usage guidelines for media, partners, and event organizers.',
2426
};
2527
---
2628

src/pages/certifications.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ import CallToAction from '~/components/widgets/CallToAction.astro';
99
1010
const metadata = {
1111
title: 'Certifications & Credentials',
12+
description:
13+
'8 active Microsoft certifications, 16 passed exams — Azure Solutions Architect Expert, Cybersecurity Architect Expert, Azure Local, Windows Server Hybrid Administrator, and more.',
1214
};
1315
---
1416

src/pages/community.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ import CallToAction from '~/components/widgets/CallToAction.astro';
88
99
const metadata = {
1010
title: 'Community',
11+
description:
12+
'Join the Hybrid Cloud Solutions community — YouTube, GitHub, Discord, and social media channels for hybrid cloud professionals and IT infrastructure enthusiasts.',
1113
};
1214
---
1315

src/pages/conferences.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import kristopherSpeakingImg from '~/assets/images/kristopher-speaking.jpeg';
1313
1414
const metadata = {
1515
title: 'Conferences & Speaking',
16+
description:
17+
'Conference speaking engagements by Kristopher Turner — sessions on Azure Local, Azure Arc, AVD, hybrid cloud migration, and edge infrastructure at MMS, M365, and more.',
1618
};
1719
---
1820

src/pages/contact.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import Features2 from '~/components/widgets/Features2.astro';
66
77
const metadata = {
88
title: 'Contact',
9+
description:
10+
'Get in touch with Hybrid Cloud Solutions for consulting, training, or speaking engagements. We respond within one business day.',
911
};
1012
---
1113

src/pages/index.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ import heroLogoPrimary from '~/assets/images/logo-primary-1600.png';
1717
const metadata = {
1818
title: 'Hybrid Cloud Made Simple | Hybrid Cloud Solutions, LLC',
1919
ignoreTitleTemplate: true,
20+
description:
21+
'Hybrid Cloud Solutions, LLC delivers Microsoft hybrid cloud consulting, training, and architecture — specializing in Azure Local, Azure Arc, Hyper-V, and edge infrastructure.',
2022
};
2123
---
2224

src/pages/legal.astro

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import HeroText from '~/components/widgets/HeroText.astro';
44
55
const metadata = {
66
title: 'Legal',
7+
description: 'Privacy policy and terms of service for Hybrid Cloud Solutions, LLC.',
78
};
89
---
910

0 commit comments

Comments
 (0)