feat(seo): add security.txt, humans.txt, Schema.org JSON-LD
This commit is contained in:
6
public/.well-known/security.txt
Normal file
6
public/.well-known/security.txt
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
Contact: mailto:admin@pushkinohistory.ru
|
||||||
|
Contact: https://pushkinohistory.ru/privacy/
|
||||||
|
Expires: 2027-05-21T00:00:00.000Z
|
||||||
|
Preferred-Languages: ru, en
|
||||||
|
Canonical: https://pushkinohistory.ru/.well-known/security.txt
|
||||||
|
Policy: https://pushkinohistory.ru/privacy/
|
||||||
10
public/humans.txt
Normal file
10
public/humans.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
/* SITE */
|
||||||
|
Site: История города Пушкино — pushkinohistory.ru
|
||||||
|
Last update: 2026-05-21
|
||||||
|
Standards: HTML5, CSS3, RSS 2.0
|
||||||
|
Components: Astro 6, nginx 1.29
|
||||||
|
Software: Docker, Gitea Actions
|
||||||
|
|
||||||
|
/* TEAM */
|
||||||
|
Maintained by: HHIVP
|
||||||
|
Contact: admin@pushkinohistory.ru
|
||||||
@@ -26,6 +26,33 @@ const {
|
|||||||
const fullTitle = title ? `${title} — ${SITE_TITLE}` : SITE_TITLE;
|
const fullTitle = title ? `${title} — ${SITE_TITLE}` : SITE_TITLE;
|
||||||
const url = canonical ?? new URL(Astro.url.pathname, SITE_URL).toString();
|
const url = canonical ?? new URL(Astro.url.pathname, SITE_URL).toString();
|
||||||
const ogImageUrl = new URL(ogImage, SITE_URL).toString();
|
const ogImageUrl = new URL(ogImage, SITE_URL).toString();
|
||||||
|
|
||||||
|
const jsonLd = {
|
||||||
|
'@context': 'https://schema.org',
|
||||||
|
'@graph': [
|
||||||
|
{
|
||||||
|
'@type': 'WebSite',
|
||||||
|
'@id': `${SITE_URL}/#website`,
|
||||||
|
url: `${SITE_URL}/`,
|
||||||
|
name: SITE_TITLE,
|
||||||
|
description: SITE_DESCRIPTION,
|
||||||
|
inLanguage: 'ru-RU',
|
||||||
|
publisher: { '@id': `${SITE_URL}/#publisher` },
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'@type': 'NewsMediaOrganization',
|
||||||
|
'@id': `${SITE_URL}/#publisher`,
|
||||||
|
name: SITE_TITLE,
|
||||||
|
url: `${SITE_URL}/`,
|
||||||
|
logo: {
|
||||||
|
'@type': 'ImageObject',
|
||||||
|
url: `${SITE_URL}/favicon.svg`,
|
||||||
|
},
|
||||||
|
description:
|
||||||
|
'Краеведческое медиа: история, новости и фотолетопись подмосковного города Пушкино — от давних времён до наших дней.',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
---
|
---
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
@@ -48,6 +75,8 @@ const ogImageUrl = new URL(ogImage, SITE_URL).toString();
|
|||||||
<meta property="og:site_name" content={SITE_TITLE} />
|
<meta property="og:site_name" content={SITE_TITLE} />
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
|
|
||||||
|
<script type="application/ld+json" is:inline set:html={JSON.stringify(jsonLd)} />
|
||||||
|
|
||||||
<Analytics />
|
<Analytics />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|||||||
Reference in New Issue
Block a user