feat(frontend): SEO — sitemap, canonical link, structured data

- robots.txt now also points at a real sitemap.xml (public pages
  only: /, /download, /themes, /showcase) and disallows the
  auth-gated routes (/account, /configs, /link) that have nothing
  useful to a crawler
- canonical <link> on the root page
- SoftwareApplication JSON-LD so Google can render a rich result
  (name, free price, icon) instead of a plain blue link

Claude-Session: https://claude.ai/code/session_01F1M1Jic1wTSn4igUENynmZ
This commit is contained in:
loki5512344 2026-09-30 15:48:44 +02:00
parent 9744dc7f24
commit 6b0633034d
Signed by: boba
GPG key ID: 253067914055423B
3 changed files with 46 additions and 0 deletions

View file

@ -3,6 +3,7 @@
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/favicon.svg?v=2" />
<link rel="canonical" href="https://visual.loki-code.dev/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#0d1416" />
<meta
@ -31,6 +32,22 @@
content="A free legit Minecraft visuals mod. Wings, a floating 3D menu, rain with reflections and cloud configs."
/>
<meta name="twitter:image" content="https://visual.loki-code.dev/og-image.png" />
<!-- Structured data so Google can show a rich result (name, free price, icon) instead of a
plain blue link -- doesn't affect ranking on its own, just how the result looks. -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "LoVisual",
"applicationCategory": "GameApplication",
"operatingSystem": "Windows, macOS, Linux",
"url": "https://visual.loki-code.dev/",
"description": "A free legit Minecraft visuals mod for MC 26.2 (Fabric): wings, a floating 3D menu, rain with reflections, cloud configs and a live theme editor.",
"offers": { "@type": "Offer", "price": "0", "priceCurrency": "USD" },
"image": "https://visual.loki-code.dev/og-image.png"
}
</script>
</head>
<body>
<div id="root"></div>

View file

@ -1,2 +1,8 @@
User-agent: *
Allow: /
# Requires a signed-in account; nothing here is useful to crawl.
Disallow: /account
Disallow: /configs
Disallow: /link
Sitemap: https://visual.loki-code.dev/sitemap.xml

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://visual.loki-code.dev/</loc>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://visual.loki-code.dev/download</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://visual.loki-code.dev/themes</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://visual.loki-code.dev/showcase</loc>
<changefreq>daily</changefreq>
<priority>0.6</priority>
</url>
</urlset>