diff --git a/public/.well-known/security.txt b/public/.well-known/security.txt
new file mode 100644
index 0000000..1c983fb
--- /dev/null
+++ b/public/.well-known/security.txt
@@ -0,0 +1,6 @@
+Contact: mailto:admin@anotherreflections.ru
+Contact: https://anotherreflections.ru/kontakty
+Expires: 2027-05-21T00:00:00.000Z
+Preferred-Languages: ru, en
+Canonical: https://anotherreflections.ru/.well-known/security.txt
+Policy: https://anotherreflections.ru/privacy
diff --git a/public/humans.txt b/public/humans.txt
new file mode 100644
index 0000000..8ea225b
--- /dev/null
+++ b/public/humans.txt
@@ -0,0 +1,10 @@
+/* SITE */
+Site: Иные Отражения — anotherreflections.ru
+Last update: 2026-05-21
+Standards: HTML5, CSS3, RSS 2.0
+Components: Astro 5, nginx 1.29
+Software: Docker, Gitea Actions
+
+/* TEAM */
+Maintained by: HHIVP
+Contact: admin@anotherreflections.ru
diff --git a/src/layouts/BaseLayout.astro b/src/layouts/BaseLayout.astro
index b48875e..3b9a138 100644
--- a/src/layouts/BaseLayout.astro
+++ b/src/layouts/BaseLayout.astro
@@ -1,6 +1,6 @@
---
import '../styles/global.css';
-import { SITE_TITLE, SITE_DESCRIPTION, SITE_URL, SITE_LANG, MAIN_NAV } from '../consts';
+import { SITE_TITLE, SITE_DESCRIPTION, SITE_URL, SITE_LANG, SITE_FOUNDED, MAIN_NAV, SOCIAL } from '../consts';
import BrandMark from '../components/BrandMark.astro';
import SocialLinks from '../components/SocialLinks.astro';
import Analytics from '../components/Analytics.astro';
@@ -17,6 +17,35 @@ const pageTitle = title ? `${title} — ${SITE_TITLE}` : SITE_TITLE;
const pageDesc = description || SITE_DESCRIPTION;
const canonical = new URL(Astro.url.pathname, SITE_URL).toString();
const year = new Date().getFullYear();
+
+const ogImage = new URL('/og-image.png', SITE_URL).toString();
+const logoUrl = new URL('/logo.svg', SITE_URL).toString();
+const jsonLd = [
+ {
+ '@context': 'https://schema.org',
+ '@type': 'WebSite',
+ name: SITE_TITLE,
+ url: SITE_URL,
+ inLanguage: SITE_LANG,
+ description: SITE_DESCRIPTION,
+ potentialAction: {
+ '@type': 'SearchAction',
+ target: `${SITE_URL}/?s={query}`,
+ 'query-input': 'required name=query',
+ },
+ },
+ {
+ '@context': 'https://schema.org',
+ '@type': 'NewsMediaOrganization',
+ name: SITE_TITLE,
+ url: SITE_URL,
+ logo: logoUrl,
+ image: ogImage,
+ description: SITE_DESCRIPTION,
+ foundingDate: String(SITE_FOUNDED),
+ sameAs: Object.values(SOCIAL).map((s) => s.url),
+ },
+];
---
@@ -46,6 +75,8 @@ const year = new Date().getFullYear();
+
+