snitcher.com

Revisión web de snitcher.com

Snitcher — Uncover your hidden website visitors | Snitcher

 Generado el 22 Marzo 2026 16:53 PM

Resultados antiguos? ACTUALIZAR !

La puntuación es 54/100

Contenido SEO

Título

Snitcher — Uncover your hidden website visitors | Snitcher

Longitud : 58

Perfecto, tu título contiene entre 10 y 70 caracteres.

Descripción

Snitcher turns anonymous website visitors into actionable leads. Identify in-market companies, see buyer intent, and trigger workflows across your stack.

Longitud : 153

Genial, tu descripción meta contiene entre 70 y 160 caracteres.

Palabras Claves (Keywords)

Muy mal. No hemos encontrado palabras clave (meta keywords) en tu página. Usa este generador de meta tags gratuito para crear tus palabras clave.

Propiedades Meta Og

Bien. Tu página usa propiedades Og (etiquetas og).

Propiedad Contenido
title Snitcher — Uncover your hidden website visitors
description Snitcher turns anonymous website visitors into actionable leads. Identify in-market companies, see buyer intent, and trigger workflows across your stack.
type website
url https://snitcher.com/
site_name Snitcher
locale en_US
image https://snitcher.com/og-image.png
image:width 1200
image:height 630
image:alt Snitcher — Uncover your hidden website visitors

Titulos

H1 H2 H3 H4 H5 H6
1 6 1 8 6 0
  • [H1] Uncover your hiddenhidden(function(){const componentId = "pixel-reveal-7en0z8pek"; const decodeCharsStr = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0,1,2,3,4,5,6,7,8,9"; const cycles = 11; (function() { const container = document.getElementById(componentId); if (!container) return; if (container.hasAttribute('data-initialized')) return; container.setAttribute('data-initialized', 'true'); const decorativeElement = container.querySelector('.pixel-reveal-decorative'); if (!decorativeElement) return; const isAutoplay = container.getAttribute('data-autoplay') !== 'false'; const decodeChars = decodeCharsStr.split(','); // Brand color for pixel effects const BRAND_COLOR = '#4C4CFF'; // Animation configuration const SCRAMBLE_INTERVAL = 45; const SCRAMBLE_DURATION = cycles * SCRAMBLE_INTERVAL; const STAGGER_DELAY = 50; const REVEAL_STAGGER = 70; const SPARKLE_CHANCE = 0.3; // Pixel dot configuration const DOTS_PER_CHAR = 6; const DOT_SIZE = 3; // Track active timeouts/intervals for cleanup on hover mode let activeTimers = []; let activeIntervals = []; // Seeded random for consistent results function seededRandom(seed) { const x = Math.sin(seed * 12.9898 + seed * 78.233) * 43758.5453; return x - Math.floor(x); } // Create pixel dots for a character function createPixelDots(dotsContainer, charIndex) { dotsContainer.innerHTML = ''; for (let i = 0; i < DOTS_PER_CHAR; i++) { const dot = document.createElement('span'); dot.className = 'pixel-dot'; // Random position within character bounds const seed = charIndex * 100 + i; const x = seededRandom(seed) * 100; const y = seededRandom(seed + 1000) * 100; // Random animation phase for pulsing const phase = seededRandom(seed + 2000) * Math.PI * 2; const speed = 0.5 + seededRandom(seed + 3000) * 0.5; dot.style.cssText = ` left: ${x}%; top: ${y}%; width: ${DOT_SIZE}px; height: ${DOT_SIZE}px; --phase: ${phase}; --speed: ${speed}; `; dot.dataset.phase = String(phase); dot.dataset.speed = String(speed); dotsContainer.appendChild(dot); } } // Animate pixel dots with pulsing opacity (like hero dot grid) let dotsAnimationId = null; const allDots = []; function animateDots(time) { for (const { dot, phase, speed } of allDots) { // Dual sine wave for complex pulsing (matching hero dot grid) const wave1 = Math.sin(time * 0.003 * speed + phase); const wave2 = Math.sin(time * 0.003 * 0.7 + phase * 1.3); const combinedWave = wave1 * 0.7 + wave2 * 0.3; // Normalize and sharpen const normalizedWave = (combinedWave + 1) / 2; const sharpenedWave = Math.pow(normalizedWave, 1.5); // Occasional sparkle const sparkleChance = Math.sin(time * 0.001 + parseFloat(dot.dataset.phase || '0')) * 0.5 + 0.5; const sparkle = sparkleChance > 0.95 ? 1.5 : 1; const opacity = Math.min((0.2 + sharpenedWave * 0.8) * sparkle, 1); dot.style.opacity = String(opacity); } dotsAnimationId = requestAnimationFrame(animateDots); } function startDotsAnimation() { if (!dotsAnimationId) { dotsAnimationId = requestAnimationFrame(animateDots); } } function stopDotsAnimation() { if (dotsAnimationId) { cancelAnimationFrame(dotsAnimationId); dotsAnimationId = null; } } function clearAllTimers() { activeTimers.forEach(t => clearTimeout(t)); activeIntervals.forEach(i => clearInterval(i)); activeTimers = []; activeIntervals = []; } function resetAnimation() { clearAllTimers(); stopDotsAnimation(); allDots.length = 0; // Reset state attributes container.removeAttribute('data-animated'); container.removeAttribute('data-complete'); // Reset all decorative chars to their original state const chars = decorativeElement.querySelectorAll('.pixel-char'); chars.forEach((charEl) => { charEl.classList.remove('scrambling', 'revealed', 'sparkle'); const currentDisplay = charEl.querySelector('.pixel-char-current'); const finalChar = charEl.getAttribute('data-char') || ''; if (currentDisplay) currentDisplay.textContent = finalChar; const dotsContainer = charEl.querySelector('.pixel-dots'); if (dotsContainer) dotsContainer.innerHTML = ''; }); } function startPixelAnimation() { // If already animating in hover mode, reset first if (!isAutoplay) { resetAnimation(); } const chars = decorativeElement.querySelectorAll('.pixel-char'); const totalChars = chars.length; // Set brand color CSS variable container.style.setProperty('--brand-color', BRAND_COLOR); // Read computed text color for final state const rootColor = getComputedStyle(container).color; container.style.setProperty('--pixel-color', rootColor); // Mark as animated container.setAttribute('data-animated', 'true'); // Initialize pixel dots for each character chars.forEach((charEl, index) => { const dotsContainer = charEl.querySelector('.pixel-dots'); if (dotsContainer) { createPixelDots(dotsContainer, index); // Register dots for animation const dots = dotsContainer.querySelectorAll('.pixel-dot'); dots.forEach(dot => { allDots.push({ dot, phase: parseFloat(dot.dataset.phase || '0'), speed: parseFloat(dot.dataset.speed || '1') }); }); } }); // Start dots pulsing animation startDotsAnimation(); // Process each character chars.forEach((charEl, index) => { const currentDisplay = charEl.querySelector('.pixel-char-current'); const finalChar = charEl.getAttribute('data-char') || ''; const startDelay = index * STAGGER_DELAY; const revealTime = startDelay + SCRAMBLE_DURATION + (index * REVEAL_STAGGER); // Start scrambling after stagger delay const t = setTimeout(() => { charEl.classList.add('scrambling'); // Scramble at intervals with occasional sparkle let scrambleCount = 0; const scrambleInterval = setInterval(() => { const randomChar = decodeChars[Math.floor(Math.random() * decodeChars.length)]; currentDisplay.textContent = randomChar; // Random sparkle during scramble if (Math.random() < SPARKLE_CHANCE) { charEl.classList.add('sparkle'); const st = setTimeout(() => charEl.classList.remove('sparkle'), 150); activeTimers.push(st); } scrambleCount++; }, SCRAMBLE_INTERVAL); activeIntervals.push(scrambleInterval); // Stop scrambling and reveal final character const rt = setTimeout(() => { clearInterval(scrambleInterval); charEl.classList.remove('scrambling'); charEl.classList.add('revealed'); currentDisplay.textContent = finalChar; }, revealTime - startDelay); activeTimers.push(rt); }, startDelay); activeTimers.push(t); }); // Calculate total animation duration const lastCharIndex = totalChars - 1; const totalDuration = (lastCharIndex * STAGGER_DELAY) + SCRAMBLE_DURATION + (lastCharIndex * REVEAL_STAGGER) + 400; // Mark complete and cleanup const completeTimer = setTimeout(() => { container.setAttribute('data-complete', 'true'); stopDotsAnimation(); }, totalDuration); activeTimers.push(completeTimer); } if (isAutoplay) { // Autoplay mode: trigger on scroll into view (original behavior) if (container.hasAttribute('data-animated')) return; const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { startPixelAnimation(); observer.disconnect(); } }); }, { threshold: 0.1, rootMargin: '0px' } ); observer.observe(container); } else { // Hover mode: trigger on mouseenter, reset on mouseleave container.addEventListener('mouseenter', () => { startPixelAnimation(); }); container.addEventListener('mouseleave', () => { resetAnimation(); }); } })(); })(); website visitors
  • [H2] The system that powers every revenue moment
  • [H2] Own every stage from anonymous visit to closed deal
  • [H2] Trusted by GTM teams everywhere
  • [H2] Grow your business with Snitcher
  • [H2] Install in minutes, not months
  • [H2] Own every revenue moment
  • [H3] Seamlessly integrate with your entire stack
  • [H4] Find the revenue hiding in your traffic
  • [H4] Know who's ready before anyone else
  • [H4] Stay fast while everyone else slows down
  • [H4] Catch buyers while they're still deciding
  • [H4] See what's working before it's too late
  • [H4] Give clients an edge
  • [H4] Onboard clients in seconds
  • [H4] Work with GTM experts
  • [H5] Product
  • [H5] Journey
  • [H5] Teams
  • [H5] Use Cases
  • [H5] Resources
  • [H5] Company

Imagenes

Hemos encontrado 80 imágenes en esta web.

19 atributos alt están vacios o no existen. Agrega texto alternativo para que los motores de búsqueda puedan entender las imágenes.

Ratio Texto/HTML

Ratio : 2%

El ratio entre texto y código HTML de esta página es menor que el 15 por ciento, esto significa que tu web posiblemente necesite más contenido en texto.

Flash

Perfecto, no se ha detectado contenido Flash en la página.

Iframe

Muy mal, tienes Iframes en la página, esto significa que el contenido no podrá ser indexado.

Reescritura URL

Bien. Tus enlaces parecen amigables

Guiones bajos en las URLs

Perfecto! No hemos detectado guiones bajos en tus URLs

Enlaces en página

Hemos encontrado un total de 36 enlaces incluyendo 0 enlace(s) a ficheros

Ancla Tipo Jugo
Account scoring Interna Pasando Jugo
Contact reveal Interna Pasando Jugo
GA4 enrichment Interna Pasando Jugo
Lead generation Interna Pasando Jugo
Marketing attribution Interna Pasando Jugo
Visitor identification Interna Pasando Jugo
About us Interna Pasando Jugo
Careers Interna Pasando Jugo
Talk to sales Interna Pasando Jugo
Customers Interna Pasando Jugo
Pricing Interna Pasando Jugo
Log in Interna Pasando Jugo
Start for free Interna Pasando Jugo
Platform Interna Pasando Jugo
Radar Interna Pasando Jugo
IP to Company Interna Pasando Jugo
Identify Interna Pasando Jugo
Signal Interna Pasando Jugo
Automate Interna Pasando Jugo
Engage Interna Pasando Jugo
Measure Interna Pasando Jugo
Sales Interna Pasando Jugo
Marketing Interna Pasando Jugo
RevOps Interna Pasando Jugo
Agency Interna Pasando Jugo
Explore program Interna Pasando Jugo
Explore integrations Interna Pasando Jugo
Blog Interna Pasando Jugo
Documentation Interna Pasando Jugo
Help center Interna Pasando Jugo
Changelog Interna Pasando Jugo
Contact Interna Pasando Jugo
Trust centre Interna Pasando Jugo
Privacy Policy Interna Pasando Jugo
Terms & Conditions Interna Pasando Jugo
Cookie Policy Interna Pasando Jugo

Palabras Clave SEO

Nube de Palabras Clave

snitcher into integrations sales marketing teams pricing every employees platform

Consistencia de las Palabras Clave

Palabra Clave (Keyword) Contenido Título Palabras Claves (Keywords) Descripción Titulos
snitcher 12
into 6
sales 6
employees 6
pricing 6

Usabilidad

Url

Dominio : snitcher.com

Longitud : 12

Favicon

Genial, tu web tiene un favicon.

Imprimibilidad

No hemos encontrado una hoja de estilos CSS para impresión.

Idioma

Genial. Has declarado el idioma en.

Dublin Core

Esta página no usa Dublin Core.

Documento

Tipo de documento (Doctype)

HTML 5

Codificación

Perfecto. Has declarado como codificación UTF-8.

Validez W3C

Errores : 0

Avisos : 0

Privacidad de los Emails

Atención! Hemos encontrado por lo menos una dirección de correo electrónico en texto plano. Usa este protector antispam gratuito para ocultarla de los spammers.

HTML obsoleto

Genial, no hemos detectado ninguna etiqueta HTML obsoleta.

Consejos de Velocidad

Excelente, esta web no usa tablas.
Muy mal, tu web está usando estilos embenidos (inline CSS).
Muy mal, tu página web usa demasiados ficheros CSS (más de 4).
Perfecto, tu web usa pocos ficheros JavaScript.
Su sitio web se beneficia del tipo de compresión gzip. ¡Perfecto!

Movil

Optimización Móvil

Icono para Apple
Etiqueta Meta Viewport
Contenido Flash

Optimización

Mapa del sitio XML

¡Perfecto! Su sitio tiene un mapa del sitio en XML.

https://snitcher.com/sitemap-index.xml

Robots.txt

https://snitcher.com/robots.txt

¡Estupendo! Su sitio web tiene un archivo robots.txt.

Herramientas de Analítica

No disponible

No hemos encontrado ninguna herramienta de analítica en esta web.

La analítica Web le permite medir la actividad de los visitantes de su sitio web. Debería tener instalada al menos una herramienta de analítica y se recomienda instalar otra más para obtener una confirmación de los resultados.

PageSpeed Insights


Dispositivo
Categorias

Free SEO Testing Tool

Free SEO Testing Tool es una herramienta seo gratuita que te ayuda a analizar tu web