Signals Hub Installation
Set up your Signals Hub under your domain for SEO, AEO, and AI discovery — in minutes.
Why this works
Your Signals Hub lives under your domain so search engines and AI systems attribute everything to you.
- Content is published under your domain (signals.yourdomain.com), so authority stays with your brand.
- Your robots.txt and sitemap ensure crawlers and AI discovery engines can find and index your signals.
- A footer link creates an always-fresh entry point from your main site to your latest signal.
DNS Setup (CNAME)
Point your Signals subdomain to our ingest endpoint with a CNAME record.
signals.yourdomain.com → CNAME → ingest.freshnews.aiDNS propagation can take a short time.
robots.txt (Sitemap Discovery)
Add this line to your main site's robots.txt so crawlers can discover your signals sitemap.
Sitemap: https://signals.yourdomain.com/sitemap.xmlFooter Integration (Preferred) — Always Up-to-Date "Latest Signal"
We inject a link that always points to the most recent published signal.
Preferred: Dynamic Script (recommended)
<div id="freshnews-latest" class="freshnews-footer-pulse">
<noscript>
<a href="https://signals.yourdomain.com/en/latest" target="_blank" rel="noopener noreferrer">
Latest Signal ↗
</a>
</noscript>
</div>
<style>
.freshnews-footer-pulse a{
display:inline-block;
max-width:11ch;
white-space:nowrap;
overflow:hidden;
text-overflow:clip;
position:relative;
padding-right:1.1em;
}
.freshnews-footer-pulse a::after{
content:"↗";
position:absolute;
right:0;
top:50%;
transform:translateY(-50%);
opacity:.8;
font-size:.9em;
}
</style>
<script
src="https://signals.yourdomain.com/embed/footer-pulse.min.js"
data-hub="https://signals.yourdomain.com"
data-container="#freshnews-latest"
data-lang="en"
data-label="Latest Signal: "
data-target="_blank"
></script>The max-width is intentional to keep footers clean; the full title remains in the DOM for crawlers.
Fallback: Static Link (optional)
<a href="https://signals.yourdomain.com/en/latest" target="_blank" rel="noopener noreferrer">Latest Signal ↗</a>Multi-Language Setup
If your site is available in multiple languages, use the snippet for each language. Select a tab to see the code for that locale.
<div id="freshnews-latest" class="freshnews-footer-pulse">
<noscript>
<a href="https://signals.yourdomain.com/en/latest" target="_blank" rel="noopener noreferrer">
Latest Signal ↗
</a>
</noscript>
</div>
<style>
.freshnews-footer-pulse a{
display:inline-block;
max-width:11ch;
white-space:nowrap;
overflow:hidden;
text-overflow:clip;
position:relative;
padding-right:1.1em;
}
.freshnews-footer-pulse a::after{
content:"↗";
position:absolute;
right:0;
top:50%;
transform:translateY(-50%);
opacity:.8;
font-size:.9em;
}
</style>
<script
src="https://signals.yourdomain.com/embed/footer-pulse.min.js"
data-hub="https://signals.yourdomain.com"
data-container="#freshnews-latest"
data-lang="en"
data-label="Latest Signal: "
data-target="_blank"
></script>Características de Alto Rendimiento
Stale-While-Revalidate
Cargas instantáneas con frescura. El widget muestra contenido en caché inmediatamente (retraso de 0ms), luego obtiene datos frescos en segundo plano para actualizaciones suaves.
Pantallas de Esqueleto
Sin cambio de diseño. El widget muestra pantallas de esqueleto animadas durante la carga en lugar de texto 'Cargando...' para un mejor rendimiento percibido.
Obtención Paralela
La marca y los artículos se obtienen en paralelo (sin bloqueo), por lo que los artículos se renderizan inmediatamente incluso si la API de marca es lenta.
Cómo Aparecen los Nuevos Artículos
Renderizado Instantáneo (retraso de 0ms)
El widget usa almacenamiento en caché de LocalStorage para mostrar contenido inmediatamente. En la primera visita, los artículos se cargan instantáneamente desde la caché (retraso percibido de 0ms), luego se obtienen datos frescos en segundo plano.
Actualización Suave
La obtención en segundo plano asegura frescura sin alterar la experiencia del usuario. Los nuevos artículos aparecen sin problemas a medida que se publican, sin cambios de diseño o indicadores de carga.
Ventaja de Descubrimiento
💡 Por qué esto importa para la IA: Los motores generativos (GEO) y los motores de respuestas (AEO) buscan estructuras HTML rápidas y autorizadas. El enfoque "Stale-While-Revalidate" de nuestro widget asegura que los rastreadores de IA encuentren su contenido inmediatamente, mientras que sus usuarios obtienen una experiencia de carga instantánea.
Recursos Adicionales
Para documentación detallada de la API, consulte la documentación EMBED-API.md. Para solución de problemas, contáctenos en contact@freshnews.ai.