Skip to content

Commit 19ede81

Browse files
committed
feat(seo): add structured data and meta tags for improved search visibility
- Add JSON-LD Person schema with certifications, skills, and employer - Add Twitter Card meta tags for better social sharing - Add canonical URLs, author, keywords, and robots meta tags - Add robots.txt with sitemap reference - Override Toha header.html partial to inject SEO enhancements - Add layouts mount to hugo.yaml for template overrides - Add _vendor/ to .gitignore (Hugo module cache) - Update PRD.md with current site architecture and SEO documentation
1 parent 6244bc5 commit 19ede81

File tree

4 files changed

+110
-0
lines changed

4 files changed

+110
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
# Dependency directories (remove the comment below to include it)
2323
# vendor/
24+
_vendor/
2425

2526
# Go workspace file
2627
go.work

hugo.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ module:
77
imports:
88
- path: github.com/hugo-toha/toha/v4
99
mounts:
10+
- source: layouts
11+
target: layouts
1012
- source: static
1113
target: static
1214
- source: ./node_modules/flag-icons/flags
@@ -50,6 +52,10 @@ enableEmoji: true
5052

5153
# Site Parameters
5254
params:
55+
# Custom head content for SEO
56+
customHTML:
57+
head: layouts/partials/custom-head.html
58+
5359
# Background image (optional)
5460
# background: /images/site/background.jpg
5561

layouts/partials/header.html

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<meta charset="UTF-8" />
2+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
3+
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
4+
5+
{{ partial "helpers/style-bundle.html" . }}
6+
7+
<!--================= fab-icon =========================-->
8+
{{/* add favicon only if the site author has provided the the favicon */}}
9+
{{ if site.Params.logo.favicon }}
10+
{{ $favicon := site.Params.logo.favicon }}
11+
12+
{{/* resize the favicon. don't resize svg because it is not supported */}}
13+
{{ $favicon = resources.Get $favicon }}
14+
{{ if and $favicon (ne $favicon.MediaType.SubType "svg") }}
15+
{{ $favicon = $favicon.Resize "42x" }}
16+
{{ end }}
17+
{{ $favicon = $favicon.RelPermalink}}
18+
19+
<link rel="icon" type="image/png" href="{{ $favicon }}" />
20+
{{end}}
21+
22+
{{ with .OutputFormats.Get "rss" -}}
23+
{{ printf `<link rel=%q type=%q href=%q title=%q>` .Rel .MediaType.Type .Permalink site.Title | safeHTML }}
24+
{{ end }}
25+
26+
{{/* ========== CUSTOM SEO ENHANCEMENTS ========== */}}
27+
28+
{{/* JSON-LD Structured Data for Person */}}
29+
<script type="application/ld+json">
30+
{
31+
"@context": "https://schema.org",
32+
"@type": "Person",
33+
"name": "João Trigo Soares",
34+
"jobTitle": "Platforms Engineering Team Lead",
35+
"worksFor": {
36+
"@type": "Organization",
37+
"name": "NOS Inovação",
38+
"url": "https://www.nos.pt"
39+
},
40+
"url": "https://jtsoar.es",
41+
"image": "https://jtsoar.es/images/author/avatar.jpg",
42+
"email": "joao@jtsoar.es",
43+
"sameAs": [
44+
"https://github.com/suvl",
45+
"https://linkedin.com/in/joaotrigosoares",
46+
"https://twitter.com/thegreatdevop"
47+
],
48+
"knowsAbout": [
49+
"Kubernetes",
50+
"DevOps",
51+
"Cloud Native",
52+
"Platform Engineering",
53+
"Azure",
54+
"Google Cloud",
55+
"Terraform",
56+
"Docker"
57+
],
58+
"hasCredential": [
59+
{
60+
"@type": "EducationalOccupationalCredential",
61+
"name": "Certified Kubernetes Administrator (CKA)",
62+
"credentialCategory": "Professional Certification"
63+
},
64+
{
65+
"@type": "EducationalOccupationalCredential",
66+
"name": "Certified Kubernetes Application Developer (CKAD)",
67+
"credentialCategory": "Professional Certification"
68+
},
69+
{
70+
"@type": "EducationalOccupationalCredential",
71+
"name": "Certified Kubernetes Security Specialist (CKS)",
72+
"credentialCategory": "Professional Certification"
73+
}
74+
],
75+
"alumniOf": {
76+
"@type": "CollegeOrUniversity",
77+
"name": "Faculty of Engineering, University of Porto (FEUP)"
78+
},
79+
"address": {
80+
"@type": "PostalAddress",
81+
"addressLocality": "Lisbon",
82+
"addressCountry": "Portugal"
83+
}
84+
}
85+
</script>
86+
87+
{{/* Additional meta tags for better SEO */}}
88+
<meta name="author" content="João Trigo Soares">
89+
<meta name="keywords" content="João Trigo Soares, DevOps, Kubernetes, Platform Engineering, CKA, CKAD, CKS, Cloud Native, Azure, GCP, Terraform, Lisbon, Portugal">
90+
<meta name="robots" content="index, follow">
91+
<link rel="canonical" href="{{ .Permalink }}">
92+
93+
{{/* Twitter Card tags */}}
94+
<meta name="twitter:card" content="summary">
95+
<meta name="twitter:site" content="@thegreatdevop">
96+
<meta name="twitter:creator" content="@thegreatdevop">
97+
<meta name="twitter:title" content="{{ if .IsHome }}João Trigo Soares - Platforms Engineering Team Lead{{ else }}{{ .Title }} | João Trigo Soares{{ end }}">
98+
<meta name="twitter:description" content="Platforms Engineering Team Lead specializing in Kubernetes, Cloud Native, and DevOps practices. Triple Kubernetes Certified (CKA, CKAD, CKS).">
99+
<meta name="twitter:image" content="https://jtsoar.es/images/author/avatar.jpg">

static/robots.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
User-agent: *
2+
Allow: /
3+
4+
Sitemap: https://jtsoar.es/sitemap.xml

0 commit comments

Comments
 (0)