Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 34208 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Цепочка редиректов для файла robots.txt:
http://netmailart.de/robots.txt
301 MovedPermanently
https://netmailart.de/robots.txt
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>netmailart.de — Domain kaufen</title>
<meta name="description" content="Premium SEO-Domain netmailart.de — jetzt zum Festpreis sichern.">
<meta name="robots" content="noindex, nofollow">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Mono:wght@400;500&display=swap" rel="stylesheet">
<style>
/* ═══ RESET & BASE ═══ */
*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }
:root {
--bg: #0a0a0b;
--bg2: #111113;
--bg3: #1a1a1d;
--surface: #202024;
--border: #2a2a2f;
--border-hi: #3a3a40;
--ink: #f0f0f2;
--text: #c8c8cc;
--text-dim: #75757a;
--accent: #10b981;
--accent-hi: #34d399;
--accent-bg: rgba(16, 185, 129, 0.08);
--accent-bd: rgba(16, 185, 129, 0.2);
--red: #ef4444;
--amber: #f59e0b;
--font: 'DM Sans', -apple-system, sans-serif;
--mono: 'DM Mono', 'SF Mono', monospace;
--r: 10px;
--r-lg: 16px;
--max: 960px;
}
html { scroll-behavior: smooth; }
body {
font-family: var(--font);
background: var(--bg);
color: var(--text);
line-height: 1.6;
min-height: 100vh;
-webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
/* ═══ LAYOUT ═══ */
.container { max-width: var(--max); margin: 0 auto; padding: 0 1.5rem; }
/* ═══ SUBTLE GRID BG ═══ */
body::before {
content: '';
position: fixed; inset: 0;
background-image:
linear-gradient(rgba(255,255,255,0.015) 1px, transparent 1px),
linear-gradient(90deg, rgba(255,255,255,0.015) 1px, transparent 1px);
background-size: 60px 60px;
pointer-events: none;
z-index: 0;
}
/* ═══ NAV ═══ */
.nav {
position: sticky; top: 0; z-index: 100;
padding: 1rem 0;
background: rgba(10,10,11,0.85);
backdrop-filter: blur(20px);
border-bottom: 1px solid var(--border);
}
.nav-inner {
display: flex; align-items: center; justify-content: space-between;
}
.nav-brand {
font-size: 0.75rem; font-weight: 600;
text-transform: uppercase; letter-spacing: 0.12em;
color: var(--text-dim);
}
.nav-brand span { color: var(--accent); }
.nav-cta {
padding: 0.5rem 1.2rem;
background: var(--accent); color: #000;
font-size: 0.78rem; font-weight: 700;
border-radius: 6px; border: none; cursor: pointer;
transition: all 0.2s;
}
.nav-cta:hover { background: var(--accent-hi); transform: translateY(-1px); }
/* ═══ HERO ═══ */
.hero {
position: relative; z-index: 1;
padding: 5rem 0 3rem;
text-align: center;
}
.hero-tld {
display: inline-block;
padding: 0.35rem 0.9rem;
background: var(--accent-bg);
border: 1px solid var(--accent-bd);
border-radius: 100px;
font-size: 0.72rem; font-weight: 600;
color: var(--accent); letter-spacing: 0.08em;
text-transform: uppercase;
margin-bottom: 1.5rem;
}
.hero-domain {
font-size: clamp(2.2rem, 6vw, 3.8rem);
font-weight: 700;
color: var(--ink);
letter-spacing: -0.02em;
line-height: 1.15;
margin-bottom: 0.6rem;
}
.hero-sub {
font-size: 1.05rem;
color: var(--text-dim);
margin-bottom: 2.5rem;
}
/* ═══ PRICE CARD ═══ */
.price-card {
display: inline-flex; flex-direction: column; align-items: center;
padding: 2rem 3rem;
background: var(--bg2);
border: 1px solid var(--border);
border-radius: var(--r-lg);
margin-bottom: 1.5rem;
position: relative;
overflow: hidden;
}
.price-card::before {
content: '';
position: absolute; top: 0; left: 0; right: 0;
height: 2px;
background: linear-gradient(90deg, transparent, var(--accent), transparent);
}
.price-label {
font-size: 0.68rem; font-weight: 600;
text-transform: uppercase; letter-spacing: 0.15em;
color: var(--text-dim);
margin-bottom: 0.4rem;
}
.price-amount {
font-family: var(--mono);
font-size: 2.6rem; font-weight: 700;
color: var(--ink);
line-height: 1.1;
}
.price-amount .currency { font-size: 1.4rem; color: var(--text-dim); vertical-align: super; margin-left: 0.15em; }
.price-netto {
font-size: 0.7rem; color: var(--text-dim);
margin-top: 0.3rem;
}
.price-buy {
display: inline-flex; align-items: center; gap: 0.5rem;
margin-top: 1.4rem;
padding: 0.85rem 2.4rem;
background: var(--accent); color: #000;
font-size: 0.88rem; font-weight: 700;
border-radius: 8px; border: none; cursor: pointer;
transition: all 0.25s;
text-decoration: none;
}
.price-buy:hover { background: var(--accent-hi); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(16,185,129,0.25); }
.price-buy svg { flex-shrink: 0; }
.fruits-badge {
display: inline-flex; align-items: center; gap: 0.4rem;
margin-top: 1rem;
font-size: 0.68rem; color: var(--text-dim);
}
.fruits-badge svg { width: 14px; height: 14px; }
/* ═══ SALE TEXT ═══ */
.sale-text-box {
max-width: 600px; margin: 0 auto 2rem;
padding: 1rem 1.5rem;
background: var(--bg2);
border-left: 3px solid var(--accent);
border-radius: 0 var(--r) var(--r) 0;
font-size: 0.88rem;
color: var(--text);
line-height: 1.65;
text-align: left;
}
/* ═══ METRICS SECTION ═══ */
.metrics-section {
position: relative; z-index: 1;
padding: 3rem 0 4rem;
}
.section-label {
text-align: center;
font-size: 0.68rem; font-weight: 600;
text-transform: uppercase; letter-spacing: 0.15em;
color: var(--text-dim);
margin-bottom: 0.6rem;
}
.section-title {
text-align: center;
font-size: 1.6rem; font-weight: 700;
color: var(--ink);
margin-bottom: 2.5rem;
}
/* ═══ METRIC GRID ═══ */
.metric-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1px;
background: var(--border);
border: 1px solid var(--border);
border-radius: var(--r-lg);
overflow: hidden;
}
.metric-card {
background: var(--bg2);
padding: 1.5rem;
display: flex; flex-direction: column;
transition: background 0.2s;
}
.metric-card:hover { background: var(--bg3); }
.metric-icon {
width: 32px; height: 32px;
display: flex; align-items: center; justify-content: center;
background: var(--accent-bg);
border: 1px solid var(--accent-bd);
border-radius: 8px;
color: var(--accent);
margin-bottom: 0.8rem;
}
.metric-icon svg { width: 16px; height: 16px; }
.metric-value {
font-family: var(--mono);
font-size: 1.6rem; font-weight: 700;
color: var(--ink);
line-height: 1.2;
margin-bottom: 0.2rem;
}
.metric-label {
font-size: 0.78rem; font-weight: 600;
color: var(--text);
margin-bottom: 0.15rem;
}
.metric-detail {
font-size: 0.68rem;
color: var(--text-dim);
}
/* ═══ DIVIDER ═══ */
.divider {
height: 1px;
background: linear-gradient(90deg, transparent, var(--border-hi), transparent);
margin: 0;
}
/* ═══ BENEFITS SECTION ═══ */
.benefits-section {
position: relative; z-index: 1;
padding: 3rem 0 2rem;
}
.benefits-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 1.5rem;
max-width: 800px;
margin: 0 auto;
}
.benefit-item {
display: flex;
gap: 0.9rem;
align-items: flex-start;
}
.benefit-check {
flex-shrink: 0;
width: 22px; height: 22px;
background: var(--accent);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
margin-top: 2px;
}
.benefit-check svg { width: 12px; height: 12px; stroke: #fff; }
.benefit-text {
font-size: 0.85rem;
color: var(--text);
line-height: 1.55;
}
.benefit-text strong { color: var(--ink); }
@media (max-width: 640px) {
.benefits-grid { grid-template-columns: 1fr; }
}
/* ═══ CTA SECTION ═══ */
.cta-section {
position: relative; z-index: 1;
padding: 4rem 0;
text-align: center;
}
.cta-domain {
font-family: var(--mono);
font-size: 1.1rem;
color: var(--text-dim);
margin-bottom: 0.8rem;
}
.cta-headline {
font-size: 1.8rem; font-weight: 700;
color: var(--ink);
margin-bottom: 0.6rem;
}
.cta-sub {
font-size: 0.92rem;
color: var(--text-dim);
margin-bottom: 2rem;
}
.cta-buttons {
display: flex; gap: 1rem;
justify-content: center; flex-wrap: wrap;
}
.btn-primary {
display: inline-flex; align-items: center; gap: 0.5rem;
padding: 0.85rem 2.2rem;
background: var(--accent); color: #000;
font-size: 0.88rem; font-weight: 700;
border-radius: 8px; border: none; cursor: pointer;
transition: all 0.25s;
}
.btn-primary:hover { background: var(--accent-hi); transform: translateY(-2px); }
.btn-ghost {
display: inline-flex; align-items: center; gap: 0.5rem;
padding: 0.85rem 2.2rem;
background: transparent; color: var(--text);
font-size: 0.88rem; font-weight: 600;
border: 1px solid var(--border-hi);
border-radius: 8px; cursor: pointer;
transition: all 0.25s;
}
.btn-ghost:hover { border-color: var(--accent); color: var(--accent); }
/* ═══ FOOTER ═══ */
.footer {
position: relative; z-index: 1;
padding: 2rem 0;
border-top: 1px solid var(--border);
text-align: center;
}
.footer a {
font-size: 0.72rem; color: var(--text-dim);
margin: 0 0.8rem;
transition: color 0.2s;
}
.footer a:hover { color: var(--accent); }
/* ═══ COOKIE BANNER ═══ */
.cookie-banner {
position: fixed; bottom: 0; left: 0; right: 0;
z-index: 999;
padding: 1rem 1.5rem;
background: var(--bg2);
border-top: 1px solid var(--border);
display: none;
align-items: center; justify-content: center; gap: 1rem;
font-size: 0.78rem; color: var(--text-dim);
}
.cookie-banner.show { display: flex; }
.cookie-btn {
padding: 0.45rem 1rem;
background: var(--accent); color: #000;
font-size: 0.72rem; font-weight: 700;
border: none; border-radius: 6px; cursor: pointer;
}
/* ═══ NO METRICS STATE ═══ */
.no-metrics {
text-align: center;
padding: 2rem;
color: var(--text-dim);
font-size: 0.88rem;
}
/* ═══ EXIT-INTENT MODAL ═══ */
.exit-overlay {
display: none; position: fixed; inset: 0;
z-index: 9999;
background: rgba(0,0,0,0.65);
backdrop-filter: blur(4px);
align-items: center; justify-content: center;
}
.exit-overlay.show { display: flex; }
.exit-modal {
position: relative;
max-width: 440px; width: 90%;
padding: 2.5rem 2rem 2rem;
background: var(--bg);
border: 1px solid var(--border);
border-radius: var(--r-lg);
text-align: center;
animation: exitPop 0.3s ease-out;
}
@keyframes exitPop { from { opacity: 0; transform: scale(0.92) translateY(10px); } to { opacity: 1; transform: scale(1) translateY(0); } }
.exit-close {
position: absolute; top: 0.8rem; right: 1rem;
background: none; border: none; cursor: pointer;
font-size: 1.6rem; color: var(--text-dim); line-height: 1;
transition: color 0.2s;
}
.exit-close:hover { color: var(--ink); }
.exit-icon { margin-bottom: 1rem; }
.exit-domain {
font-family: var(--mono);
font-size: 0.78rem; font-weight: 600;
color: var(--accent);
letter-spacing: 0.05em;
margin-bottom: 0.6rem;
}
.exit-title {
font-size: 1.35rem; font-weight: 700;
color: var(--ink);
margin-bottom: 0.6rem;
}
.exit-text {
font-size: 0.88rem; color: var(--text);
line-height: 1.6;
margin-bottom: 1.5rem;
}
.exit-cta {
display: inline-flex; align-items: center; gap: 0.5rem;
padding: 0.9rem 2.4rem;
background: var(--accent); color: #000;
font-size: 0.9rem; font-weight: 700;
border-radius: 8px; text-decoration: none;
transition: all 0.25s;
}
.exit-cta:hover { background: var(--accent-hi); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(16,185,129,0.25); }
.exit-sub {
margin-top: 0.8rem;
font-size: 0.68rem; color: var(--text-dim);
}
/* ═══ ANIMATIONS ═══ */
@keyframes fadeUp {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.hero { animation: fadeUp 0.6s ease-out; }
.metric-card { animation: fadeUp 0.5s ease-out both; }
.metric-card:nth-child(1) { animation-delay: 0.05s; }
.metric-card:nth-child(2) { animation-delay: 0.1s; }
.metric-card:nth-child(3) { animation-delay: 0.15s; }
.metric-card:nth-child(4) { animation-delay: 0.2s; }
.metric-card:nth-child(5) { animation-delay: 0.25s; }
.metric-card:nth-child(6) { animation-delay: 0.3s; }
.metric-card:nth-child(7) { animation-delay: 0.35s; }
.metric-card:nth-child(8) { animation-delay: 0.4s; }
/* ═══ RESPONSIVE ═══ */
@media (max-width: 640px) {
.hero { padding: 3rem 0 2rem; }
.hero-domain { font-size: 2rem; }
.price-card { padding: 1.5rem 2rem; }
.price-amount { font-size: 2rem; }
.metric-grid { grid-template-columns: repeat(2, 1fr); }
.cta-buttons { flex-direction: column; align-items: center; }
.cookie-banner { flex-direction: column; text-align: center; }
}
</style>
</head>
<body>
<!-- ═══ NAV ═══ -->
<nav class="nav">
<div class="container nav-inner">
<div class="nav-brand"><span>●</span> Domain zum Verkauf</div>
<a href="https://fruits.co/de/domain/netmailart.de" target="_blank" class="nav-cta">
Jetzt kaufen — 290 €
</a>
</div>
</nav>
<!-- ═══ HERO ═══ -->
<section class="hero">
<div class="container">
<div class="hero-tld">.de Domain · seit 2000</div>
<h1 class="hero-domain">netmailart.de</h1>
</div>
</section>
<!-- ═══ METRICS ═══ -->
<div class="divider"></div>
<section class="metrics-section">
<div class="container">
<div class="section-label">SEO-Profil</div>
<h2 class="section-title">Domain-Metriken</h2>
<div class="metric-grid">
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="10"/><path d="M12 6v6l4 2"/></svg> </div>
<div class="metric-value">26 J.</div>
<div class="metric-label">Domain-Alter</div>
<div class="metric-detail">Registriert seit 2000</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg> </div>
<div class="metric-value">17</div>
<div class="metric-label">Trust Flow</div>
<div class="metric-detail">Majestic TF</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg> </div>
<div class="metric-value">12</div>
<div class="metric-label">Citation Flow</div>
<div class="metric-detail">Majestic CF</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"/><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"/></svg> </div>
<div class="metric-value">260</div>
<div class="metric-label">Backlinks</div>
<div class="metric-detail">Eingehende Links</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="12" cy="12" r="10"/><path d="M2 12h20M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg> </div>
<div class="metric-value">16</div>
<div class="metric-label">Ref. Domains</div>
<div class="metric-detail">Verweisende Domains</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><rect x="2" y="2" width="20" height="8" rx="2"/><rect x="2" y="14" width="20" height="8" rx="2"/><circle cx="6" cy="6" r="1"/><circle cx="6" cy="18" r="1"/></svg> </div>
<div class="metric-value">12</div>
<div class="metric-label">Ref. IPs</div>
<div class="metric-detail">Einzigartige IPs</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></svg> </div>
<div class="metric-value">12</div>
<div class="metric-label">Ref. Subnets</div>
<div class="metric-detail">Einzigartige Subnetze</div>
</div>
<div class="metric-card">
<div class="metric-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><path d="M21 21l-4.35-4.35"/></svg> </div>
<div class="metric-value">5</div>
<div class="metric-label">Indexierte URLs</div>
<div class="metric-detail">In Google indexiert</div>
</div>
</div>
</div>
</section>
<!-- ═══ VORTEILE ═══ -->
<div class="divider"></div>
<section class="benefits-section">
<div class="container">
<div class="section-label">Warum diese Domain?</div>
<h2 class="section-title">Vorteile einer SEO-Domain</h2>
<div class="benefits-grid">
<div class="benefit-item">
<div class="benefit-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></div>
<div class="benefit-text"><strong>Bestehende Backlinks</strong> — gewachsenes Linkprofil mit 260 Backlinks, das neue Domains erst über Jahre aufbauen müssten.</div>
</div>
<div class="benefit-item">
<div class="benefit-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></div>
<div class="benefit-text"><strong>16 verweisende Domains</strong> — echte Verlinkungen von verschiedenen Websites signalisieren Google Relevanz und Autorität.</div>
</div>
<div class="benefit-item">
<div class="benefit-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></div>
<div class="benefit-text"><strong>Domain-Alter seit 2000</strong> — ältere Domains genießen bei Suchmaschinen mehr Vertrauen als Neuregistrierungen.</div>
</div>
<div class="benefit-item">
<div class="benefit-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></div>
<div class="benefit-text"><strong>Citation Flow 12</strong> — messbare Link-Stärke, die direkt auf Ihr neues Projekt übertragen wird.</div>
</div>
<div class="benefit-item">
<div class="benefit-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></div>
<div class="benefit-text"><strong>Trust Flow 17</strong> — Qualitätssignal, das die Vertrauenswürdigkeit der verlinkenden Quellen widerspiegelt.</div>
</div>
<div class="benefit-item">
<div class="benefit-check"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"><polyline points="20 6 9 17 4 12"/></svg></div>
<div class="benefit-text"><strong>5 indexierte URLs</strong> — Google kennt diese Domain bereits, das beschleunigt die Indexierung Ihrer neuen Inhalte.</div>
</div>
</div>
</div>
</section>
<!-- ═══ CTA / KAUFEN ═══ -->
<div class="divider"></div>
<section class="cta-section">
<div class="container">
<div class="cta-domain">netmailart.de</div>
<h2 class="cta-headline">steht zum Verkauf</h2>
<div class="price-card">
<div class="price-label">Festpreis</div>
<div class="price-amount">290<span class="currency">€</span></div>
<div class="price-netto">zzgl. MwSt. · Sofort übertragbar</div>
<a href="https://fruits.co/de/domain/netmailart.de" target="_blank" class="price-buy">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
Auf Fruits kaufen
</a>
<div class="fruits-badge">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg>
Sichere Transaktion über Fruits.co
</div>
</div>
</div>
</section>
<!-- ═══ FOOTER ═══ -->
<footer class="footer">
<div class="container">
<a href="/privacy">Privacy Policy</a>
</div>
</footer>
<!-- ═══ COOKIE BANNER ═══ -->
<div class="cookie-banner" id="cookieBanner">
<span>Diese Seite verwendet technisch notwendige Cookies.</span>
<button class="cookie-btn" onclick="document.getElementById('cookieBanner').classList.remove('show');localStorage.setItem('cookie_ok','1');">OK</button>
</div>
<!-- ═══ EXIT-INTENT MODAL ═══ -->
<div class="exit-overlay" id="exitOverlay">
<div class="exit-modal">
<button class="exit-close" onclick="closeExitModal()">×</button>
<div class="exit-icon">
<svg width="32" height="32" viewBox="0 0 24 24" fill="none" stroke="var(--accent)" stroke-width="2" stroke-linecap="round"><polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/></svg>
</div>
<div class="exit-domain">netmailart.de</div>
<h3 class="exit-title">Diese SEO-Domain nicht verpassen!</h3>
<p class="exit-text">Sichern Sie sich <strong>netmailart.de</strong> jetzt für <strong>290 €</strong> — inkl. 8 wertvoller SEO-Metriken.</p>
<a href="https://fruits.co/de/domain/netmailart.de" target="_blank" class="exit-cta">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round"><path d="M5 12h14M12 5l7 7-7 7"/></svg>
Jetzt auf Fruits sichern
</a>
<div class="exit-sub">Sichere Abwicklung · Sofortige Übertragung</div>
</div>
</div>
<!-- ═══ TRACKING ═══ -->
<!-- /var/www/geodom/templates/tracking.php – Bot-sicheres JS-Tracking-Pixel (v2) -->
<script>
(function(){
// ═══════════════════════════════════════════════════
// Schicht 1: JS-only – Bots ohne JS-Engine kommen nie hier an
// Schicht 2: Browser-Signal-Checks (Headless/WebDriver erkennen)
// Schicht 3: HMAC-Token → Server validiert
// Schicht 4: Server-seitig UA-Filter + IP-Hash Unique
// ═══════════════════════════════════════════════════
// --- Browser-Signals sammeln ---
var signals = {
// Screen-Daten (Headless-Bots haben oft 0x0 oder unrealistische Werte)
sw: screen.width || 0,
sh: screen.height || 0,
cd: screen.colorDepth || 0,
// Viewport
iw: window.innerWidth || 0,
ih: window.innerHeight || 0,
// Sprache (Bots haben oft keine oder 'en')
lang: (navigator.language || '').substring(0, 5),
langs: (navigator.languages || []).length,
// WebDriver-Check (Puppeteer, Playwright, Selenium)
wd: navigator.webdriver ? 1 : 0,
// Plugins (echte Browser haben meistens >= 1)
pl: (navigator.plugins || []).length,
// Touch-Support
ts: ('ontouchstart' in window) ? 1 : 0,
// Timezone Offset (Minuten)
tz: new Date().getTimezoneOffset(),
// Canvas-Fingerprint (kurzer Hash – nur ob Canvas funktioniert)
cv: 0,
// Connection-Type (nur moderne Browser)
ct: (navigator.connection && navigator.connection.effectiveType) || ''
};
// Canvas-Check (schnell, kein voller Fingerprint – nur Funktions-Test)
try {
var c = document.createElement('canvas');
var ctx = c.getContext('2d');
ctx.fillStyle = '#f0f';
ctx.fillRect(0, 0, 10, 10);
ctx.fillStyle = '#0ff';
ctx.font = '8px sans-serif';
ctx.fillText('G', 2, 8);
var d = c.toDataURL();
// Einfacher Hash der Canvas-Daten (nicht der volle Fingerprint)
var h = 0;
for (var i = 0; i < d.length; i++) {
h = ((h << 5) - h + d.charCodeAt(i)) | 0;
}
signals.cv = Math.abs(h);
} catch(e) {
signals.cv = -1; // Canvas blockiert = evtl. Privacy-Browser, trotzdem zählen
}
// --- Bot-Score berechnen (Client-seitig) ---
var botScore = 0;
if (signals.wd === 1) botScore += 50; // WebDriver = fast sicher Bot
if (signals.sw === 0 || signals.sh === 0) botScore += 30; // Kein Screen
if (signals.iw === 0 || signals.ih === 0) botScore += 20; // Kein Viewport
if (signals.langs === 0) botScore += 15; // Keine Sprachen
if (signals.pl === 0 && !signals.ts) botScore += 10; // Keine Plugins + kein Touch
if (signals.cd === 0) botScore += 10; // Keine Farbtiefe
// Wenn Bot-Score zu hoch → nicht tracken (spart Server-Requests)
if (botScore >= 50) return;
// --- Token-Funktion: immer frisch generieren (verhindert 120s Ablauf) ---
function makeToken() {
var ts = Math.floor(Date.now() / 1000);
var raw = [
signals.sw, signals.sh, signals.cd, signals.lang,
signals.wd, signals.pl, signals.tz, signals.cv, ts
].join('|');
var token = 0;
for (var i = 0; i < raw.length; i++) {
token = ((token << 5) - token + raw.charCodeAt(i)) | 0;
}
return { token: Math.abs(token).toString(36) + '-' + ts.toString(36), ts: ts };
}
// --- Page View senden ---
var t = makeToken();
fetch('/track', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
type: 'pageview',
page: location.pathname + location.search,
referrer: document.referrer || '',
signals: signals,
token: t.token,
ts: t.ts
}),
keepalive: true
}).catch(function(){});
// --- Banner/CTA-Klick Tracking ---
document.addEventListener('click', function(e) {
var el = e.target.closest('.mp-btn, .cta-btn, .btn-primary, .nav-cta, .price-buy, .exit-cta, .modal-mp-item, [data-track-click]');
if (!el) return;
var clickType = 'cta_click';
if (el.classList.contains('mp-btn') || el.classList.contains('sale-cta') || el.classList.contains('price-buy') || el.classList.contains('nav-cta') || el.classList.contains('exit-cta') || el.classList.contains('modal-mp-item')) clickType = 'sale_click';
if (el.dataset.trackClick) clickType = el.dataset.trackClick;
// Frischen Token für jeden Klick generieren – verhindert 120s Ablauf
var ct = makeToken();
fetch('/track', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
type: clickType,
target_url: el.href || el.dataset.href || '',
signals: signals,
token: ct.token,
ts: ct.ts
}),
keepalive: true
}).catch(function(){});
});
})();
</script>
<script>
// Cookie Banner
if (!localStorage.getItem('cookie_ok')) {
document.getElementById('cookieBanner').classList.add('show');
}
// Exit-Intent Modal
var exitShown = false;
function closeExitModal() {
document.getElementById('exitOverlay').classList.remove('show');
}
function showExitModal() {
if (exitShown || sessionStorage.getItem('exit_shown')) return;
exitShown = true;
sessionStorage.setItem('exit_shown', '1');
document.getElementById('exitOverlay').classList.add('show');
}
// Desktop: Maus verlässt Viewport nach oben (min. 3s auf Seite)
var pageReady = false;
setTimeout(function() { pageReady = true; }, 3000);
document.addEventListener('mouseout', function(e) {
if (!pageReady) return;
if (e.clientY <= 0) {
showExitModal();
}
});
// Mobile: Back-Button / Tab-Wechsel
document.addEventListener('visibilitychange', function() {
if (document.visibilityState === 'hidden') {
showExitModal();
}
});
// Overlay-Klick schließt Modal
document.getElementById('exitOverlay').addEventListener('click', function(e) {
if (e.target === this) closeExitModal();
});
// ESC schließt Modal
document.addEventListener('keydown', function(e) {
if (e.key === 'Escape') closeExitModal();
});
</script>
</body>
</html>