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.
1

DNS Setup (CNAME)

Point your Signals subdomain to our ingest endpoint with a CNAME record.

signals.yourdomain.com  →  CNAME  →  ingest.freshnews.ai

DNS propagation can take a short time.

2

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.xml
3

Footer 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>

Recursos de Alto Desempenho

Stale-While-Revalidate

Carregamentos instantâneos com frescor. O widget exibe conteúdo em cache imediatamente (atraso de 0ms), depois busca dados frescos em segundo plano para atualizações suaves.

Telas de Esqueleto

Sem mudança de layout. O widget exibe telas de esqueleto animadas durante o carregamento em vez do texto 'Carregando...' para melhor desempenho percebido.

Busca Paralela

Marca e artigos são buscados em paralelo (não bloqueante), então os artigos são renderizados imediatamente mesmo se a API de marca for lenta.

Como Novos Artigos Aparecem

Renderização Instantânea (atraso de 0ms)

O widget usa cache de LocalStorage para mostrar conteúdo imediatamente. Na primeira visita, os artigos carregam instantaneamente do cache (atraso percebido de 0ms), depois dados frescos são buscados em segundo plano.

Atualização Suave

A busca em segundo plano garante frescor sem perturbar a experiência do usuário. Novos artigos aparecem perfeitamente conforme são publicados, sem mudanças de layout ou indicadores de carregamento.

Vantagem de Descoberta

💡 Por que isso importa para IA: Mecanismos generativos (GEO) e mecanismos de resposta (AEO) procuram estruturas HTML rápidas e autoritárias. A abordagem "Stale-While-Revalidate" do nosso widget garante que rastreadores de IA encontrem seu conteúdo imediatamente, enquanto seus usuários obtêm uma experiência de carregamento instantânea.

Recursos Adicionais

Para documentação detalhada da API, consulte a documentação EMBED-API.md. Para solução de problemas, entre em contato conosco em contact@freshnews.ai.