Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 17477 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Цепочка редиректов для файла robots.txt:
http://nastavnikit.ru/robots.txt
308 PermanentRedirect
https://nastavnikit.ru/robots.txt
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>наставник IT — Оригами-схема · выбери свой путь</title>
<meta name="description" content="наставник IT — индивидуальное наставничество в IT. Чертёж твоего маршрута: ты уже учишься на технаря и хочешь вырасти в инженера, ты совсем не из IT, или ты родитель подростка. Выбери свой путь." />
<meta name="theme-color" content="#0A1428" />
<meta name="robots" content="index, follow" />
<meta property="og:title" content="наставник IT — выбери свой путь" />
<meta property="og:description" content="Один наставник. Три пути. Индивидуальный маршрут в IT: технарям, с нуля, родителям." />
<meta property="og:type" content="website" />
<meta property="og:locale" content="ru_RU" />
<!-- шрифты: НЕ блокируют рендер (media=print → переключается в all после загрузки) -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="preconnect" href="https://unpkg.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" media="print" onload="this.media='all'" />
<noscript><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap" /></noscript>
<link rel="stylesheet" href="styles-concept.css" />
</head>
<body>
<!-- ===================== ФОНОВЫЕ СЛОИ ===================== -->
<div id="scene" aria-hidden="true"><canvas id="scene-canvas"></canvas></div>
<div class="bg-glow" aria-hidden="true"></div>
<div class="eng-grid" aria-hidden="true"></div>
<div class="vignette" aria-hidden="true"></div>
<!-- ===================== КУРСОР + ПРОГРЕСС + NAV ===================== -->
<div class="cursor" id="cursor" aria-hidden="true"></div>
<div class="progress" id="progress" aria-hidden="true"></div>
<nav class="nav" id="nav" aria-label="Основная навигация">
<a href="#top" class="nav__brand" aria-label="наставник IT — наверх">
<span class="dot"></span>
<span>наставник<span class="f">_IT</span></span>
<span class="tag">// оригами·схема</span>
</a>
<a href="#paths" class="nav__cta">>> ВЫБРАТЬ_ПУТЬ</a>
</nav>
<main id="top">
<!-- ===================== HERO ===================== -->
<header class="hero">
<div class="scan-line" aria-hidden="true"></div>
<div class="hero__inner">
<div class="hero__badges reveal">
<span class="badge badge--ink">НАСТАВНИК_IT</span>
<span class="badge badge--amber">3_ПУТИ</span>
<span class="badge badge--green">НАБОР_ОТКРЫТ</span>
</div>
<div class="hero__handle reveal">// HANDLE: НАСТАВНИК_IT // СОБЕРИ_СВОЙ_МАРШРУТ</div>
<h1 class="hero__title">
<span class="line"><span class="rise">Один наставник.</span></span>
<span class="line"><span class="rise"><span class="accent">Три пути.</span></span></span>
<span class="line"><span class="rise">Чертёж <span class="red">под тебя.</span></span></span>
</h1>
<p class="hero__sub reveal" data-delay="1">
Я не веду один общий курс — собираю индивидуальный план под тебя или твоего ребёнка.
Выбери ниже, кто ты сейчас, и попадёшь на страницу, где всё написано для тебя — без лишнего.
</p>
<div class="hero__meta reveal" data-delay="2">
<span><span class="sep">//</span> разработка · сети · данные · инфра · безопасность</span>
<span><span class="sep">//</span> опыт <span class="v">9+ лет</span></span>
<span><span class="sep">//</span> формат <span class="v">1:1</span></span>
</div>
</div>
<div class="hero__scroll" aria-hidden="true">прокрути — чертёж оживёт</div>
</header>
<!-- ===================== PATHS ===================== -->
<section id="paths">
<div class="section__head reveal">
<span class="section__num">// 01</span>
<h2 class="section__title">Выбери <span class="accent">путь</span></h2>
<span class="section__rule"></span>
</div>
<div class="paths__grid">
<!-- PATH 1 — ТЕХНАРЬ -->
<a href="index-tech.html" class="path-card path-tech reveal" data-path="tech" data-delay="1">
<span class="corner-tick ct-tl"></span><span class="corner-tick ct-tr"></span>
<span class="corner-tick ct-bl"></span><span class="corner-tick ct-br"></span>
<div class="path-card__top">
<div class="path-card__num">01</div>
<span class="path-card__tag">ТЕХНАРЯМ</span>
</div>
<h3 class="path-card__title">Я учусь на технаря<br><span class="c">или уже в IT</span></h3>
<p class="path-card__desc">
Техническая специальность или уже работаешь в IT — и хочешь расти:
разработка, сети, базы данных, инфраструктура, безопасность, анализ данных, QA.
Architecture, system design, продакшн и рост до middle.
</p>
<div class="path-card__pills">
<span class="pill">разработка</span>
<span class="pill">инфраструктура</span>
<span class="pill">system design</span>
<span class="pill">middle+</span>
</div>
<span class="path-card__cta">ПЕРЕЙТИ К ТЕХНАРЯМ</span>
</a>
<!-- PATH 2 — С НУЛЯ -->
<a href="index-newbie.html" class="path-card path-newbie reveal" data-path="newbie" data-delay="2">
<span class="corner-tick ct-tl"></span><span class="corner-tick ct-tr"></span>
<span class="corner-tick ct-bl"></span><span class="corner-tick ct-br"></span>
<div class="path-card__top">
<div class="path-card__num">02</div>
<span class="path-card__tag">С_НУЛЯ</span>
</div>
<h3 class="path-card__title">Я не из IT<br><span class="c">и не знаю, чем заняться</span></h3>
<p class="path-card__desc">
Вообще не связан с IT, ничего в этом не понимаешь — и это нормально.
Разберёмся вместе, чем тебе может понравиться заниматься, и сделаем
первые шаги с нуля, без снобизма и воды.
</p>
<div class="path-card__pills">
<span class="pill">с нуля</span>
<span class="pill">без снобизма</span>
<span class="pill">попробовать</span>
</div>
<span class="path-card__cta">ПЕРЕЙТИ К НОВИЧКАМ</span>
</a>
<!-- PATH 3 — РОДИТЕЛЬ -->
<a href="index-parents.html" class="path-card path-parents reveal" data-path="parents" data-delay="3">
<span class="corner-tick ct-tl"></span><span class="corner-tick ct-tr"></span>
<span class="corner-tick ct-bl"></span><span class="corner-tick ct-br"></span>
<div class="path-card__top">
<div class="path-card__num">03</div>
<span class="path-card__tag">РОДИТЕЛЯМ</span>
</div>
<h3 class="path-card__title">Я родитель<br><span class="c">хочу пристроить ребёнка</span></h3>
<p class="path-card__desc">
Подросток 14–22 сидит в гаджетах, а вы хотите, чтобы это переросло
в настоящее увлечение и будущую профессию. Индивидуальное наставничество
в IT: личный план, прозрачность для родителя, реальный результат.
</p>
<div class="path-card__pills">
<span class="pill">14–22 года</span>
<span class="pill">увлечение</span>
<span class="pill">профессия</span>
</div>
<span class="path-card__cta">ПЕРЕЙТИ ДЛЯ РОДИТЕЛЕЙ</span>
</a>
</div>
<p class="paths__note reveal">
<span class="accent">//</span> Не уверен, какой ближе? Выбери наугад — на всех страницах есть переходы между ними, поменять путь можно в любой момент.
</p>
</section>
<!-- ===================== ABOUT ===================== -->
<section class="about">
<div class="about__inner">
<div class="section__head reveal">
<span class="section__num">// 02</span>
<h2 class="section__title">Общее <span class="accent">для всех путей</span></h2>
<span class="section__rule"></span>
</div>
<blockquote class="quote-block reveal">
«Меня зовут Сергей, я архитектор с 9+ годами в продакшне — финтех, хайлоад, AI.
<span class="accent">Я не веду общих курсов. С каждым мы идём индивидуальным маршрутом:</span>
кто-то уже в IT и хочет расти — в разработке, инфраструктуре, данных, безопасности;
кто-то приходит с нуля и просто хочет разобраться, его ли это;
а кто-то — родитель, который хочет, чтобы увлечение подростка стало делом и профессией.
Поэтому здесь три отдельных пути. Выбери свой — и поговорим по делу.»
<div class="quote__sig">— наставник_IT, ментор и архитектор</div>
</blockquote>
<div class="metrics">
<div class="schematic-box reveal" data-delay="1">
<div class="metric-value ink">1:1</div>
<div class="metric-label">Индивидуальный план</div>
</div>
<div class="schematic-box reveal" data-delay="2">
<div class="metric-value">9+</div>
<div class="metric-label">Лет в реальном IT</div>
</div>
<div class="schematic-box reveal" data-delay="3">
<div class="metric-value amber">3</div>
<div class="metric-label">Пути: технари / с нуля / родители</div>
</div>
</div>
</div>
</section>
<!-- ===================== CONTACT ===================== -->
<section id="contact">
<div class="contact__card reveal">
<span class="corner-tick ct-tl" style="--c: var(--accent)"></span>
<span class="corner-tick ct-tr" style="--c: var(--accent)"></span>
<span class="corner-tick ct-bl" style="--c: var(--accent)"></span>
<span class="corner-tick ct-br" style="--c: var(--accent)"></span>
<div class="contact__handle">// НЕ_ЗНАЕШЬ_КУДА?</div>
<h2 class="contact__title">Просто<br><span class="red">напиши</span> — разберёмся</h2>
<p class="contact__desc">
Не обязательно заранее выбирать путь. Напиши, где ты сейчас и что чувствуешь —
и я подскажу, с какой страницы тебе лучше начать.
</p>
<a href="https://vk.ru/sergei_vladimirovich_09" target="_blank" rel="noopener" class="btn btn--primary">
>> НАПИСАТЬ В VK
</a>
</div>
</section>
</main>
<!-- ===================== FOOTER ===================== -->
<footer class="footer">
<span>наставник<span class="f">_IT</span> // оригами·схема</span>
<span>© <span id="year">2026</span> · индивидуальное наставничество в IT</span>
</footer>
<!-- ============================================================
СКРИПТЫ — неблокирующая асинхронная загрузка
1. inline IIFE: progress / sticky-nav / reveal / cursor / mouse-tilt карточек
2. scene-concept.js — ES-модуль, динамически тянет Three.js через importmap.
Фоновый ambient (чертёжная 3D-сетка + узлы) + оригами-складывание по скроллу.
Ленивая инициализация в idle-кадре, не блокирует LCP.
============================================================ -->
<script type="importmap">
{
"imports": {
"three": "https://unpkg.com/three@0.160.0/build/three.module.js",
"three/addons/": "https://unpkg.com/three@0.160.0/examples/jsm/"
}
}
</script>
<script>
(function () {
"use strict";
var nav = document.getElementById('nav');
var progress = document.getElementById('progress');
var cursor = document.getElementById('cursor');
var isTouch = ('ontouchstart' in window) || (navigator.maxTouchPoints > 0);
/* год в футер */
var y = document.getElementById('year'); if (y) y.textContent = new Date().getFullYear();
/* ---- progress + sticky-nav on scroll ---- */
function onScroll() {
var sy = window.scrollY || window.pageYOffset;
if (nav) nav.classList.toggle('scrolled', sy > 40);
if (progress) {
var max = document.documentElement.scrollHeight - window.innerHeight;
progress.style.width = (max > 0 ? (sy / max) * 100 : 0) + '%';
}
}
window.addEventListener('scroll', onScroll, { passive: true });
onScroll();
/* ---- reveal via IntersectionObserver ---- */
if ('IntersectionObserver' in window) {
var io = new IntersectionObserver(function (entries) {
entries.forEach(function (e) {
if (e.isIntersecting) {
e.target.classList.add('in');
io.unobserve(e.target);
}
});
}, { threshold: 0.12, rootMargin: '0px 0px -8% 0px' });
document.querySelectorAll('.reveal:not(.in)').forEach(function (el) { io.observe(el); });
} else {
document.querySelectorAll('.reveal').forEach(function (el) { el.classList.add('in'); });
}
/* ---- custom cursor (desktop only) ---- */
if (cursor && !isTouch && !window.matchMedia('(hover: none)').matches) {
var cx = window.innerWidth / 2, cy = window.innerHeight / 2;
var tx = cx, ty = cy;
window.addEventListener('mousemove', function (e) {
tx = e.clientX; ty = e.clientY;
});
function loop() {
cx += (tx - cx) * 0.22;
cy += (ty - cy) * 0.22;
cursor.style.transform = 'translate(' + cx + 'px,' + cy + 'px) translate(-50%,-50%)';
requestAnimationFrame(loop);
}
loop();
var hotSel = 'a, button, .path-card, .schematic-box, .nav__brand';
document.querySelectorAll(hotSel).forEach(function (el) {
el.addEventListener('mouseenter', function () { cursor.classList.add('hot'); });
el.addEventListener('mouseleave', function () { cursor.classList.remove('hot'); });
});
} else if (cursor) {
cursor.style.display = 'none';
}
/* ---- 3D tilt на карточках-путях (desktop only) ---- */
if (!isTouch && !window.matchMedia('(hover: none)').matches && !window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
var MAX = 8; /* градусов */
document.querySelectorAll('.path-card').forEach(function (card) {
card.addEventListener('mousemove', function (e) {
var r = card.getBoundingClientRect();
var px = (e.clientX - r.left) / r.width; /* 0..1 */
var py = (e.clientY - r.top) / r.height; /* 0..1 */
var ry = (px - 0.5) * 2 * MAX; /* Y-наклон по X-мыши */
var rx = -(py - 0.5) * 2 * MAX; /* X-наклон по Y-мыши */
card.style.transform = 'perspective(1000px) rotateX(' + rx + 'deg) rotateY(' + ry + 'deg) translateY(-6px)';
});
card.addEventListener('mouseleave', () => { card.style.transform = ''; });
});
}
/* ---- hover карточки-пути → буст соответствующей грани оригами ---- */
document.querySelectorAll('.path-card[data-path]').forEach(function (card) {
var path = card.getAttribute('data-path');
card.addEventListener('mouseenter', function () {
if (window.__scene && window.__scene.boost) window.__scene.boost(path);
});
card.addEventListener('mouseleave', function () {
if (window.__scene && window.__scene.boost) window.__scene.boost(null);
});
});
/* ---- IntersectionObserver: карточка в viewport → доминирующая грань ---- */
if ('IntersectionObserver' in window) {
var cardObs = new IntersectionObserver(function (entries) {
entries.forEach(function (e) {
if (e.isIntersecting && window.__scene && window.__scene.boostVisible) {
window.__scene.boostVisible(e.target.getAttribute('data-path'));
}
});
}, { threshold: 0.55 });
document.querySelectorAll('.path-card[data-path]').forEach(function (c) { cardObs.observe(c); });
}
})();
</script>
<script type="module">
// Ленивая инициализация 3D в idle-кадре — не блокирует первый рендер.
function boot() { import('./scene-concept.js'); }
if ('requestIdleCallback' in window) {
window.requestIdleCallback(boot, { timeout: 1500 });
} else {
window.setTimeout(boot, 300);
}
</script>
</body>
</html>