1<!DOCTYPE html>
2
3<html lang="ru">
4
5<head>
6
7<meta charset="UTF-8">
8
9<meta name="viewport" content="width=device-width, initial-scale=1.0">
10
11<title>
12IndexerPro — Быстрая индексация URL в Google и Яндекс</title>
13
14<meta name="description" content="Быстрая индексация URL в Google и Яндекс через Google Indexing API и IndexNow. Googlebot начинает приходить в течение 10 минут. До 95% URL получают визит бота.">
15
16<meta name="keywords" content="индексация сайта, google indexing api, indexnow, быстрая индексация, url индексатор, яндекс индексация, ускорить индексацию">
17
18<meta name="robots" content="index, follow">
19
20<meta property="og:title" content="IndexerPro — Быстрая индексация URL в Google & Yandex">
21
22<meta property="og:description" content="Googlebot начинает приходить в течение 10 минут. До 95% URL получают визит бота.">
23
24<meta property="og:url" content="https://indexerpro.net">
25
26<meta property="og:type" content="website">
27
28<meta property="og:image" content="https://indexerpro.net/og.png">
29
30<meta name="google-site-verification" content="pRTAWm4MwWiu4_5v_ctWy7_5xaa7cqv7gmm-MC_VOjU">
31
32<meta name="yandex-verification" content="f23b1ee38969b79c">
33
34<link rel="icon" href="/favicon.png" type="image/png">
35
36<link rel="icon" href="/favicon.svg" type="image/svg+xml">
37
38<link rel="shortcut icon" href="/favicon.svg">
39
40<link rel="preconnect" href="https://fonts.googleapis.com">
41
42<link rel="preconnect" href="https://fonts.googleapis.com">
43
44<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
45
46<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:wght@300;400;500;600&display=swap" onload="this.onload=null;this.rel='stylesheet'">
47
48<noscript>
49<link href="https://fonts.googleapis.com/css2?family=Syne:wght@400;600;700;800&family=DM+Sans:wght@300;400;500;600&display=swap" rel="stylesheet">
50</noscript>
51
52<style>
53
54*{margin:0;padding:0;box-sizing:border-box}
55:root{
56 --bg:#080c10;
57 --bg2:#0d1117;
58 --bg3:#161b22;
59 --bg4:#1c2128;
60 --border:rgba(255,255,255,0.08);
61 --border2:rgba(255,255,255,0.14);
62 --text:#f0f6fc;
63 --text2:#c9d1d9;
64 --text3:#8b949e;
65 --text4:#6e7681;
66 --accent:#58a6ff;
67 --accent2:#1f6feb;
68 --accent3:#388bfd;
69 --green:#56d364;
70 --green2:#2ea043;
71 --purple:#8957e5;
72 --gold:#e3b341;
73 --red:#f85149;
74}
75html{scroll-behavior:smooth}
76body{font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}
77
78/* NOISE TEXTURE */
79body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.03'/%3E%3C/svg%3E");pointer-events:none;z-index:0;opacity:.4}
80
81/* GLOW BLOBS */
82.blob{position:absolute;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0}
83.blob-1{width:600px;height:600px;background:radial-gradient(circle,rgba(31,111,235,0.18),transparent 70%);top:-200px;left:-100px}
84.blob-2{width:500px;height:500px;background:radial-gradient(circle,rgba(137,87,229,0.12),transparent 70%);top:200px;right:-150px}
85.blob-3{width:400px;height:400px;background:radial-gradient(circle,rgba(86,211,100,0.08),transparent 70%);top:800px;left:30%}
86
87/* NAV */
88nav{position:fixed;top:0;left:0;right:0;z-index:500;padding:0 40px;height:64px;display:flex;align-items:center;justify-content:space-between;background:rgba(8,12,16,0.8);backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}
89.nav-logo{display:flex;align-items:center;gap:10px;text-decoration:none}
90.nav-logo-icon{width:36px;height:36px;background:linear-gradient(135deg,#1f6feb,#8957e5);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:18px;font-weight:800;color:#fff}
91.nav-logo-text{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;color:var(--text)}
92.nav-right{display:flex;align-items:center;gap:12px}
93.lang-btn{display:flex;align-items:center;gap:4px;padding:5px 10px;border-radius:6px;border:1px solid var(--border2);background:transparent;color:var(--text3);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;text-decoration:none;transition:all .2s}
94.lang-btn:hover,.lang-btn.active{border-color:var(--accent2);color:var(--accent);background:rgba(31,111,235,0.1)}
95.btn-outline{padding:7px 18px;border-radius:7px;border:1px solid var(--border2);background:transparent;color:var(--text2);font-family:'DM Sans',sans-serif;font-size:14px;font-weight:500;cursor:pointer;text-decoration:none;transition:all .2s}
96.btn-outline:hover{border-color:var(--accent);color:var(--accent);background:rgba(88,166,255,0.06)}
97.btn-primary{padding:7px 18px;border-radius:7px;border:none;background:var(--accent2);color:#fff;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .2s}
98.btn-primary:hover{background:var(--accent3);transform:translateY(-1px)}
99
100/* HERO */
101.hero{position:relative;min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:120px 24px 80px;overflow:hidden}
102.hero-content{position:relative;z-index:1;max-width:820px}
103.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:100px;border:1px solid rgba(86,211,100,0.3);background:rgba(86,211,100,0.06);font-size:13px;font-weight:500;color:var(--green);margin-bottom:28px;animation:fadeUp .6s ease both}
104.hero-badge::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--green);animation:pulse 2s infinite}
105@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.3)}}
106.hero h1{font-family:'Syne',sans-serif;font-size:clamp(38px,6vw,72px);font-weight:800;line-height:1.1;letter-spacing:-2px;margin-bottom:24px;animation:fadeUp .7s .1s ease both}
107.hero h1 span{background:linear-gradient(135deg,#58a6ff,#8957e5);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
108.hero p{font-size:clamp(16px,2vw,20px);color:var(--text3);line-height:1.7;max-width:560px;margin:0 auto 40px;animation:fadeUp .7s .2s ease both}
109.hero-cta{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;animation:fadeUp .7s .3s ease both}
110.btn-hero{padding:14px 32px;border-radius:10px;font-family:'DM Sans',sans-serif;font-size:16px;font-weight:600;cursor:pointer;text-decoration:none;transition:all .25s;border:none}
111.btn-hero-primary{background:linear-gradient(135deg,#1f6feb,#8957e5);color:#fff;box-shadow:0 4px 24px rgba(31,111,235,0.35)}
112.btn-hero-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px rgba(31,111,235,0.5)}
113.btn-hero-secondary{background:var(--bg3);color:var(--text2);border:1px solid var(--border2)}
114.btn-hero-secondary:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}
115.hero-stats{display:flex;gap:40px;justify-content:center;margin-top:64px;animation:fadeUp .7s .4s ease both}
116.stat{text-align:center}
117.stat-num{font-family:'Syne',sans-serif;font-size:32px;font-weight:800;color:var(--text);letter-spacing:-1px}
118.stat-num span{color:var(--accent)}
119.stat-label{font-size:13px;color:var(--text4);margin-top:4px}
120.hero-divider{width:1px;background:var(--border);align-self:stretch}
121@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
122
123/* GRID LINES */
124.grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,0.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,0.02) 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black,transparent)}
125
126/* SECTIONS */
127section{position:relative;z-index:1;padding:100px 24px}
128.container{max-width:1100px;margin:0 auto}
129.section-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin-bottom:12px}
130.section-title{font-family:'Syne',sans-serif;font-size:clamp(28px,4vw,44px);font-weight:800;letter-spacing:-1px;margin-bottom:16px}
131.section-sub{font-size:17px;color:var(--text3);line-height:1.7;max-width:540px}
132
133/* HOW IT WORKS */
134.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px;margin-top:60px}
135.step{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:32px;position:relative;overflow:hidden;transition:border-color .3s,transform .3s}
136.step:hover{border-color:var(--border2);transform:translateY(-4px)}
137.step::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(31,111,235,0.04),transparent 60%);pointer-events:none}
138.step-num{font-family:'Syne',sans-serif;font-size:48px;font-weight:800;color:rgba(88,166,255,0.12);position:absolute;top:20px;right:24px;line-height:1}
139.step-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:20px}
140.step-icon-1{background:rgba(31,111,235,0.15)}
141.step-icon-2{background:rgba(137,87,229,0.15)}
142.step-icon-3{background:rgba(86,211,100,0.15)}
143.step-icon-4{background:rgba(227,179,65,0.15)}
144.step h3{font-family:'Syne',sans-serif;font-size:18px;font-weight:700;margin-bottom:10px}
145.step p{font-size:14px;color:var(--text3);line-height:1.7}
146
147/* FEATURES */
148.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-top:60px}
149.feature{padding:24px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;transition:all .3s}
150.feature:hover{border-color:var(--border2);background:var(--bg3)}
151.feature-icon{font-size:28px;margin-bottom:14px}
152.feature h4{font-family:'Syne',sans-serif;font-size:15px;font-weight:700;margin-bottom:8px}
153.feature p{font-size:13px;color:var(--text3);line-height:1.6}
154
155/* PRICING */
156.pricing-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;margin-top:60px}
157.plan{background:var(--bg2);border:1px solid var(--border);border-radius:16px;padding:28px;position:relative;transition:all .3s}
158.plan:hover{transform:translateY(-4px)}
159.plan.featured{border-color:var(--accent2);background:linear-gradient(135deg,rgba(31,111,235,0.08),var(--bg2));box-shadow:0 0 40px rgba(31,111,235,0.15)}
160.plan-badge{position:absolute;top:-12px;left:50%;transform:translateX(-50%);background:linear-gradient(135deg,#1f6feb,#8957e5);color:#fff;font-size:11px;font-weight:700;padding:4px 14px;border-radius:100px;white-space:nowrap;text-transform:uppercase;letter-spacing:.5px}
161.plan-name{font-family:'Syne',sans-serif;font-size:16px;font-weight:700;margin-bottom:8px}
162.plan-price{font-family:'Syne',sans-serif;font-size:36px;font-weight:800;letter-spacing:-1px;margin-bottom:4px}
163.plan-price small{font-size:16px;font-weight:400;color:var(--text3)}
164.plan-urls{font-size:13px;color:var(--text3);margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid var(--border)}
165.plan-feature{font-size:13px;color:var(--text2);padding:5px 0;display:flex;align-items:center;gap:8px}
166.plan-feature::before{content:'✓';color:var(--green);font-weight:700;font-size:14px}
167.plan-btn{width:100%;margin-top:20px;padding:10px;border-radius:8px;border:none;font-family:'DM Sans',sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}
168.plan-btn-default{background:var(--bg3);color:var(--text2);border:1px solid var(--border2)}
169.plan-btn-default:hover{border-color:var(--accent);color:var(--accent)}
170.plan-btn-featured{background:linear-gradient(135deg,#1f6feb,#8957e5);color:#fff}
171.plan-btn-featured:hover{opacity:.9;transform:translateY(-1px)}
172.plan-bonus{display:inline-block;font-size:11px;font-weight:700;color:#f0883e;background:rgba(240,136,62,0.1);border:1px solid rgba(240,136,62,0.2);border-radius:100px;padding:2px 8px;margin-left:6px}
173
174/* CTA BANNER */
175.cta-banner{background:linear-gradient(135deg,rgba(31,111,235,0.15),rgba(137,87,229,0.1));border:1px solid rgba(31,111,235,0.25);border-radius:24px;padding:64px 48px;text-align:center;margin-top:80px;position:relative;overflow:hidden}
176.cta-banner::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 50%,rgba(31,111,235,0.08),transparent);pointer-events:none}
177.cta-banner h2{font-family:'Syne',sans-serif;font-size:clamp(24px,4vw,40px);font-weight:800;letter-spacing:-1px;margin-bottom:16px;position:relative}
178.cta-banner p{font-size:17px;color:var(--text3);margin-bottom:32px;position:relative}
179
180/* FOOTER */
181footer{border-top:1px solid var(--border);padding:40px 40px;display:flex;align-items:center;justify-content:space-between;flex-wrap:gap;gap:16px}
182.footer-logo{display:flex;align-items:center;gap:8px;text-decoration:none}
183.footer-links{display:flex;gap:20px}
184.footer-links a{font-size:13px;color:var(--text4);text-decoration:none;transition:color .2s}
185.footer-links a:hover{color:var(--text2)}
186.footer-copy{font-size:13px;color:var(--text4);padding-right:48px}
187
188/* MODAL */
189.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.75);backdrop-filter:blur(8px);z-index:5000;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .25s}
190.modal-overlay.active{opacity:1;pointer-events:all}
191.modal{background:var(--bg2);border:1px solid var(--border2);border-radius:16px;padding:36px;width:100%;max-width:400px;position:relative;transform:translateY(20px) scale(.97);transition:transform .25s;max-height:90vh;overflow-y:auto;scrollbar-width:none}
192.modal-overlay.active .modal{transform:translateY(0) scale(1)}
193.modal-close{position:absolute;top:16px;right:16px;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:transparent;color:var(--text3);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}
194.modal-close:hover{border-color:var(--border2);color:var(--text);background:var(--bg3)}
195.modal-logo{display:flex;align-items:center;gap:10px;margin-bottom:24px}
196.modal-logo-icon{width:36px;height:36px;background:linear-gradient(135deg,#1f6feb,#8957e5);border-radius:8px;display:flex;align-items:center;justify-content:center;font-family:'Syne',sans-serif;font-size:16px;font-weight:800;color:#fff}
197.modal-logo-text{font-family:'Syne',sans-serif;font-size:17px;font-weight:700}
198.modal h2{font-family:'Syne',sans-serif;font-size:20px;font-weight:800;margin-bottom:4px}
199.modal-sub{font-size:13px;color:var(--text3);margin-bottom:24px}
200.form-group{margin-bottom:16px}
201.form-label{display:block;font-size:12px;font-weight:600;color:var(--text3);margin-bottom:6px;text-transform:uppercase;letter-spacing:.5px}
202.form-input{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:14px;padding:10px 13px;outline:none;font-family:'DM Sans',sans-serif;transition:border-color .15s}
203.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(88,166,255,0.1)}
204.form-input::placeholder{color:var(--text4)}
205.form-hint{font-size:11px;color:var(--text4);margin-top:4px}
206.pw-wrap{position:relative}
207.pw-wrap .form-input{padding-right:40px}
208.pw-eye{position:absolute;right:12px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--text4);font-size:15px;user-select:none}
209.pw-eye:hover{color:var(--text2)}
210.submit-btn{width:100%;padding:11px;background:linear-gradient(135deg,#1f6feb,#8957e5);color:#fff;border:none;border-radius:8px;font-family:'DM Sans',sans-serif;font-size:15px;font-weight:600;cursor:pointer;margin-top:4px;transition:all .2s}
211.submit-btn:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}
212.submit-btn:disabled{opacity:.5;cursor:not-allowed}
213.modal-footer{text-align:center;margin-top:20px;font-size:13px;color:var(--text3)}
214.modal-footer a{color:var(--accent);text-decoration:none;font-weight:500;cursor:pointer}
215.modal-footer a:hover{text-decoration:underline}
216.error-box{background:rgba(248,81,73,0.08);border:1px solid rgba(248,81,73,0.25);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--red);margin-bottom:16px}
217.bonus-box{background:rgba(86,211,100,0.08);border:1px solid rgba(86,211,100,0.2);border-radius:8px;padding:10px 14px;font-size:12px;color:var(--green);margin-bottom:18px}
218.modal-tabs{display:flex;gap:4px;background:var(--bg3);border-radius:8px;padding:4px;margin-bottom:24px}
219.modal-tab{flex:1;padding:8px;border-radius:6px;border:none;background:transparent;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;color:var(--text3);cursor:pointer;transition:all .2s}
220.modal-tab.active{background:var(--bg2);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,0.3)}
221
222/* RESPONSIVE */
223@media(max-width:768px){
224 nav{padding:0 16px;gap:8px}
225 .nav-right .lang-btn{display:none}
226 .hero-stats{gap:16px;flex-wrap:wrap}
227 .hero-divider{display:none}
228 .cta-banner{padding:40px 24px}
229 footer{flex-direction:column;text-align:center;padding:32px 20px}
230 .footer-links{flex-wrap:wrap;justify-content:center}
231}
232/* Модальные окна как bottom sheet на мобиле */
233@media(max-width:480px){
234 .modal-overlay{
235 align-items:flex-end;
236 padding:0;
237 }
238 .modal{
239 width:100%;
240 max-width:100%;
241 border-radius:20px 20px 0 0;
242 padding:28px 20px 40px;
243 transform:translateY(40px);
244 margin:0;
245 }
246 .modal-overlay.active .modal{
247 transform:translateY(0);
248 }
249 /* Индикатор drag (bottom sheet handle) */
250 .modal::before{
251 content:'';
252 display:block;
253 width:40px;
254 height:4px;
255 background:rgba(255,255,255,0.15);
256 border-radius:2px;
257 margin:0 auto 20px;
258 }
259 .modal-close{
260 top:18px;
261 right:16px;
262 }
263}
264</style>
265
266
267<script>
268
269 window.dataLayer = window.dataLayer || [];
270 function gtag(){dataLayer.push(arguments);}
271 gtag("js", new Date());
272 gtag("config", "G-TKQT27PMH7");
273</script>
274
275<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer>
276</script>
277
278<!-- Яндекс Метрика -->
279
280<script type="text/javascript">
281(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})(window,document,"script","https://mc.yandex.ru/metrika/tag.js","ym");ym(109024692,"init",{clickmap:true,trackLinks:true,accurateTrackBounce:true});</script>
282
283<noscript>
284<div>
285<img src="https://mc.yandex.ru/watch/109024692" style="position:absolute;left:-9999px;" alt=""/>
286</div>
287</noscript>
288
289</head>
290
291<body>
292
293
294<!-- BLOBS -->
295
296<div class="blob blob-1">
297</div>
298
299<div class="blob blob-2">
300</div>
301
302<div class="blob blob-3">
303</div>
304
305
306<!-- NAV -->
307
308<nav>
309
310 <a href="/" class="nav-logo">
311
312 <div class="nav-logo-icon">
313I</div>
314
315 <span class="nav-logo-text">
316IndexerPro</span>
317
318 </a>
319
320 <div class="nav-right">
321
322 <a href="https://indexerpro.net/lang/en?redirect=https%3A%2F%2Findexerpro.net%2Flogin" class="lang-btn ">
323<span style="display:inline-flex;width:20px;height:14px;border-radius:2px;border:1px solid rgba(0,0,0,0.2);overflow:hidden;flex-shrink:0;background:repeating-linear-gradient(180deg,#B22234 0px,#B22234 2px,#fff 2px,#fff 4px);position:relative">
324<span style="position:absolute;top:0;left:0;width:9px;height:7px;background:#3C3B6E">
325</span>
326</span>
327 EN</a>
328
329 <a href="https://indexerpro.net/lang/ru?redirect=https%3A%2F%2Findexerpro.net%2Flogin" class="lang-btn active">
330<svg width='20' height='14' viewBox='0 0 20 14' style='border-radius:2px;vertical-align:middle'>
331<rect width='20' height='4.67' fill='white'/>
332<rect y='4.67' width='20' height='4.67' fill='#0039A6'/>
333<rect y='9.33' width='20' height='4.67' fill='#D52B1E'/>
334</svg>
335 RU</a>
336
337 <button class="btn-outline" onclick="openModal('login')">
338Войти</button>
339
340 <button class="btn-primary" onclick="openModal('register')">
341Начать бесплатно</button>
342
343 </div>
344
345</nav>
346
347
348<!-- HERO -->
349
350<section class="hero">
351
352 <div class="grid-bg">
353</div>
354
355 <div class="hero-content">
356
357 <div class="hero-badge">
358
359 <span>
360✓ Работает прямо сейчас — бот приходит от 2 минут</span>
361
362 </div>
363
364 <h1>
365Ваши страницы в Google<br>
366уже через <span>
3672 часа</span>
368</h1>
369
370 <p>
371Googlebot не приходит неделями? IndexerPro отправляет URL через официальный Google Indexing API — бот приходит в среднем за 2–4 часа. Гарантия: не пришёл — возвращаем баллы.</p>
372
373 <div class="hero-cta">
374
375 <button class="btn-hero btn-hero-primary" onclick="openModal('register')">
376🚀 Попробовать бесплатно</button>
377
378 <button class="btn-hero btn-hero-secondary" onclick="document.getElementById('how').scrollIntoView({behavior:'smooth'})">
379Как это работает ↓</button>
380
381 </div>
382
383 <div style="margin-top:16px;font-size:13px;color:var(--green);animation:fadeUp .7s .35s ease both">
384🎁 При регистрации — 20 бесплатных URL</div>
385
386 <div class="hero-stats">
387
388 <div class="stat">
389
390 <div class="stat-num">
39195<span>
392%</span>
393</div>
394
395 <div class="stat-label">
396URL получают визит бота</div>
397
398 </div>
399
400 <div class="hero-divider">
401</div>
402
403 <div class="stat">
404
405 <div class="stat-num">
406от 2<span>
407 мин</span>
408</div>
409
410 <div class="stat-label">
411Бот приходит от 2 минут</div>
412
413 </div>
414
415 <div class="hero-divider">
416</div>
417
418 <div class="stat">
419
420 <div class="stat-num">
42110<span>
422+</span>
423</div>
424
425 <div class="stat-label">
426AI-ботов отслеживаем</div>
427
428 </div>
429
430 <div class="hero-divider">
431</div>
432
433 <div class="stat">
434
435 <div class="stat-num">
43650K</div>
437
438 <div class="stat-label">
439URL за один батч</div>
440
441 </div>
442
443 </div>
444
445 </div>
446
447</section>
448
449
450<div id="how">
451</div>
452
453<!-- HOW IT WORKS -->
454
455<section style="padding-top:0">
456
457 <div class="container">
458
459 <div class="section-label">
460Как это работает</div>
461
462 <h2 class="section-title">
4634 шага до индексации</h2>
464
465 <p class="section-sub">
466Никакой ручной работы — просто загрузите список URL и система сделает всё сама.</p>
467
468 <div class="steps">
469
470 <div class="step">
471
472 <div class="step-num">
47301</div>
474
475 <div class="step-icon step-icon-1">
476📋</div>
477
478 <h3>
479Добавьте URL</h3>
480
481 <p>
482Вставьте URL вручную, загрузите TXT файл или подключите Sitemap — до 50 000 URL за раз.</p>
483
484 </div>
485
486 <div class="step">
487
488 <div class="step-num">
48902</div>
490
491 <div class="step-icon step-icon-2">
492⚡</div>
493
494 <h3>
495Отправка в API</h3>
496
497 <p>
498IndexerPro отправляет URL через Google Indexing API и IndexNow (Яндекс/Bing) одновременно.</p>
499
500 </div>
501
502 <div class="step">
503
504 <div class="step-num">
50503</div>
506
507 <div class="step-icon step-icon-3">
508🤖</div>
509
510 <h3>
511Googlebot начинает приходить</h3>
512
513 <p>
514Поисковые боты получают уведомление и приходят на ваши страницы. Мы фиксируем каждый визит.</p>
515
516 </div>
517
518 <div class="step">
519
520 <div class="step-num">
52104</div>
522
523 <div class="step-icon step-icon-4">
524📊</div>
525
526 <h3>
527Статистика</h3>
528
529 <p>
530Подробные отчёты: сколько URL отправлено, сколько получило бота, история батчей.</p>
531
532 </div>
533
534 </div>
535
536 </div>
537
538</section>
539
540
541<div id="features">
542</div>
543
544<!-- FEATURES -->
545
546<section>
547
548 <div class="container">
549
550 <div class="section-label">
551Возможности</div>
552
553 <h2 class="section-title">
554Всё что нужно для индексации</h2>
555
556 <div class="features-grid">
557
558 <div class="feature" style="border-color:rgba(210,153,34,0.3);background:linear-gradient(135deg,rgba(210,153,34,0.05),var(--bg2))">
559<div class="feature-icon">
560🛡️</div>
561<h4>
562Гарантия бота</h4>
563<p>
564Если Googlebot не посетил URL — повторная отправка бесплатно. Не пришёл снова — возврат баллов автоматически.</p>
565</div>
566
567 <div class="feature">
568<div class="feature-icon">
569🗺️</div>
570<h4>
571Sitemap</h4>
572<p>
573Автопарсинг Sitemap.xml — новые URL добавляются в очередь автоматически.</p>
574</div>
575
576 <div class="feature">
577<div class="feature-icon">
578⏱️</div>
579<h4>
580Планировщик</h4>
581<p>
582Настройте автоматический запуск индексации по расписанию.</p>
583</div>
584
585 <div class="feature">
586<div class="feature-icon">
587🎁</div>
588<h4>
589Рефералы</h4>
590<p>
591Приглашайте друзей — получайте бонусы за каждую регистрацию и % с пополнений.</p>
592</div>
593
594 <div class="feature">
595<div class="feature-icon">
596📈</div>
597<h4>
598IndexNow</h4>
599<p>
600Моментальное уведомление Яндекс и Bing через протокол IndexNow.</p>
601</div>
602
603 <div class="feature" style="border-color:rgba(210,168,255,0.3);background:linear-gradient(135deg,rgba(210,168,255,0.06),var(--bg2))">
604<div class="feature-icon">
605🤖</div>
606<h4>
607AI Индексация</h4>
608<p>
609URL попадают в базы GPTBot, ClaudeBot, Perplexity, Gemini. Ваш контент цитируется в AI-ответах.</p>
610</div>
611
612 <div class="feature" style="border-color:rgba(86,211,100,0.25);background:linear-gradient(135deg,rgba(86,211,100,0.04),var(--bg2))">
613<div class="feature-icon">
614📊</div>
615<h4>
616AI Аналитика ботов</h4>
617<p>
618Отслеживайте какие AI-боты краулят ваши страницы по батчам. Уникальная фича — нет у конкурентов.</p>
619</div>
620
621 </div>
622
623 </div>
624
625</section>
626
627
628<!-- AI AUDIT SECTION -->
629
630<section style="padding:90px 24px;background:linear-gradient(180deg,var(--bg2) 0%,var(--bg) 100%);border-top:1px solid var(--border);border-bottom:1px solid var(--border);position:relative;overflow:hidden">
631
632 <!-- Glow фон -->
633
634 <div style="position:absolute;top:-100px;right:-100px;width:500px;height:500px;background:radial-gradient(circle,rgba(89,65,169,0.12),transparent 70%);pointer-events:none">
635</div>
636
637 <div style="position:absolute;bottom:-80px;left:-80px;width:400px;height:400px;background:radial-gradient(circle,rgba(31,111,235,0.1),transparent 70%);pointer-events:none">
638</div>
639
640
641 <div style="max-width:1100px;margin:0 auto;position:relative;z-index:1">
642
643
644 <!-- Заголовок -->
645
646 <div style="text-align:center;margin-bottom:64px">
647
648 <div style="display:inline-flex;align-items:center;gap:8px;background:rgba(137,87,229,0.12);border:1px solid rgba(137,87,229,0.3);color:#b392f0;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:1px;padding:6px 16px;border-radius:99px;margin-bottom:18px">
649
650 🔬 Новый инструмент
651 </div>
652
653 <h2 style="font-family:'Syne',sans-serif;font-size:clamp(28px,4vw,46px);font-weight:800;letter-spacing:-1.5px;margin-bottom:16px;color:var(--text)">
654
655 AI Audit — насколько вас видят нейросети?
656 </h2>
657
658 <p style="font-size:17px;color:var(--text3);max-width:620px;margin:0 auto;line-height:1.7">
659
660 Проверяем страницу по 13 параметрам и выдаём score от 0 до 100 — насколько хорошо её понимают ChatGPT, Claude, Perplexity и другие нейросети.
661 </p>
662
663 </div>
664
665
666 <!-- Три блока категорий -->
667
668 <div style="display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-bottom:48px">
669
670
671 <!-- Technical -->
672
673 <div style="background:var(--bg);border:1px solid rgba(88,166,255,0.2);border-radius:16px;padding:28px;position:relative;overflow:hidden">
674
675 <div style="position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle,rgba(88,166,255,0.08),transparent);pointer-events:none">
676</div>
677
678 <div style="display:flex;align-items:center;gap:12px;margin-bottom:20px">
679
680 <div style="width:44px;height:44px;border-radius:10px;background:rgba(88,166,255,0.1);border:1px solid rgba(88,166,255,0.2);display:flex;align-items:center;justify-content:center;font-size:20px">
681⚙️</div>
682
683 <div>
684
685 <div style="font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text)">
686Технический</div>
687
688 <div style="font-size:12px;color:var(--accent);font-weight:600">
689до 40 баллов</div>
690
691 </div>
692
693 </div>
694
695 <div style="display:flex;flex-direction:column;gap:10px">
696
697 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
698
699 <span>
700🌐</span>
701<span>
702HTTP статус и доступность</span>
703
704 </div>
705
706 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
707
708 <span>
709⚡</span>
710<span>
711Скорость ответа сервера (TTFB)</span>
712
713 </div>
714
715 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
716
717 <span>
718📄</span>
719<span>
720Размер страницы</span>
721
722 </div>
723
724 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
725
726 <span>
727🔧</span>
728<span>
729Зависимость от JavaScript</span>
730
731 </div>
732
733 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
734
735 <span>
736🤖</span>
737<span>
738Доступ AI-ботов (robots.txt)</span>
739
740 </div>
741
742 </div>
743
744 </div>
745
746
747 <!-- Semantic -->
748
749 <div style="background:var(--bg);border:1px solid rgba(137,87,229,0.25);border-radius:16px;padding:28px;position:relative;overflow:hidden">
750
751 <div style="position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle,rgba(137,87,229,0.08),transparent);pointer-events:none">
752</div>
753
754 <div style="display:flex;align-items:center;gap:12px;margin-bottom:20px">
755
756 <div style="width:44px;height:44px;border-radius:10px;background:rgba(137,87,229,0.1);border:1px solid rgba(137,87,229,0.2);display:flex;align-items:center;justify-content:center;font-size:20px">
757🧠</div>
758
759 <div>
760
761 <div style="font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text)">
762Семантический</div>
763
764 <div style="font-size:12px;color:#b392f0;font-weight:600">
765до 35 баллов</div>
766
767 </div>
768
769 </div>
770
771 <div style="display:flex;flex-direction:column;gap:10px">
772
773 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
774
775 <span>
776🏷️</span>
777<span>
778Семантические теги HTML</span>
779
780 </div>
781
782 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
783
784 <span>
785📝</span>
786<span>
787Структура заголовков H1-H3</span>
788
789 </div>
790
791 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
792
793 <span>
794📦</span>
795<span>
796Качество текстовых чанков</span>
797
798 </div>
799
800 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
801
802 <span>
803❓</span>
804<span>
805FAQ и списки контента</span>
806
807 </div>
808
809 </div>
810
811 </div>
812
813
814 <!-- Retrieval -->
815
816 <div style="background:var(--bg);border:1px solid rgba(86,211,100,0.2);border-radius:16px;padding:28px;position:relative;overflow:hidden">
817
818 <div style="position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle,rgba(86,211,100,0.06),transparent);pointer-events:none">
819</div>
820
821 <div style="display:flex;align-items:center;gap:12px;margin-bottom:20px">
822
823 <div style="width:44px;height:44px;border-radius:10px;background:rgba(86,211,100,0.1);border:1px solid rgba(86,211,100,0.2);display:flex;align-items:center;justify-content:center;font-size:20px">
824🎯</div>
825
826 <div>
827
828 <div style="font-family:'Syne',sans-serif;font-size:16px;font-weight:700;color:var(--text)">
829Извлечение данных</div>
830
831 <div style="font-size:12px;color:var(--green);font-weight:600">
832до 25 баллов</div>
833
834 </div>
835
836 </div>
837
838 <div style="display:flex;flex-direction:column;gap:10px">
839
840 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
841
842 <span>
843📋</span>
844<span>
845Schema.org / JSON-LD разметка</span>
846
847 </div>
848
849 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
850
851 <span>
852🕐</span>
853<span>
854Сигналы актуальности (даты)</span>
855
856 </div>
857
858 <div style="display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text3)">
859
860 <span>
861🔒</span>
862<span>
863Сигналы доверия (автор, контакты)</span>
864
865 </div>
866
867 </div>
868
869 </div>
870
871
872 </div>
873
874
875 <!-- Score демо + CTA -->
876
877 <div style="background:var(--bg);border:1px solid rgba(137,87,229,0.25);border-radius:20px;padding:36px 40px;display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap">
878
879
880 <!-- Score визуализация -->
881
882 <div style="display:flex;align-items:center;gap:32px;flex-wrap:wrap">
883
884 <!-- Большой score -->
885
886 <div style="text-align:center">
887
888 <div style="width:100px;height:100px;border-radius:50%;background:conic-gradient(#8957e5 0deg,#58a6ff 216deg,rgba(255,255,255,0.06) 216deg);display:flex;align-items:center;justify-content:center;position:relative">
889
890 <div style="width:78px;height:78px;border-radius:50%;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center">
891
892 <span style="font-family:'Syne',sans-serif;font-size:26px;font-weight:800;color:var(--text);line-height:1">
89374</span>
894
895 <span style="font-size:10px;color:var(--text4)">
896/100</span>
897
898 </div>
899
900 </div>
901
902 <div style="font-size:12px;color:var(--text4);margin-top:8px">
903AI Score</div>
904
905 </div>
906
907 <!-- Три мини-бара -->
908
909 <div style="display:flex;flex-direction:column;gap:12px;min-width:180px">
910
911 <div>
912
913 <div style="display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px">
914<span style="color:var(--text3)">
915Технический</span>
916<span style="color:var(--accent);font-weight:700">
91732/40</span>
918</div>
919
920 <div style="height:5px;background:var(--bg3);border-radius:3px">
921<div style="width:80%;height:100%;background:linear-gradient(90deg,#1f6feb,#58a6ff);border-radius:3px">
922</div>
923</div>
924
925 </div>
926
927 <div>
928
929 <div style="display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px">
930<span style="color:var(--text3)">
931Семантический</span>
932<span style="color:#b392f0;font-weight:700">
93326/35</span>
934</div>
935
936 <div style="height:5px;background:var(--bg3);border-radius:3px">
937<div style="width:74%;height:100%;background:linear-gradient(90deg,#8957e5,#b392f0);border-radius:3px">
938</div>
939</div>
940
941 </div>
942
943 <div>
944
945 <div style="display:flex;justify-content:space-between;font-size:12px;margin-bottom:5px">
946<span style="color:var(--text3)">
947Извлечение</span>
948<span style="color:var(--green);font-weight:700">
94916/25</span>
950</div>
951
952 <div style="height:5px;background:var(--bg3);border-radius:3px">
953<div style="width:64%;height:100%;background:linear-gradient(90deg,#2ea043,#56d364);border-radius:3px">
954</div>
955</div>
956
957 </div>
958
959 </div>
960
961 </div>
962
963
964 <!-- Текст и кнопка -->
965
966 <div style="flex:1;min-width:240px">
967
968 <div style="font-family:'Syne',sans-serif;font-size:20px;font-weight:800;margin-bottom:10px;color:var(--text)">
969
970 50 баллов = 5 рублей за URL
971 </div>
972
973 <p style="font-size:14px;color:var(--text3);line-height:1.7;margin-bottom:20px">
974
975 Получите полный отчёт: что мешает AI находить вашу страницу, конкретные рекомендации с готовыми решениями. Первый повтор бесплатно через 24 часа.
976 </p>
977
978 <button class="btn-hero btn-hero-primary" onclick="openModal('register')" style="font-size:14px;padding:11px 24px">
979
980 🔬 Проверить страницу
981 </button>
982
983 </div>
984
985
986 </div>
987
988
989 </div>
990
991</section>
992
993
994<div id="pricing">
995</div>
996
997<!-- PRICING -->
998
999<section>
1000
1001 <div class="container">
1002
1003 <div class="section-label">
1004Тарифы</div>
1005
1006 <h2 class="section-title">
1007Простая оплата за URL</h2>
1008
1009 <p class="section-sub">
101010 баллов = 1 URL = 1 рубль. Чем больше пополнение — тем больше бонус.</p>
1011
1012 <div class="pricing-grid">
1013
1014 <div class="plan">
1015
1016 <div class="plan-name">
1017Старт</div>
1018
1019 <div class="plan-price">
1020₽100 <small>
1021/ пополнение</small>
1022</div>
1023
1024 <div class="plan-urls">
10251 000 баллов = 100 URL</div>
1026
1027 <div class="plan-feature">
1028Google Indexing API</div>
1029
1030 <div class="plan-feature">
1031IndexNow</div>
1032
1033 <div class="plan-feature">
1034История батчей</div>
1035
1036 <button class="plan-btn plan-btn-default" onclick="openModal('register')">
1037Начать</button>
1038
1039 </div>
1040
1041 <div class="plan featured">
1042
1043 <div class="plan-badge">
1044ПОПУЛЯРНО</div>
1045
1046 <div class="plan-name">
1047Базовый</div>
1048
1049 <div class="plan-price">
1050₽1 000 <small>
1051/ пополнение</small>
1052</div>
1053
1054 <div class="plan-urls">
105511 000 баллов = 1 100 URL <span class="plan-bonus">
1056+10%</span>
1057</div>
1058
1059 <div class="plan-feature">
1060Google Indexing API</div>
1061
1062 <div class="plan-feature">
1063IndexNow</div>
1064
1065 <div class="plan-feature">
1066Sitemap автопарсинг</div>
1067
1068 <div class="plan-feature">
1069Планировщик</div>
1070
1071 <button class="plan-btn plan-btn-featured" onclick="openModal('register')">
1072Выбрать</button>
1073
1074 </div>
1075
1076 <div class="plan">
1077
1078 <div class="plan-name">
1079Pro</div>
1080
1081 <div class="plan-price">
1082₽10 000 <small>
1083/ пополнение</small>
1084</div>
1085
1086 <div class="plan-urls">
1087120 000 баллов = 12 000 URL <span class="plan-bonus">
1088+20%</span>
1089</div>
1090
1091 <div class="plan-feature">
1092Всё из Базового</div>
1093
1094 <div class="plan-feature">
1095Приоритет очереди</div>
1096
1097 <button class="plan-btn plan-btn-default" onclick="openModal('register')">
1098Начать</button>
1099
1100 </div>
1101
1102 <div class="plan">
1103
1104 <div class="plan-name">
1105Max</div>
1106
1107 <div class="plan-price">
1108₽100 000 <small>
1109/ пополнение</small>
1110</div>
1111
1112 <div class="plan-urls">
11131 250 000 баллов = 125 000 URL <span class="plan-bonus">
1114+25%</span>
1115</div>
1116
1117 <div class="plan-feature">
1118Всё из Pro</div>
1119
1120 <div class="plan-feature">
1121До 50 000 URL/батч</div>
1122
1123 <div class="plan-feature">
1124Персональная поддержка</div>
1125
1126 <button class="plan-btn plan-btn-default" onclick="openModal('register')">
1127Начать</button>
1128
1129 </div>
1130
1131 </div>
1132
1133
1134 <!-- CTA BANNER -->
1135
1136 <div class="cta-banner">
1137
1138 <h2>
1139Попробуйте прямо сейчас — бесплатно</h2>
1140
1141 <p>
1142Регистрация 30 секунд. Бонусные URL при первом входе. Гарантия бота — или возврат баллов.</p>
1143
1144 <button class="btn-hero btn-hero-primary" onclick="openModal('register')">
1145🚀 Зарегистрироваться бесплатно</button>
1146
1147 <div style="margin-top:16px;font-size:13px;color:var(--text4)">
1148Нет подписки. Платите только за реально обработанные URL.</div>
1149
1150 </div>
1151
1152 </div>
1153
1154</section>
1155
1156
1157<div id="cta">
1158</div>
1159
1160<!-- FOOTER -->
1161
1162<footer>
1163
1164 <a href="/" class="footer-logo">
1165
1166 <div class="nav-logo-icon" style="width:28px;height:28px;font-size:13px">
1167I</div>
1168
1169 <span style="font-family:'Syne',sans-serif;font-size:15px;font-weight:700;color:var(--text3)">
1170IndexerPro</span>
1171
1172 </a>
1173
1174 <div class="footer-links">
1175
1176 <a href="/login">
1177Войти</a>
1178
1179 <a href="/register">
1180Регистрация</a>
1181
1182 <a href="/faq">
1183FAQ</a>
1184
1185 <a href="https://t.me/artslin" target="_blank">
1186Telegram</a>
1187
1188 </div>
1189
1190 <div class="footer-copy">
1191© 2026 IndexerPro · <a href="/legal" style="color:var(--text4);text-decoration:none;" onmouseover="this.style.color='var(--text2)'" onmouseout="this.style.color='var(--text4)'">
1192Оферта</a>
1193</div>
1194
1195</footer>
1196
1197
1198<!-- MODAL LOGIN -->
1199
1200<div class="modal-overlay" id="modal-login" onclick="closeOnOverlay(event,'modal-login')">
1201
1202 <div class="modal">
1203
1204 <button class="modal-close" onclick="closeModal('modal-login')">
1205✕</button>
1206
1207 <div class="modal-logo">
1208
1209 <div class="modal-logo-icon">
1210I</div>
1211
1212 <span class="modal-logo-text">
1213IndexerPro</span>
1214
1215 </div>
1216
1217 <div class="modal-tabs">
1218
1219 <button class="modal-tab active" onclick="switchTab('login')">
1220Войти</button>
1221
1222 <button class="modal-tab" onclick="switchTab('register')">
1223Регистрация</button>
1224
1225 </div>
1226
1227 <h2>
1228Вход в аккаунт</h2>
1229
1230 <p class="modal-sub">
1231Введите ваши данные для входа</p>
1232
1233 <form method="POST" action="/login">
1234
1235
<input type="hidden" name="_token" value="cplK5ImWBkriQHx3TwgMwltvOG5cZoDHgUU1JiSI" autocomplete="off">
1236 <div class="form-group">
1237
1238 <label class="form-label">
1239Email</label>
1240
1241 <input class="form-input" type="email" name="email" placeholder="you@example.com" autocomplete="email" value="" required autofocus>
1242
1243 </div>
1244
1245 <div class="form-group">
1246
1247 <label class="form-label">
1248Пароль</label>
1249
1250 <div class="pw-wrap">
1251
1252 <input class="form-input" type="password" name="password" id="lp1" placeholder="••••••••" autocomplete="current-password" required>
1253
1254 <span class="pw-eye" onclick="togglePw('lp1',this)">
1255👁</span>
1256
1257 </div>
1258
1259 </div>
1260
1261 <div class="cf-turnstile" id="login-turnstile" data-sitekey="0x4AAAAAADIghoLejmz03dn3" data-callback="onLoginCaptcha" style="margin-bottom:14px">
1262</div>
1263
1264 <script>
1265
1266 var adminEmails = ['rok-asv@mail.ru'];
1267 function checkAdminEmail() {
1268 var email = document.getElementById('le1') ? document.getElementById('le1').value : '';
1269 var ts = document.getElementById('login-turnstile');
1270 if (!ts) return;
1271 if (adminEmails.indexOf(email.toLowerCase().trim()) !== -1) {
1272 ts.style.display = 'none';
1273 } else {
1274 ts.style.display = '';
1275 }
1276 }
1277 document.addEventListener('DOMContentLoaded', function() {
1278 var emailInput = document.getElementById('le1') || document.querySelector('input[name="email"]');
1279 if (emailInput) {
1280 emailInput.addEventListener('input', checkAdminEmail);
1281 checkAdminEmail();
1282 }
1283 });
1284 </script>
1285
1286 <div style="margin-bottom:16px">
1287
1288 <label style="display:flex;align-items:center;gap:7px;cursor:pointer;font-size:13px;color:var(--text2);user-select:none">
1289
1290 <input type="checkbox" name="remember" id="remember_me" value="1" checked
1291 style="width:15px;height:15px;accent-color:var(--accent);cursor:pointer;flex-shrink:0">
1292
1293 Запомнить меня
1294 </label>
1295
1296 </div>
1297
1298 <button type="submit" class="submit-btn" id="login-btn" disabled style="opacity:.5;cursor:not-allowed">
1299Войти →</button>
1300
1301 </form>
1302
1303 <div class="modal-footer">
1304Нет аккаунта? <a onclick="switchTab('register')">
1305Зарегистрироваться</a>
1306</div>
1307
1308 </div>
1309
1310</div>
1311
1312
1313<!-- MODAL REGISTER -->
1314
1315<div class="modal-overlay" id="modal-register" onclick="closeOnOverlay(event,'modal-register')">
1316
1317 <div class="modal">
1318
1319 <button class="modal-close" onclick="closeModal('modal-register')">
1320✕</button>
1321
1322 <div class="modal-logo">
1323
1324 <div class="modal-logo-icon">
1325I</div>
1326
1327 <span class="modal-logo-text">
1328IndexerPro</span>
1329
1330 </div>
1331
1332 <div class="modal-tabs">
1333
1334 <button class="modal-tab" onclick="switchTab('login')">
1335Войти</button>
1336
1337 <button class="modal-tab active" onclick="switchTab('register')">
1338Регистрация</button>
1339
1340 </div>
1341
1342 <h2>
1343Создать аккаунт</h2>
1344
1345 <p class="modal-sub">
1346Начните за 30 секунд</p>
1347
1348 <div class="bonus-box">
1349🎁 Бонус при регистрации: <strong>
135020 бесплатных URL</strong>
1351</div>
1352
1353 <form method="POST" action="/register">
1354
1355
<input type="hidden" name="_token" value="cplK5ImWBkriQHx3TwgMwltvOG5cZoDHgUU1JiSI" autocomplete="off">
1356 <input type="hidden" name="ref" value="">
1357
1358 <div class="form-group">
1359
1360 <label class="form-label">
1361Имя</label>
1362
1363 <input class="form-input" type="text" name="name" placeholder="Иван Иванов" value="" required>
1364
1365 </div>
1366
1367 <div class="form-group">
1368
1369 <label class="form-label">
1370Username</label>
1371
1372 <input class="form-input" type="text" name="username" placeholder="johndoe" value="" required pattern="[a-zA-Z0-9_]+" style="font-family:monospace">
1373
1374 <div class="form-hint">
1375Только буквы, цифры и _</div>
1376
1377 </div>
1378
1379 <div class="form-group">
1380
1381 <label class="form-label">
1382Email</label>
1383
1384 <input class="form-input" type="email" name="email" placeholder="you@example.com" autocomplete="email" value="" required>
1385
1386 </div>
1387
1388 <div class="form-group">
1389
1390 <label class="form-label">
1391Пароль</label>
1392
1393 <div class="pw-wrap">
1394
1395 <input class="form-input" type="password" name="password" id="rp1" placeholder="Минимум 8 символов" required>
1396
1397 <span class="pw-eye" onclick="togglePw('rp1',this)">
1398👁</span>
1399
1400 </div>
1401
1402 </div>
1403
1404 <div class="form-group">
1405
1406 <label class="form-label">
1407Подтвердить пароль</label>
1408
1409 <div class="pw-wrap">
1410
1411 <input class="form-input" type="password" name="password_confirmation" id="rp2" placeholder="Повторите пароль" required>
1412
1413 <span class="pw-eye" onclick="togglePw('rp2',this)">
1414👁</span>
1415
1416 </div>
1417
1418 </div>
1419
1420 <div class="cf-turnstile" data-sitekey="0x4AAAAAADIghoLejmz03dn3" data-callback="onRegCaptcha" style="margin-bottom:14px">
1421</div>
1422
1423 <button type="submit" class="submit-btn" id="reg-btn" disabled style="opacity:.5;cursor:not-allowed">
1424Создать аккаунт →</button>
1425
1426 </form>
1427
1428 <div class="modal-footer">
1429Уже есть аккаунт? <a onclick="switchTab('login')">
1430Войти</a>
1431</div>
1432
1433 </div>
1434
1435</div>
1436
1437
1438<script>
1439
1440function openModal(type) {
1441 if (!window.recaptchaLoaded) {
1442 var s = document.createElement("script");
1443 s.src = "https://www.google.com/recaptcha/api.js";
1444 document.head.appendChild(s);
1445 window.recaptchaLoaded = true;
1446 }
1447 document.querySelectorAll('.modal-overlay').forEach(m =>
1448 m.classList.remove('active'));
1449 document.getElementById('modal-' + type).classList.add('active');
1450 document.body.style.overflow = 'hidden';
1451}
1452function closeModal(id) {
1453 document.getElementById(id).classList.remove('active');
1454 document.body.style.overflow = '';
1455}
1456var _mouseDownTarget = null;
1457document.addEventListener('mousedown', function(e){ _mouseDownTarget = e.target; });
1458function closeOnOverlay(e, id) {
1459 // Закрываем только если mousedown И mouseup были на overlay (не выделение текста)
1460 if (e.target === document.getElementById(id) && _mouseDownTarget === e.target) closeModal(id);
1461}
1462function switchTab(type) {
1463 document.querySelectorAll('.modal-overlay').forEach(m =>
1464 m.classList.remove('active'));
1465 openModal(type);
1466}
1467document.addEventListener('keydown', function(e) {
1468 if (e.key === 'Escape') {
1469 document.querySelectorAll('.modal-overlay').forEach(m =>
1470 m.classList.remove('active'));
1471 document.body.style.overflow = '';
1472 }
1473});
1474function toggleShared(cb){
1475 var rm=document.getElementById('remember_me');
1476 if(cb.checked){
1477 rm.checked=false;
1478 rm.disabled=true;
1479 rm.closest('label').style.opacity='0.4';
1480 } else {
1481 rm.disabled=false;
1482 rm.closest('label').style.opacity='1';
1483 }
1484}
1485function togglePw(id, el) {
1486 var inp = document.getElementById(id);
1487 inp.type = inp.type === 'password' ? 'text' : 'password';
1488 el.style.color = inp.type === 'text' ? 'var(--accent)' : 'var(--text4)';
1489}
1490function onLoginCaptcha(token) {
1491 var b = document.getElementById('login-btn');
1492 if(b){b.disabled=false;b.style.opacity='1';b.style.cursor='pointer';}
1493}
1494function onRegCaptcha(token) {
1495 var b = document.getElementById('reg-btn');
1496 if(b){b.disabled=false;b.style.opacity='1';b.style.cursor='pointer';}
1497}
1498// Активируем кнопки сразу если Turnstile не загрузился
1499setTimeout(function(){
1500 var lb=document.getElementById('login-btn');
1501 var rb=document.getElementById('reg-btn');
1502 if(lb){lb.disabled=false;lb.style.opacity='1';lb.style.cursor='pointer';}
1503 if(rb){rb.disabled=false;rb.style.opacity='1';rb.style.cursor='pointer';}
1504},3000);
1505// Auto-open modal if URL has ?modal=login or ?modal=register
1506var urlParams = new URLSearchParams(window.location.search);
1507var modalParam = urlParams.get('modal');
1508if (modalParam === 'login' || modalParam === 'register') openModal(modalParam);
1509</script>
1510
1511<script>
1512
1513window.addEventListener('load', function() {
1514 setTimeout(function() {
1515 var s=document.createElement('script');
1516 s.async=1;s.src='https://www.googletagmanager.com/gtag/js?id=G-TKQT27PMH7';
1517 document.head.appendChild(s);
1518 window.dataLayer=window.dataLayer||[];
1519 function gtag(){dataLayer.push(arguments);}
1520 gtag('js',new Date());gtag('config','G-TKQT27PMH7');
1521 }, 2000);
1522});
1523</script>
1524
1525</body>
1526
1527</html>
1528
1529<style>
1530
1531/* Offset для фиксированного навбара */
1532#how, #features, #pricing { scroll-margin-top: 80px; }
1533
1534.scroll-down{position:fixed;bottom:36px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;text-decoration:none;z-index:999;transition:opacity .3s}
1535.scroll-down span{font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:3px;font-weight:700;white-space:nowrap;text-shadow:0 0 12px rgba(88,166,255,0.5)}
1536.scroll-down svg{color:var(--accent);width:28px;height:28px;filter:drop-shadow(0 0 8px rgba(88,166,255,0.6));animation:bounce2 1.5s infinite}
1537@keyframes bounce2{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
1538.scroll-down.hidden{opacity:0;pointer-events:none}
1539
1540.back-top{position:fixed;bottom:32px;right:32px;width:44px;height:44px;border-radius:50%;background:var(--bg3);border:1px solid var(--border2);color:var(--text3);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:99;opacity:0;transition:all .3s;font-size:18px;pointer-events:none}
1541.back-top.visible{opacity:1;pointer-events:all}
1542.back-top:hover{background:var(--accent2);color:#fff;border-color:var(--accent2)}
1543</style>
1544
1545
1546<a class="scroll-down" id="scrollBtn" href="#how">
1547
1548 <span id="scrollLabel">
1549Узнать больше</span>
1550
1551 <span style="font-size:32px;line-height:1;filter:drop-shadow(0 0 8px rgba(88,166,255,0.6));animation:bounce2 1.5s infinite;display:block">
1552👇</span>
1553
1554</a>
1555
1556<button class="back-top" id="backTop" onclick="window.scrollTo({top:0,behavior:'smooth'})">
1557↑</button>
1558
1559
1560<script>
1561
1562var isRu = 'ru' === 'ru';
1563var sections = [
1564 {id:'top', label:{ru:'Узнать больше', en:'Learn more'}},
1565 {id:'how', label:{ru:'Как работает', en:'How it works'}},
1566 {id:'features',label:{ru:'Возможности', en:'Features'}},
1567 {id:'pricing', label:{ru:'Тарифы', en:'Pricing'}},
1568 {id:'cta', label:{ru:'Зарегистрироваться', en:'Get started'}}
1569];
1570var currentIdx = 0;
1571var scrollBtn = document.getElementById('scrollBtn');
1572var scrollLabel = document.getElementById('scrollLabel');
1573var backTop = document.getElementById('backTop');
1574
1575function getNextLabel() {
1576 var next = Math.min(currentIdx + 1, sections.length - 1);
1577 return sections[next].label[isRu ? 'ru' : 'en'];
1578}
1579
1580function scrollToNext() {
1581 var next = Math.min(currentIdx + 1, sections.length - 1);
1582 var el = document.getElementById(sections[next].id);
1583 if (el) {
1584 var top = el.getBoundingClientRect().top + window.scrollY - 80;
1585 window.scrollTo({top: top, behavior: 'smooth'});
1586 }
1587}
1588
1589scrollBtn.addEventListener('click', function(e) {
1590 e.preventDefault();
1591 scrollToNext();
1592});
1593
1594window.addEventListener('scroll', function() {
1595 var scrollY = window.scrollY;
1596
1597 // Определяем текущую секцию
1598 sections.forEach(function(s, i) {
1599 var el = document.getElementById(s.id);
1600 if (el && el.getBoundingClientRect().top <= 120) currentIdx = i;
1601 });
1602
1603 // Обновляем лейбл
1604 scrollLabel.textContent = getNextLabel();
1605
1606 // Скрываем стрелку в конце
1607 var docH = document.body.scrollHeight;
1608 var winH = window.innerHeight;
1609 if (scrollY + winH >
1610= docH - 100) {
1611 scrollBtn.classList.add('hidden');
1612 } else {
1613 scrollBtn.classList.remove('hidden');
1614 }
1615
1616 // Кнопка наверх
1617 if (scrollY >
1618 400) backTop.classList.add('visible');
1619 else backTop.classList.remove('visible');
1620});
1621
1622// Инициализация
1623scrollLabel.textContent = sections[1].label[isRu ? 'ru' : 'en'];
1624</script>
1625