Improved SEO

This commit is contained in:
Filip Znachor 2024-05-25 13:16:53 +02:00
parent e8cb2f3162
commit 06827ebc49
4 changed files with 50 additions and 13 deletions

View file

@ -3,15 +3,40 @@ import Nav from '../components/Nav.astro';
import Footer from '../components/Footer.astro';
interface Meta {
title?: string;
desc: string;
site_name: string,
author: string,
title: string,
desc: string,
title_suffix: string,
use_title_suffix: boolean,
image: string,
image_type: "banner" | "icon",
favicon: string,
color: string
}
interface Props {
meta: Meta
meta: Partial<Meta>
}
const { meta } = Astro.props;
const defaultMeta: Meta = {
site_name: "CodeSpace.cz",
title: "CodeSpace",
desc: "Spojuje nás touha po svobodě a nezávislosti v digitální době. Provozujeme si vlastní síť a servery, abychom nemuseli spoléhat na ostatní. Poskytujeme různé služby, které respektují naše soukromí.",
author: "CodeSpace",
title_suffix: " · CodeSpace",
use_title_suffix: true,
image: "/assets/icon.webp",
image_type: "icon",
favicon: "/assets/icon.webp",
color: "#cc1e58"
};
const props = Astro.props;
const meta = { ...defaultMeta, ...props.meta };
const title = meta.title + (meta.use_title_suffix ? meta.title_suffix : "");
const card = meta.image_type == "banner" ? "summary_large_image" : "summary";
import '../styles/global.css';
import '../styles/fonts.css';
@ -21,11 +46,23 @@ import '../styles/fonts.css';
<html>
<head>
<meta charset="UTF-8" />
<title>{meta.title}</title>
<title>{title}</title>
<meta name="description" content={meta.desc} />
<meta name="theme-color" content={meta.color}>
<meta name="description" content={meta.desc}>
<meta property="og:site_name" content={meta.site_name}>
<meta property="og:title" content={meta.title}>
<meta property="og:description" content={meta.desc}>
<meta property="og:image" content={meta.image}>
<meta property="twitter:site_name" content={meta.site_name}>
<meta property="twitter:title" content={meta.title}>
<meta property="twitter:description" content={meta.desc}>
<meta property="twitter:image" content={meta.image}>
<meta property="twitter:card" content={card}>
<meta name="author" content={meta.author}>
<meta name="viewport" content="width=device-width" />
<link rel="icon" type="image/webp" href="/assets/icon.webp" />
<script defer data-domain="codespace.cz" src="https://plausible.cdsp.cz/js/script.js"></script>
<link rel="icon" href={meta.favicon} />
<script is:inline defer data-domain="codespace.cz" src="https://plausible.cdsp.cz/js/script.js"></script>
</head>
<body>
<div class="page">

View file

@ -4,8 +4,8 @@ import Layout from '../layouts/Layout.astro';
import { public_services, invite_services } from '../scripts/services';
const meta = {
title: "CodeSpace.cz - Spojuje nás touha po svobodě a nezávislosti v digitální době",
desc: "Provozujeme si vlastní síť a servery, abychom nemuseli spoléhat na ostatní."
title: "CodeSpace.cz - svoboda a nezávislost v digitální době",
use_title_suffix: false
};
---

View file

@ -2,7 +2,7 @@
import Layout from '../layouts/Layout.astro';
const meta = {
title: "Kontakt - CodeSpace.cz",
title: "Kontakt",
desc: "Způsoby, kterými nás můžete kontaktovat."
};
---

View file

@ -4,7 +4,7 @@ import { invite_services, public_services } from '../scripts/services';
import Service from '../components/Service.astro';
const meta = {
title: "Služby - CodeSpace.cz",
title: "Služby",
desc: "Přehled veřejných služeb, které provozujeme."
};
---
@ -21,7 +21,7 @@ const meta = {
<h2>Veřejné služby</h2>
<p>Přehled všech provozovaných veřejných služeb.</p>
<div class="services">
{ public_services.map(service =>
{ public_services.map(service =>
<Service {...service} />
) }
</div>
@ -32,7 +32,7 @@ const meta = {
<h2>Služby pro členy</h2>
<p>Provozujeme také další služby, které jsou určeny především naším členům.</p>
<div class="services">
{ invite_services.map(service =>
{ invite_services.map(service =>
<Service {...service} />
) }
</div>