Some better SEO

This commit is contained in:
2025-08-11 13:51:33 +09:30
parent 7773d7c3ea
commit 8bbc49ff22
5 changed files with 74 additions and 2 deletions

18
package-lock.json generated
View File

@@ -18,7 +18,9 @@
"@tailwindcss/vite": "^4.1.11",
"astro": "^5.12.8",
"astro-icon": "^1.1.5",
"astro-seo-schema": "^5.1.0",
"get-audio-duration": "^4.0.1",
"schema-dts": "^1.1.5",
"tailwindcss": "^4.1.11"
},
"devDependencies": {
@@ -3113,6 +3115,16 @@
"@iconify/utils": "^2.1.30"
}
},
"node_modules/astro-seo-schema": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/astro-seo-schema/-/astro-seo-schema-5.1.0.tgz",
"integrity": "sha512-6qN6H7KlzSXNQ9Q+5eUMCYsHuzz+SRDEqQLjRlNaFG+0XE4UdOBSTVorRWHjd5I1LaTc5Btgz26V6RmWEXFfrA==",
"license": "MIT",
"peerDependencies": {
"astro": "^5.0.0",
"schema-dts": "^1.1.0"
}
},
"node_modules/astro/node_modules/vite": {
"version": "6.3.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-6.3.5.tgz",
@@ -8478,6 +8490,12 @@
"integrity": "sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==",
"license": "ISC"
},
"node_modules/schema-dts": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/schema-dts/-/schema-dts-1.1.5.tgz",
"integrity": "sha512-RJr9EaCmsLzBX2NDiO5Z3ux2BVosNZN5jo0gWgsyKvxKIUL5R3swNvoorulAeL9kLB0iTSX7V6aokhla2m7xbg==",
"license": "Apache-2.0"
},
"node_modules/semver": {
"version": "7.7.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz",

View File

@@ -19,7 +19,9 @@
"@tailwindcss/vite": "^4.1.11",
"astro": "^5.12.8",
"astro-icon": "^1.1.5",
"astro-seo-schema": "^5.1.0",
"get-audio-duration": "^4.0.1",
"schema-dts": "^1.1.5",
"tailwindcss": "^4.1.11"
},
"devDependencies": {

View File

@@ -8,11 +8,58 @@ interface Props {
const { title, description, url = Astro.url, image } = Astro.props;
import person from "@/data/person";
import site from "@data/site";
import { Schema } from "astro-seo-schema";
---
<!-- SEO -->
<link rel="canonical" href={url} />
<meta name="robots" content="all" />
<Schema
item={{
"@context": "https://schema.org",
"@type": "Person",
name: "Nathan Cummins",
alternateName: "Nathan Leon Cummins",
alumniOf: {
"@type": "CollegeOrUniversity",
name: [
"University of Adelaide",
"Adelaide University",
"Elder Conservatorium",
"Elder Conservatorium of Music"
]
},
knowsAbout: [
"Music",
"Music Composition",
"Composition",
"Music Theory",
"Orchestration",
"Music Orchestration",
"Conducting",
"Cubase",
"Dorico",
"Sheet Music",
"Engraving",
"Unity",
"Unity3D",
"Software Development",
"Web Design",
"C#",
"Video Games",
"Video Game Development",
"Development",
"Game Development"
],
email: person.email,
jobTitle: person.jobTitle,
description: site.description,
image: site.image.externalURL
}}
/>
<!-- Open Graph -->
<meta property="og:site_name" content={site.title} />
@@ -55,3 +102,6 @@ import site from "@data/site";
/>
<meta name="twitter:image:alt" content={title} />
<meta name="twitter:domain" content={import.meta.env.SITE} />
<!-- Theming -->
<meta name="theme-color" content="#ff2d00" />

View File

@@ -3,5 +3,7 @@ export default {
first: "Nathan",
last: "Cummins"
},
title: "Dr"
title: "Dr",
jobTitle: "Composer, Orchestrator, Conductor, Sound Designer, Performer",
email: "nathan@nathancummins.com.au"
};

View File

@@ -3,7 +3,7 @@ import person from "@data/person";
export default {
title: `${person.names.first} ${person.names.last} - Adelaide Composer, Orchestrator, Conductor, and Performer`,
description:
"Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance. Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project",
"Nathan Cummins is an award-winning composer, orchestrator, sound designer, and conductor known for his vibrant music across video games, film, and live performance. Based in Adelaide, he brings classical craft, bold creativity, and technical innovation to every project.",
tagline: "Composer, Orchestrator, Conductor, Performer",
image: {
externalURL: `${import.meta.env.SITE}/nathan-cummins-composer-orchestrator-conductor.png`,