1
0
mirror of https://github.com/alexandrev/xslt-lab.git synced 2026-09-16 18:23:16 +00:00

SEO: robots.txt with sitemap, related posts links, canonical tags, better CTR snippet

This commit is contained in:
alexandrev-tibco
2026-04-13 19:05:52 +02:00
parent d850207ba9
commit 39511642e4
6 changed files with 69 additions and 4 deletions
+4 -4
View File
@@ -3,19 +3,19 @@
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>XSLT Playground - Free Online XSLT Editor, Tester &amp; Validator</title>
<title>XSLT Playground Free Online XSLT Tester &amp; Editor</title>
<meta
name="description"
content="Free online XSLT editor, tester and validator. Run XSLT 1.0, 2.0 and 3.0 transformations instantly in your browser using Saxon. No installation required."
content="Run and test XSLT instantly in your browser. Supports XSLT 1.0, 2.0 and 3.0 via Saxon. No install, no signup — results in seconds."
/>
<meta
name="keywords"
content="xslt online, xslt editor, xslt tester, xslt validator, xsl editor, xsl tester, xslt playground, xslt 3.0, xslt 2.0, online xslt editor, xslt transformation online, xml transformation, saxon xslt"
/>
<meta property="og:title" content="XSLT Playground - Free Online XSLT Editor, Tester &amp; Validator" />
<meta property="og:title" content="XSLT Playground Free Online XSLT Tester &amp; Editor" />
<meta
property="og:description"
content="Free online XSLT editor, tester and validator. Run XSLT 1.0, 2.0 and 3.0 transformations instantly in your browser using Saxon. No installation required."
content="Run and test XSLT instantly in your browser. Supports XSLT 1.0, 2.0 and 3.0 via Saxon. No install, no signup — results in seconds."
/>
<meta property="og:type" content="website" />
<meta property="og:url" content="https://xsltplayground.com/" />
+5
View File
@@ -5,6 +5,11 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{ block "title" . }}{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}{{ end }}</title>
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.subtitle }}{{ end }}">
<link rel="canonical" href="{{ .Permalink }}">
<meta property="og:title" content="{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}">
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.subtitle }}{{ end }}">
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}">
<meta property="og:url" content="{{ .Permalink }}">
{{ partial "adsense/head.html" . }}
<link rel="stylesheet" href="{{ "css/main.css" | relURL }}">
</head>
+1
View File
@@ -9,5 +9,6 @@
{{ .Content }}
</div>
<p class="muted back-link"><a href="{{ .CurrentSection.RelPermalink }}">← Back to {{ .CurrentSection.Title }}</a></p>
{{ partial "related-posts.html" . }}
</article>
{{ end }}
+12
View File
@@ -0,0 +1,12 @@
{{- $related := first 4 (where (where .Site.RegularPages "Section" "posts") "Permalink" "ne" .Permalink) -}}
{{- if $related -}}
<aside class="related-posts">
<h3>Related articles</h3>
<ul>
{{- range $related }}
<li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
{{- end }}
</ul>
<p class="related-cta">Try the examples in <a href="https://xsltplayground.com">XSLT Playground</a> — free online XSLT editor and tester.</p>
</aside>
{{- end -}}
+4
View File
@@ -0,0 +1,4 @@
User-agent: *
Disallow:
Sitemap: {{ .Site.BaseURL }}sitemap.xml
+43
View File
@@ -254,6 +254,49 @@ code {
border-radius: 6px;
}
.related-posts {
margin-top: 3rem;
padding: 1.5rem;
border: 1px solid var(--border);
border-radius: 8px;
background: rgba(255,255,255,0.03);
}
.related-posts h3 {
margin: 0 0 0.75rem;
font-size: 1rem;
color: var(--accent);
}
.related-posts ul {
list-style: none;
padding: 0;
margin: 0 0 1rem;
display: flex;
flex-direction: column;
gap: 0.4rem;
}
.related-posts ul a {
color: var(--text);
text-decoration: none;
}
.related-posts ul a:hover {
color: var(--accent);
text-decoration: underline;
}
.related-cta {
margin: 0;
font-size: 0.85rem;
color: var(--muted);
}
.related-cta a {
color: var(--accent);
}
@media (max-width: 720px) {
.header-grid { grid-template-columns: 1fr; }
.nav { flex-wrap: wrap; }