PDF

Report completoharborcyclery.example

L’IA vede solo il 0% dei tuoi contenuti. Sta leggendo una pagina quasi vuota.

Analizzato il 24 settembre 2026 alle ore 20:17 · 25 problemi · 36 controlli

Quello che vede una persona, e quello che riceve un'IA

0%di corrispondenza

Se le due colonne dicono la stessa cosa, sei a posto. Tutto ciò che è segnato in rosso esiste sul tuo schermo ma non arriva mai al crawler.

Screenshot di harborcyclery.example come appare in un browser
Screenshot di harborcyclery.example con JavaScript disattivato, cioè come lo riceve un crawler di IA
Quello che vede una persona160 paroleQuello che riceve un'IA0 parole
La stessa pagina, con JavaScript da un lato della linea e senza dall'altro. Quello che resta in bianco è ciò che non arriva mai al crawler.

Punteggio per area

  • Accesso per l'IA83/100

    I crawler di ChatGPT, Claude, Perplexity e Gemini riescono almeno a entrare nel tuo sito? · pesa il 26% · 2 problemi

  • Contenuto visibile all'IA15/100

    Quello che una persona vede sullo schermo arriva anche al crawler che non esegue JavaScript? · pesa il 26% · 4 problemi

  • Struttura e semantica25/100

    Il modello riesce a capire la pagina e a dividerla in frammenti citabili? · pesa il 15% · 6 problemi

  • Dati strutturati14/100

    Stai dicendo all'IA chi sei e cosa offri, in un formato che non deve indovinare? · pesa il 15% · 5 problemi

  • Contenuto che risponde5/100

    Ci sono risposte concrete che un'IA può prendere e citare così come sono? · pesa il 12% · 6 problemi

  • Tecnico71/100

    Velocità, trasporto e igiene di base del server. · pesa il 6% · 2 problemi

Accesso dei motori di ricerca IA

Motore di ricerca IArobots.txtServer
ChatGPT SearchOAI-SearchBotConsentitoHTTP 200
ChatGPT (navigazione dal vivo)ChatGPT-UserConsentitoHTTP 200
OpenAI GPTBotGPTBotBloccatoDisallow: /HTTP 200
Anthropic ClaudeBotClaudeBotConsentitoHTTP 200
Claude SearchClaude-SearchBotConsentitoHTTP 200
Claude (navigazione dal vivo)Claude-UserConsentitoHTTP 200
PerplexityPerplexityBotConsentitoHTTP 200
Google GeminiGoogle-ExtendedConsentitoHTTP 200
Apple IntelligenceApplebot-ExtendedConsentitoHTTP 200
Meta AImeta-externalagentConsentitoHTTP 200
Copilot / Bing (fonte di molte IA)BingbotConsentitoHTTP 200

Cosa misura Google sul tuo sito

Lighthouse · PageSpeed Insights · mobile

Prestazioni
38
Accessibilità
91
Best practice
100
SEO
83
Elemento più grande visibile (LCP)
4,1 s
Primo contenuto visibile (FCP)
2,6 s
Tempo di blocco totale (TBT)
620 ms
Spostamento cumulativo del layout (CLS)
0,02
Indice di velocità
5,8 s

Questi valori cambiano con la rete e con il server. Servono a confrontare il prima e il dopo di una modifica, non a inseguire un 100 esatto. Non contano nel tuo punteggio di visibilità IA.

Tutti i 25 problemi e come correggerli

Critico

L'IA vede solo lo 0% del tuo sito

Una persona legge 160 parole sullo schermo; un crawler di IA ne riceve 0. La differenza è contenuto generato nel browser.

Perché ti penalizza

Quando un modello decide chi citare, confronta i contenuti che è riuscito a leggere. Se gli manca metà della tua pagina, gareggi con metà dei tuoi argomenti.

Come si corregge

Sposta il contenuto principale sul rendering lato server: testi, prezzi, schede prodotto, FAQ e link di navigazione. Lascia al client solo le parti interattive (carrelli, filtri, mappe).

Critico

Solo 0 parole arrivano all'IA

L'HTML restituito dal server contiene 0 parole di testo reale, contro le 160 che una persona vede sullo schermo.

Perché ti penalizza

I modelli hanno bisogno di testo per ricavarne una risposta e citarti. Con meno di 300 parole hanno poco su cui lavorare.

Come si corregge

Renderizza il contenuto sul server (SSR/SSG) o pre-renderizza l'HTML: l'IA deve ricevere il testo già scritto nella risposta, non un contenitore vuoto.

Critico

C'è contenuto che l'IA non arriva mai a leggere

Questi testi si vedono sullo schermo ma non sono nell'HTML che riceve un crawler: • Bike repair in Portland • Full service in 24 hours. • We collect your bike from home and bring it back ready to ride. • Gear and brake adjustment, wheel truing, lubrication and a bolt check. • New 11 or 12-speed chain, with a check of cassette wear. • Bleed on both brakes, new pads and lever adjustment. • We assemble it and set it up for your size. • Over 3,000 bikes serviced since 2016.

Perché ti penalizza

GPTBot, ClaudeBot e PerplexityBot leggono l'HTML così come arriva. Non aspettano che il tuo JavaScript venga eseguito. Per loro, tutto quello che vedi sopra è letteralmente invisibile.

Come si corregge

Servi quel contenuto dal server. A seconda del tuo stack: • Next.js: usa i Server Components o getStaticProps/generateStaticParams invece di useEffect + fetch. • Nuxt: ssr: true e useAsyncData invece di onMounted. • SPA React/Vue pura: aggiungi il pre-rendering (vite-plugin-prerender, react-snap) o passa all'SSR. • CMS con widget JS: sostituisci il widget con HTML statico o inserisci il testo direttamente nel contenuto. Verifica il risultato con: curl -s http://harborcyclery.example/ | grep -i "un pezzo del testo"

Cosa abbiamo trovato sul tuo sito
Bike repair in Portland
---
Full service in 24 hours.
---
We collect your bike from home and bring it back ready to ride.
---
Gear and brake adjustment, wheel truing, lubrication and a bolt check.
---
New 11 or 12-speed chain, with a check of cassette wear.

Grave

Manca l'intestazione H1

L'HTML grezzo non contiene nessun <h1>.

Perché ti penalizza

L'H1 dice al modello qual è l'argomento principale. Senza (o con più di uno), la pagina perde il focus e il modello non sa cosa sta riassumendo.

Come si corregge

Aggiungi un solo <h1> con l'argomento principale della pagina, scritto come lo direbbe un cliente.

Grave

La pagina non ha intestazioni

Nell'HTML servito non c'è nessuna intestazione H1–H6.

Perché ti penalizza

Le intestazioni sono i punti in cui un modello taglia la pagina in frammenti citabili. Senza, il tuo contenuto è un muro di testo e viene citato tutto intero o per niente.

Come si corregge

Struttura il contenuto con un H1 e diversi H2/H3, ognuno formulato come la domanda a cui risponde quella sezione.

Grave

Non hai dati strutturati

L'HTML non contiene nessun <script type="application/ld+json"> con schema.org.

Perché ti penalizza

Il JSON-LD è la carta d'identità che un modello legge senza ambiguità: nome, servizi, prezzi, orari, valutazioni. Senza, l'IA deve tirare a indovinare partendo dal testo, sbaglia più spesso, oppure ti ignora e cita chi le ha semplificato il lavoro.

Come si corregge

Aggiungi nel <head> un blocco come questo, adattando i valori alla tua attività:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "IL TUO MARCHIO",
  "url": "http://harborcyclery.example",
  "logo": "http://harborcyclery.example/logo.png",
  "description": "Cosa fai, per chi e dove, in una frase.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hello@harborcyclery.example",
    "availableLanguage": ["en"]
  }
}
</script>

Grave

Il sito non usa HTTPS

http://harborcyclery.example/ è servito senza cifratura.

Perché ti penalizza

Senza HTTPS perdi posizioni nei motori di ricerca classici, e diversi crawler scartano direttamente il dominio come fonte affidabile.

Come si corregge

Installa un certificato TLS (Let's Encrypt è gratis), reindirizza tutto il traffico HTTP su HTTPS con un 301 e attiva HSTS.

Medio

Nessuna sitemap.xml

http://harborcyclery.example/sitemap.xml non risponde e il robots.txt non ne dichiara nessuna.

Perché ti penalizza

Senza sitemap, un crawler trova solo ciò che è linkato dalla home page. Le pagine più profonde, proprio quelle che rispondono a domande specifiche, non vengono mai indicizzate.

Come si corregge

Genera una sitemap.xml con tutti gli URL pubblici e il loro <lastmod> reale, pubblicala su http://harborcyclery.example/sitemap.xml e dichiarala nel robots.txt con la riga:

Sitemap: http://harborcyclery.example/sitemap.xml

Medio

Nessun contenuto alternativo senza JavaScript

La pagina dipende da JS e non ha un <noscript> con il contenuto essenziale.

Perché ti penalizza

Mentre sistemi il rendering lato server, un <noscript> fatto bene dà all'IA almeno il testo principale invece di niente.

Come si corregge

Come toppa temporanea, metti dentro <noscript> il titolo, i due o tre paragrafi chiave e i link principali. La vera correzione resta servire l'HTML già renderizzato.

Medio

Il titolo non è ottimizzato

Il <title> è lungo 14 caratteri: «Harbor Cyclery».

Perché ti penalizza

Il titolo è la prima cosa che un modello legge per capire di cosa parla la pagina e se risponde alla domanda dell'utente.

Come si corregge

Scrivi un titolo di 50–60 caratteri nella forma «Cosa offri | Marchio», con le parole che userebbe un tuo cliente per fare la domanda a un'IA.

Cosa abbiamo trovato sul tuo sito
Harbor Cyclery

Medio

Manca la meta description

L'HTML non contiene <meta name="description">.

Perché ti penalizza

Molti sistemi di IA usano la descrizione come riassunto di riferimento della pagina, prima ancora di leggerne il contenuto.

Come si corregge

Aggiungi una descrizione di 140–160 caratteri che dica in una frase cosa fai, per chi e dove:

<meta name="description" content="…">

Medio

La pagina non usa HTML semantico

Non ci sono <main>, <article>, <nav> né <header>: è tutto <div>.

Perché ti penalizza

I tag semantici dicono all'estrattore quale parte è contenuto e quale è menu o piè di pagina. Senza, il tuo testo si mescola con la navigazione e il modello ti cita peggio.

Come si corregge

Racchiudi il contenuto principale in <main>, ogni blocco autonomo in <article>, il menu in <nav> e il piè di pagina in <footer>. Si tratta solo di sostituire dei div con tag che hanno un significato, senza toccare gli stili.

Medio

Nessun link nell'HTML servito

Il documento non contiene nessun <a href>.

Perché ti penalizza

Se la navigazione è generata con JavaScript, un crawler di IA non trova il resto del tuo sito: indicizza solo questa pagina isolata.

Come si corregge

Servi il menu come veri link <a href> nell'HTML, non come pulsanti con onClick.

Medio

L'IA non sa chi sei

Non c'è nessuno schema di tipo Organization, LocalBusiness o Person.

Perché ti penalizza

Le IA consigliano entità, non URL sparsi. Se non dichiari nome, ambito di attività e recapiti, non ti collegano né al tuo settore né alla tua città.

Come si corregge

Aggiungi un blocco Organization (o LocalBusiness se ricevi i clienti in una sede fisica) con name, url, logo, description, sameAs (i tuoi profili social) e, se serve, address e areaServed.

Medio

I tuoi sottotitoli non rispondono alle domande che fa la gente

La pagina non ha sottotitoli H2/H3.

Perché ti penalizza

Le IA cercano il pezzo di testo che risponde alla lettera alla domanda dell'utente. Un H2 che dice «I nostri servizi» non corrisponde a niente; «Quanto costa ristrutturare un bagno a Bologna?» corrisponde a una domanda reale.

Come si corregge

Riscrivi almeno 3 sottotitoli come la domanda esatta che ti farebbe un cliente e rispondi nel primo paragrafo subito sotto, in 2–3 frasi. Esempio: «## Quanto dura la ristrutturazione di un bagno?» seguito da «Dalle due alle tre settimane per un bagno standard di 5 m²…».

Medio

Manca una risposta diretta nelle prime righe

La pagina inizia senza un paragrafo che riassuma di cosa parla.

Perché ti penalizza

Un modello di solito cita le prime 40–60 parole che rispondono alla domanda. Se apri con riempitivi di marketing, non gli resta niente da estrarre.

Come si corregge

Apri la pagina con un paragrafo di 40–70 parole che risponda alla lettera: cos'è, per chi è, quanto costa o quanto ci vuole. I fronzoli dopo.

Medio

Non hai un blocco di domande frequenti

Non è stata rilevata nessuna sezione di domande frequenti.

Perché ti penalizza

Una FAQ marcata è il formato domanda-risposta che i motori di ricerca IA usano direttamente: ogni coppia è una risposta pronta da servire, con il tuo marchio accanto.

Come si corregge

Aggiungi 5–8 domande reali dei clienti con la loro risposta (2–4 frasi ciascuna) e marcale così:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Quanto costa il servizio?",
    "acceptedAnswer": {"@type": "Answer", "text": "Da 300 € per un progetto standard…"}
  }]
}
</script>

Usa le domande che ti arrivano già via email o WhatsApp: sono proprio quelle che la gente scrive all'IA.

Lieve

Nessun file llms.txt

http://harborcyclery.example/llms.txt non esiste.

Perché ti penalizza

llms.txt è uno standard emergente (non tutti i motori lo usano ancora) per dire a un modello quali pagine del tuo sito contano e in che ordine leggerle. Ci vogliono dieci minuti e sarai già pronto quando si diffonderà.

Come si corregge

Crea http://harborcyclery.example/llms.txt in Markdown:

# harborcyclery.example

> Una frase che dica cosa fa la tua attività e a chi si rivolge.

## Pagine principali
- [Servizi](http://harborcyclery.example/services): cosa offri, esattamente.
- [Prezzi](http://harborcyclery.example/pricing): tariffe e piani.
- [Contatti](http://harborcyclery.example/contact): come lavorare con te.

Lieve

Mancano metadati Open Graph

Tag mancanti: og:title, og:description, og:image.

Perché ti penalizza

Diversi assistenti usano Open Graph come riassunto veloce quando mostrano il tuo link dentro una risposta.

Come si corregge

Aggiungi nel <head>:

<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://harborcyclery.example/cover.jpg">
<meta property="og:url" content="http://harborcyclery.example/">
<meta property="og:type" content="website">

Lieve

Manca la scheda di anteprima per i tuoi link

Non è stato trovato nessun <meta name="twitter:card">.

Perché ti penalizza

Quando qualcuno incolla il tuo link su X, Slack, WhatsApp o Discord, senza scheda compare come una riga di testo grigio che nessuno clicca. Con un'immagine occupa dieci volte lo spazio e viene condiviso molto di più.

Come si corregge

Aggiungi nel <head>:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://harborcyclery.example/twitter-image.png">

L'immagine deve essere di 1200×630 px. Con Next.js puoi generarla dal codice con un file opengraph-image.tsx e uno twitter-image.tsx, così non diventa mai obsoleta.

Lieve

Manca l'URL canonico

La pagina non dichiara nessun <link rel="canonical">.

Perché ti penalizza

Senza canonical, lo stesso contenuto servito su più URL (con e senza www, con parametri, in http e https) conta come pagine diverse e la tua autorevolezza si divide tra tutte.

Come si corregge

Aggiungi nel <head>: <link rel="canonical" href="http://harborcyclery.example/">

Lieve

Pochi contenuti in elenchi o tabelle

La pagina ha solo 0 voci di elenco e 0 tabelle.

Perché ti penalizza

Elenchi e tabelle sono il formato che un modello copia con più fedeltà, perché arrivano già divisi in unità confrontabili (prezzi, passaggi, caratteristiche).

Come si corregge

Trasforma in elenchi i passaggi del tuo processo e ciò che include ogni servizio, e in tabella il confronto tra piani o prezzi. Si tratta solo di riformattare quello che hai già scritto.

Lieve

Il contenuto non offre dati concreti

In tutta la pagina ci sono solo 0 cifre con un'unità di misura.

Perché ti penalizza

Le IA preferiscono citare affermazioni verificabili. «Siamo leader del settore» non si può citare; «consegniamo in 48 ore e l'installazione costa 149 €» sì, e il dato si porta dietro il tuo marchio.

Come si corregge

Aggiungi numeri reali: prezzi di partenza, tempi di consegna, anni di esperienza, numero di progetti, percentuali di risparmio. Un dato per sezione.

Lieve

Il contenuto sembra datato

Non ci sono date né riferimenti all'anno in corso.

Perché ti penalizza

Tra due fonti che dicono la stessa cosa, i motori di ricerca IA citano quella che dimostra di essere recente. Una pagina senza riferimenti temporali viene considerata vecchia.

Come si corregge

Rivedi e aggiorna il contenuto, mostra sulla pagina la data dell'ultima revisione e aggiorna "dateModified" nel JSON-LD. Se i tuoi dati cambiano poco, scrivi comunque «Aggiornato al 2026» dove è vero, e mai se non l'hai rivisto. Pagina analizzata: /

Lieve

L'HTML viene inviato senza compressione

La risposta non include l'header Content-Encoding.

Perché ti penalizza

La compressione riduce l'HTML del 70–80%. Meno byte significa meno tempo di download per pagina, e più pagine del tuo sito scansionate con lo stesso budget.

Come si corregge

Attiva gzip o brotli sul tuo server (Nginx: gzip on; Apache: mod_deflate) oppure mettiti dietro una CDN che lo faccia per te.

E la tua concorrenza?

Quando qualcuno chiede a un'IA del tuo settore, il tuo sito non compete con un ideale: compete con i siti di tutti gli altri. Analizzane due e vedilo con i tuoi occhi. È incluso nel tuo report.

SitoPunteggio
1bristolbikeworks.example588 parole (95%) · nessun motore di ricerca IA bloccato79/100 · B
2quaysidecycles.example231 parole (68%) · 1 motore di ricerca IA bloccato55/100 · C
3harborcyclery.exampletu0 parole (0%) · nessun motore di ricerca IA bloccato36/100 · F

Arrivi 3° su 3. Davanti alla stessa domanda, un'IA ha altri 2 siti che legge meglio del tuo.

Portalo con te

Due modi per sistemarlo

Opzione A · tu e la tua IA

Lo sistemi tu, senza pagare altro

Copia il prompt qui sotto e incollalo in Claude, ChatGPT, Cursor o Copilot. Contiene tutta la diagnosi, quindi l'IA non ha bisogno di vedere il tuo sito: ti dice quale file toccare e finisce con i comandi per verificare che abbia funzionato.

Opzione B · ce ne occupiamo noi

Lo sistemiamo insieme

Se preferisci non combattere con SSR, schema e robots.txt, mandaci questo report e lo implementiamo noi. Prima ti diciamo cosa faremmo e quanto costa.

Scrivici a hello@gettarsier.com

Incolla questo nella tua IA e lascia che sistemi tutto

Questo prompt contiene tutta la diagnosi: il contesto del tuo sito, i problemi ordinati per impatto, le istruzioni per correggerli e i comandi per verificare che abbia funzionato. L'IA non ha bisogno di vedere il tuo sito.

Quale usare:Nella tua lingua si legge in modo più naturale; in inglese consuma circa il 25% di token in meno, il che aiuta se la tua IA si paga a consumo o resta a corto di contesto.

Prompt per la tua IA562 righe
> Rispondi in italiano e scrivi in italiano anche gli eventuali commenti nel codice.

# Compito: rendere il mio sito leggibile per i motori di ricerca IA

Agisci come un ingegnere specializzato in SEO tecnica e in GEO (ottimizzazione per i motori generativi: ChatGPT Search, Claude, Perplexity, Google AI Overviews, Copilot).

## Contesto

- Sito analizzato: http://harborcyclery.example/
- Data dell'analisi: 24/09/2026
- Punteggio attuale di visibilità per l'IA: 36/100 (voto F)
- Parità persona/IA: un visitatore vede 160 parole, mentre un crawler di IA ne riceve 0 (0%).
- Titolo attuale: "Harbor Cyclery"
- Dati strutturati presenti: nessuno

## Punteggio per area

- Accesso dei crawler di IA: 83/100
- Contenuto visibile all'IA: 15/100
- Struttura e semantica: 25/100
- Dati strutturati: 14/100
- Contenuti che danno risposte: 5/100
- Aspetti tecnici: 71/100

## Con chi sono in concorrenza

Davanti alla stessa domanda, un'IA sceglie tra questi siti. I numeri vengono da un'analisi reale fatta con gli stessi criteri:

- bristolbikeworks.example: 79/100, 588 parole leggibili
- quaysidecycles.example: 55/100, 231 parole leggibili
- harborcyclery.example (il mio sito): 36/100, 0 parole leggibili

## Cosa ti chiedo di fare

Risolvi i problemi elencati qui sotto **nell'ordine in cui compaiono** (sono ordinati per impatto reale sulla possibilità che un'IA mi citi o no).
Per ogni problema:

1. Trova nel mio progetto il file o il template da cui ha origine.
2. Applica la modifica adattandola al mio stack reale (non copiare gli esempi alla lettera: usali come riferimento).
3. Spiegami in una frase cosa hai cambiato e perché.
4. Dimmi come verificare che abbia funzionato.

Lavora per fasi, non tutto insieme: prima i problemi bloccanti. Alla fine di ogni fase, riassumi cosa hai cambiato e l'esito delle verifiche, e aspetta la mia conferma prima di passare alla successiva.

Non sono riuscito a rilevare la tecnologia del sito dall'esterno. Prima di modificare qualsiasi cosa, controllala nel progetto (package.json, file di configurazione) e dimmela; se non hai accesso al codice, chiedimela e aspetta la mia risposta.

Attenzione: l'HTML servito dal sito è quasi vuoto, e molti punti dell'elenco (H1, titoli, link, HTML semantico, meta tag) possono esserne una conseguenza. Quando il contenuto arriverà renderizzato dal server, ricontrolla l'HTML servito e correggi solo ciò che non funziona ancora. Se l'elenco include la soluzione temporanea con <noscript>, saltala: con l'HTML renderizzato non serve.

Se qualcosa richiede una decisione di business (prezzi, testi commerciali, recapiti reali), non inventarla: chiedimelo.

## Bloccanti (finché non sono risolti, il resto non conta)

### 1. L'IA vede solo lo 0% del tuo sito

**Gravità:** Critica

**Cosa succede:** Una persona legge 160 parole sullo schermo; un crawler di IA ne riceve 0. La differenza è contenuto generato nel browser.

**Perché è importante:** Quando un modello decide chi citare, confronta i contenuti che è riuscito a leggere. Se gli manca metà della tua pagina, gareggi con metà dei tuoi argomenti.

**Cosa bisogna fare:**

Sposta il contenuto principale sul rendering lato server: testi, prezzi, schede prodotto, FAQ e link di navigazione. Lascia al client solo le parti interattive (carrelli, filtri, mappe).

### 2. Solo 0 parole arrivano all'IA

**Gravità:** Critica

**Cosa succede:** L'HTML restituito dal server contiene 0 parole di testo reale, contro le 160 che una persona vede sullo schermo.

**Perché è importante:** I modelli hanno bisogno di testo per ricavarne una risposta e citarti. Con meno di 300 parole hanno poco su cui lavorare.

**Cosa bisogna fare:**

Renderizza il contenuto sul server (SSR/SSG) o pre-renderizza l'HTML: l'IA deve ricevere il testo già scritto nella risposta, non un contenitore vuoto.

### 3. C'è contenuto che l'IA non arriva mai a leggere

**Gravità:** Critica

**Cosa succede:** Questi testi si vedono sullo schermo ma non sono nell'HTML che riceve un crawler:

• Bike repair in Portland
• Full service in 24 hours.
• We collect your bike from home and bring it back ready to ride.
• Gear and brake adjustment, wheel truing, lubrication and a bolt check.
• New 11 or 12-speed chain, with a check of cassette wear.
• Bleed on both brakes, new pads and lever adjustment.
• We assemble it and set it up for your size.
• Over 3,000 bikes serviced since 2016.

**Perché è importante:** GPTBot, ClaudeBot e PerplexityBot leggono l'HTML così come arriva. Non aspettano che il tuo JavaScript venga eseguito. Per loro, tutto quello che vedi sopra è letteralmente invisibile.

**Cosa bisogna fare:**

Servi quel contenuto dal server. A seconda del tuo stack:
• Next.js: usa i Server Components o getStaticProps/generateStaticParams invece di useEffect + fetch.
• Nuxt: ssr: true e useAsyncData invece di onMounted.
• SPA React/Vue pura: aggiungi il pre-rendering (vite-plugin-prerender, react-snap) o passa all'SSR.
• CMS con widget JS: sostituisci il widget con HTML statico o inserisci il testo direttamente nel contenuto.
Verifica il risultato con: curl -s http://harborcyclery.example/ | grep -i "un pezzo del testo"

<details><summary>Frammento rilevato sul sito</summary>

```
Bike repair in Portland
---
Full service in 24 hours.
---
We collect your bike from home and bring it back ready to ride.
---
Gear and brake adjustment, wheel truing, lubrication and a bolt check.
---
New 11 or 12-speed chain, with a check of cassette wear.
```

</details>

## Importanti

### 1. Manca l'intestazione H1

**Gravità:** Alta

**Cosa succede:** L'HTML grezzo non contiene nessun <h1>.

**Perché è importante:** L'H1 dice al modello qual è l'argomento principale. Senza (o con più di uno), la pagina perde il focus e il modello non sa cosa sta riassumendo.

**Cosa bisogna fare:**

Aggiungi un solo <h1> con l'argomento principale della pagina, scritto come lo direbbe un cliente.

### 2. La pagina non ha intestazioni

**Gravità:** Alta

**Cosa succede:** Nell'HTML servito non c'è nessuna intestazione H1–H6.

**Perché è importante:** Le intestazioni sono i punti in cui un modello taglia la pagina in frammenti citabili. Senza, il tuo contenuto è un muro di testo e viene citato tutto intero o per niente.

**Cosa bisogna fare:**

Struttura il contenuto con un H1 e diversi H2/H3, ognuno formulato come la domanda a cui risponde quella sezione.

### 3. Non hai dati strutturati

**Gravità:** Alta

**Cosa succede:** L'HTML non contiene nessun <script type="application/ld+json"> con schema.org.

**Perché è importante:** Il JSON-LD è la carta d'identità che un modello legge senza ambiguità: nome, servizi, prezzi, orari, valutazioni. Senza, l'IA deve tirare a indovinare partendo dal testo, sbaglia più spesso, oppure ti ignora e cita chi le ha semplificato il lavoro.

**Cosa bisogna fare:**

Aggiungi nel <head> un blocco come questo, adattando i valori alla tua attività:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Organization",
  "name": "IL TUO MARCHIO",
  "url": "http://harborcyclery.example",
  "logo": "http://harborcyclery.example/logo.png",
  "description": "Cosa fai, per chi e dove, in una frase.",
  "sameAs": ["https://www.linkedin.com/company/…", "https://www.instagram.com/…"],
  "contactPoint": {
    "@type": "ContactPoint",
    "contactType": "customer service",
    "email": "hello@harborcyclery.example",
    "availableLanguage": ["en"]
  }
}
</script>

### 4. Il sito non usa HTTPS

**Gravità:** Alta

**Cosa succede:** http://harborcyclery.example/ è servito senza cifratura.

**Perché è importante:** Senza HTTPS perdi posizioni nei motori di ricerca classici, e diversi crawler scartano direttamente il dominio come fonte affidabile.

**Cosa bisogna fare:**

Installa un certificato TLS (Let's Encrypt è gratis), reindirizza tutto il traffico HTTP su HTTPS con un 301 e attiva HSTS.

## Miglioramenti aggiuntivi

### 1. Nessuna sitemap.xml

**Gravità:** Media

**Cosa succede:** http://harborcyclery.example/sitemap.xml non risponde e il robots.txt non ne dichiara nessuna.

**Perché è importante:** Senza sitemap, un crawler trova solo ciò che è linkato dalla home page. Le pagine più profonde, proprio quelle che rispondono a domande specifiche, non vengono mai indicizzate.

**Cosa bisogna fare:**

Genera una sitemap.xml con tutti gli URL pubblici e il loro <lastmod> reale, pubblicala su http://harborcyclery.example/sitemap.xml e dichiarala nel robots.txt con la riga:
Sitemap: http://harborcyclery.example/sitemap.xml

### 2. Nessun contenuto alternativo senza JavaScript

**Gravità:** Media

**Cosa succede:** La pagina dipende da JS e non ha un <noscript> con il contenuto essenziale.

**Perché è importante:** Mentre sistemi il rendering lato server, un <noscript> fatto bene dà all'IA almeno il testo principale invece di niente.

**Cosa bisogna fare:**

Come toppa temporanea, metti dentro <noscript> il titolo, i due o tre paragrafi chiave e i link principali. La vera correzione resta servire l'HTML già renderizzato.

### 3. Il titolo non è ottimizzato

**Gravità:** Media

**Cosa succede:** Il <title> è lungo 14 caratteri: «Harbor Cyclery».

**Perché è importante:** Il titolo è la prima cosa che un modello legge per capire di cosa parla la pagina e se risponde alla domanda dell'utente.

**Cosa bisogna fare:**

Scrivi un titolo di 50–60 caratteri nella forma «Cosa offri | Marchio», con le parole che userebbe un tuo cliente per fare la domanda a un'IA.

<details><summary>Frammento rilevato sul sito</summary>

```
Harbor Cyclery
```

</details>

### 4. Manca la meta description

**Gravità:** Media

**Cosa succede:** L'HTML non contiene <meta name="description">.

**Perché è importante:** Molti sistemi di IA usano la descrizione come riassunto di riferimento della pagina, prima ancora di leggerne il contenuto.

**Cosa bisogna fare:**

Aggiungi una descrizione di 140–160 caratteri che dica in una frase cosa fai, per chi e dove:
<meta name="description" content="…">

### 5. La pagina non usa HTML semantico

**Gravità:** Media

**Cosa succede:** Non ci sono <main>, <article>, <nav> né <header>: è tutto <div>.

**Perché è importante:** I tag semantici dicono all'estrattore quale parte è contenuto e quale è menu o piè di pagina. Senza, il tuo testo si mescola con la navigazione e il modello ti cita peggio.

**Cosa bisogna fare:**

Racchiudi il contenuto principale in <main>, ogni blocco autonomo in <article>, il menu in <nav> e il piè di pagina in <footer>. Si tratta solo di sostituire dei div con tag che hanno un significato, senza toccare gli stili.

### 6. Nessun link nell'HTML servito

**Gravità:** Media

**Cosa succede:** Il documento non contiene nessun <a href>.

**Perché è importante:** Se la navigazione è generata con JavaScript, un crawler di IA non trova il resto del tuo sito: indicizza solo questa pagina isolata.

**Cosa bisogna fare:**

Servi il menu come veri link <a href> nell'HTML, non come pulsanti con onClick.

### 7. L'IA non sa chi sei

**Gravità:** Media

**Cosa succede:** Non c'è nessuno schema di tipo Organization, LocalBusiness o Person.

**Perché è importante:** Le IA consigliano entità, non URL sparsi. Se non dichiari nome, ambito di attività e recapiti, non ti collegano né al tuo settore né alla tua città.

**Cosa bisogna fare:**

Aggiungi un blocco Organization (o LocalBusiness se ricevi i clienti in una sede fisica) con name, url, logo, description, sameAs (i tuoi profili social) e, se serve, address e areaServed.

### 8. I tuoi sottotitoli non rispondono alle domande che fa la gente

**Gravità:** Media

**Cosa succede:** La pagina non ha sottotitoli H2/H3.

**Perché è importante:** Le IA cercano il pezzo di testo che risponde alla lettera alla domanda dell'utente. Un H2 che dice «I nostri servizi» non corrisponde a niente; «Quanto costa ristrutturare un bagno a Bologna?» corrisponde a una domanda reale.

**Cosa bisogna fare:**

Riscrivi almeno 3 sottotitoli come la domanda esatta che ti farebbe un cliente e rispondi nel primo paragrafo subito sotto, in 2–3 frasi. Esempio: «## Quanto dura la ristrutturazione di un bagno?» seguito da «Dalle due alle tre settimane per un bagno standard di 5 m²…».

### 9. Manca una risposta diretta nelle prime righe

**Gravità:** Media

**Cosa succede:** La pagina inizia senza un paragrafo che riassuma di cosa parla.

**Perché è importante:** Un modello di solito cita le prime 40–60 parole che rispondono alla domanda. Se apri con riempitivi di marketing, non gli resta niente da estrarre.

**Cosa bisogna fare:**

Apri la pagina con un paragrafo di 40–70 parole che risponda alla lettera: cos'è, per chi è, quanto costa o quanto ci vuole. I fronzoli dopo.

### 10. Non hai un blocco di domande frequenti

**Gravità:** Media

**Cosa succede:** Non è stata rilevata nessuna sezione di domande frequenti.

**Perché è importante:** Una FAQ marcata è il formato domanda-risposta che i motori di ricerca IA usano direttamente: ogni coppia è una risposta pronta da servire, con il tuo marchio accanto.

**Cosa bisogna fare:**

Aggiungi 5–8 domande reali dei clienti con la loro risposta (2–4 frasi ciascuna) e marcale così:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [{
    "@type": "Question",
    "name": "Quanto costa il servizio?",
    "acceptedAnswer": {"@type": "Answer", "text": "Da 300 € per un progetto standard…"}
  }]
}
</script>

Usa le domande che ti arrivano già via email o WhatsApp: sono proprio quelle che la gente scrive all'IA.

### 11. Nessun file llms.txt

**Gravità:** Bassa

**Cosa succede:** http://harborcyclery.example/llms.txt non esiste.

**Perché è importante:** llms.txt è uno standard emergente (non tutti i motori lo usano ancora) per dire a un modello quali pagine del tuo sito contano e in che ordine leggerle. Ci vogliono dieci minuti e sarai già pronto quando si diffonderà.

**Cosa bisogna fare:**

Crea http://harborcyclery.example/llms.txt in Markdown:

# harborcyclery.example

> Una frase che dica cosa fa la tua attività e a chi si rivolge.

## Pagine principali
- [Servizi](http://harborcyclery.example/services): cosa offri, esattamente.
- [Prezzi](http://harborcyclery.example/pricing): tariffe e piani.
- [Contatti](http://harborcyclery.example/contact): come lavorare con te.

### 12. Mancano metadati Open Graph

**Gravità:** Bassa

**Cosa succede:** Tag mancanti: og:title, og:description, og:image.

**Perché è importante:** Diversi assistenti usano Open Graph come riassunto veloce quando mostrano il tuo link dentro una risposta.

**Cosa bisogna fare:**

Aggiungi nel <head>:
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="http://harborcyclery.example/cover.jpg">
<meta property="og:url" content="http://harborcyclery.example/">
<meta property="og:type" content="website">

### 13. Manca la scheda di anteprima per i tuoi link

**Gravità:** Bassa

**Cosa succede:** Non è stato trovato nessun <meta name="twitter:card">.

**Perché è importante:** Quando qualcuno incolla il tuo link su X, Slack, WhatsApp o Discord, senza scheda compare come una riga di testo grigio che nessuno clicca. Con un'immagine occupa dieci volte lo spazio e viene condiviso molto di più.

**Cosa bisogna fare:**

Aggiungi nel <head>:
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="http://harborcyclery.example/twitter-image.png">

L'immagine deve essere di 1200×630 px. Con Next.js puoi generarla dal codice con un file opengraph-image.tsx e uno twitter-image.tsx, così non diventa mai obsoleta.

### 14. Manca l'URL canonico

**Gravità:** Bassa

**Cosa succede:** La pagina non dichiara nessun <link rel="canonical">.

**Perché è importante:** Senza canonical, lo stesso contenuto servito su più URL (con e senza www, con parametri, in http e https) conta come pagine diverse e la tua autorevolezza si divide tra tutte.

**Cosa bisogna fare:**

Aggiungi nel <head>: <link rel="canonical" href="http://harborcyclery.example/">

### 15. Pochi contenuti in elenchi o tabelle

**Gravità:** Bassa

**Cosa succede:** La pagina ha solo 0 voci di elenco e 0 tabelle.

**Perché è importante:** Elenchi e tabelle sono il formato che un modello copia con più fedeltà, perché arrivano già divisi in unità confrontabili (prezzi, passaggi, caratteristiche).

**Cosa bisogna fare:**

Trasforma in elenchi i passaggi del tuo processo e ciò che include ogni servizio, e in tabella il confronto tra piani o prezzi. Si tratta solo di riformattare quello che hai già scritto.

### 16. Il contenuto non offre dati concreti

**Gravità:** Bassa

**Cosa succede:** In tutta la pagina ci sono solo 0 cifre con un'unità di misura.

**Perché è importante:** Le IA preferiscono citare affermazioni verificabili. «Siamo leader del settore» non si può citare; «consegniamo in 48 ore e l'installazione costa 149 €» sì, e il dato si porta dietro il tuo marchio.

**Cosa bisogna fare:**

Aggiungi numeri reali: prezzi di partenza, tempi di consegna, anni di esperienza, numero di progetti, percentuali di risparmio. Un dato per sezione.

### 17. Il contenuto sembra datato

**Gravità:** Bassa

**Cosa succede:** Non ci sono date né riferimenti all'anno in corso.

**Perché è importante:** Tra due fonti che dicono la stessa cosa, i motori di ricerca IA citano quella che dimostra di essere recente. Una pagina senza riferimenti temporali viene considerata vecchia.

**Cosa bisogna fare:**

Rivedi e aggiorna il contenuto, mostra sulla pagina la data dell'ultima revisione e aggiorna "dateModified" nel JSON-LD. Se i tuoi dati cambiano poco, scrivi comunque «Aggiornato al 2026» dove è vero, e mai se non l'hai rivisto. Pagina analizzata: /

### 18. L'HTML viene inviato senza compressione

**Gravità:** Bassa

**Cosa succede:** La risposta non include l'header Content-Encoding.

**Perché è importante:** La compressione riduce l'HTML del 70–80%. Meno byte significa meno tempo di download per pagina, e più pagine del tuo sito scansionate con lo stesso budget.

**Cosa bisogna fare:**

Attiva gzip o brotli sul tuo server (Nginx: gzip on; Apache: mod_deflate) oppure mettiti dietro una CDN che lo faccia per te.

## Contenuto che oggi l'IA non riesce a leggere

Questi testi si vedono nel browser ma NON sono nell'HTML restituito dal server. Assicurati che, alla fine, compaiano tutti nell'HTML iniziale:

- "Bike repair in Portland"
- "Full service in 24 hours."
- "We collect your bike from home and bring it back ready to ride."
- "Gear and brake adjustment, wheel truing, lubrication and a bolt check."
- "New 11 or 12-speed chain, with a check of cassette wear."
- "Bleed on both brakes, new pads and lever adjustment."
- "We assemble it and set it up for your size."
- "Over 3,000 bikes serviced since 2016."
- "A fixed quote before we touch anything."
- "Six-month guarantee on every repair."

## Come creare l'immagine che si vede quando il link viene condiviso

Il tuo link ha bisogno di un'immagine di 1200×630 px per Open Graph (Facebook, LinkedIn, WhatsApp, Slack) e di una per la Twitter Card (X). Può essere lo stesso file.

**Se il progetto usa Next.js (App Router), generale dal codice**, così non diventano mai obsolete. Crea `app/opengraph-image.tsx`:

```tsx
import { ImageResponse } from "next/og";

export const alt = "Harbor Cyclery";
export const size = { width: 1200, height: 630 };
export const contentType = "image/png";

export default function Image() {
  return new ImageResponse(
    (
      <div
        style={{
          width: "100%",
          height: "100%",
          display: "flex",
          flexDirection: "column",
          justifyContent: "center",
          padding: "80px",
          // Un gradiente in diagonale dà profondità senza bisogno di immagini.
          background: "linear-gradient(135deg, #0b1020 0%, #1b1038 60%, #2a1458 100%)",
          color: "#ffffff",
          fontFamily: "sans-serif",
        }}
      >
        <div style={{ fontSize: 26, opacity: 0.75 }}>harborcyclery.example</div>
        <div style={{ marginTop: 32, fontSize: 64, fontWeight: 700, lineHeight: 1.08, letterSpacing: -2 }}>
          LA TUA FRASE PRINCIPALE, LA STESSA DEL TITOLO H1
        </div>
        <div style={{ marginTop: 34, fontSize: 28, color: "#c4b5fd", maxWidth: 940 }}>
          Una riga di supporto: cosa offri e a chi.
        </div>
      </div>
    ),
    size,
  );
}
```

Poi crea `app/twitter-image.tsx` che riesporta la stessa cosa, così le due schede coincidono:

```tsx
export { default, alt, size, contentType } from "../opengraph-image";
```

A quel punto Next genera da solo i tag `og:image` e `twitter:image`. Imposta `metadataBase: new URL("https://TUO-DOMINIO")` nel root layout perché gli URL escano assoluti: quelli relativi li ignorano quasi tutti i crawler.

**Se il progetto non usa Next.js**, esporta un PNG 1200×630 sotto 1 MB, mettilo in `/og-image.png` e dichiara i tag a mano:

```html
<meta property="og:title" content="…">
<meta property="og:description" content="…">
<meta property="og:image" content="https://TUO-DOMINIO/og-image.png">
<meta property="og:image:width" content="1200">
<meta property="og:image:height" content="630">
<meta property="og:url" content="https://TUO-DOMINIO/">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="…">
<meta name="twitter:description" content="…">
<meta name="twitter:image" content="https://TUO-DOMINIO/og-image.png">
```

Le regole che fanno la differenza:

- Esattamente 1200×630 px. Le altre proporzioni vengono ritagliate e il testo si perde.
- Leggibile in miniatura: la frase a 60 px o più, tre righe al massimo.
- L'immagine ripete la promessa della pagina. Non è un logo su uno sfondo.
- URL assoluti e con il protocollo. Un percorso relativo fallisce senza avvisare.
- Sotto 1 MB, in PNG o JPEG. Il WebP non lo leggono ancora tutti gli scraper.
- Controllala su https://cards-dev.twitter.com/validator e incollando il link in una chat di Slack o WhatsApp con te stesso.

## Come verificare che sia risolto

Quando hai finito, esegui questi controlli e mostrami il risultato:

```bash
# 1. Questo è LETTERALMENTE ciò che vede un crawler di IA (senza eseguire JavaScript).
curl -sL "http://harborcyclery.example/" | sed 's/<script[^>]*>.*<\/script>//g; s/<[^>]*>//g' | tr -s ' \n' | head -60

# 2. Il server non deve bloccare i bot di IA (tutti devono restituire 200).
curl -sL -o /dev/null -w "OAI-SearchBot: %{http_code}\n" -A "OAI-SearchBot" "http://harborcyclery.example/"
curl -sL -o /dev/null -w "Claude-SearchBot: %{http_code}\n" -A "Claude-SearchBot" "http://harborcyclery.example/"
curl -sL -o /dev/null -w "PerplexityBot: %{http_code}\n" -A "PerplexityBot" "http://harborcyclery.example/"

# 3. robots.txt non deve contenere un Disallow che riguardi questi agenti.
curl -s "http://harborcyclery.example/robots.txt"
```

L'obiettivo è che il testo del punto 1 contenga tutto il contenuto importante della pagina. Se lì non compare, per l'IA non esiste.

---

Report generato da Tarsier · http://harborcyclery.example/ · 36/100

Come verificare che abbia funzionato

Sistemare è solo metà del lavoro. Questi sono i passaggi per sapere che ogni correzione è andata a segno, nell'ordine in cui conviene farli, e solo quelli che la tua analisi richiede. Ognuno finisce con una riga che descrive come appare quando è tutto a posto: quando la vedi, lo spunti.

  1. Registra il tuo sito su Google Search Console e su Bing Webmaster Tools

    Sono le due finestre da cui si vede il tuo sito come lo vedono i motori di ricerca. Quasi tutti i controlli qui sotto passano da una delle due, e sono gratis.

    1. Vai su search.google.com/search-console e fai clic su «Aggiungi proprietà».
    2. Scegli «Dominio» (non «Prefisso URL»): così copre il sito con e senza www, sia in http sia in https.
    3. Google ti dà un record TXT. Aggiungilo nella zona DNS del tuo dominio, nel pannello del servizio da cui l'hai acquistato, e fai clic su «Verifica». Può volerci qualche minuto.
    4. Poi, su bing.com/webmasters, scegli «Importa da Google Search Console». La verifica è automatica e ti risparmi di rifare tutto. Bing è l'indice da cui attinge Copilot.

    È a posto quando Entrambe le console mostrano il tuo dominio come verificato.

  2. Il tuo contenuto arriva senza eseguire JavaScript

    È il problema più grave della tua analisi: oggi quello che una persona legge sul tuo sito non è nell'HTML che riceve il crawler.

    1. Questa frase è tua e oggi non arriva all'IA: «Bike repair in Portland». Il comando qui sotto la cerca nell'HTML servito, senza browser.
    2. In Search Console, apri «Controllo URL», incolla il tuo indirizzo e fai clic su «Testa URL live».
    3. Quando ha finito, «Visualizza pagina testata» → scheda «HTML». Cerca con Ctrl+F una frase della tua pagina: deve esserci.
    Nel terminale
    curl -s http://harborcyclery.example/ | grep -c -F "Bike repair in Portland"

    È a posto quando Il comando restituisce 1 o più. Se restituisce 0, la frase continua a non arrivare.

  3. C'è una sitemap e i motori di ricerca l'hanno letta

    Il tuo sito non ha una sitemap.xml. Senza, i motori di ricerca trovano le tue pagine quando capita, non quando le pubblichi.

    1. Quasi certamente la tua piattaforma sa già farlo: WordPress la genera da sé in /wp-sitemap.xml, Shopify e Wix in /sitemap.xml.
    2. Aggiungi una riga in fondo al tuo robots.txt: «Sitemap: http://harborcyclery.example/sitemap.xml» (o l'indirizzo che ti indica la tua piattaforma).
    3. In Search Console, «Sitemap» → incolla l'indirizzo → «Invia». In Bing Webmaster Tools, lo stesso dalla sezione «Sitemap».
    Nel terminale
    curl -s -o /dev/null -w "%{http_code}\n" http://harborcyclery.example/sitemap.xml

    È a posto quando Il comando restituisce 200, e in Search Console la sitemap compare con lo stato «Operazione riuscita» e un numero di pagine rilevate.

  4. llms.txt risponde con il tuo contenuto

    Non hai un llms.txt: il riassunto del tuo sito pensato perché un'IA lo capisca senza doverlo percorrere tutto.

    1. Caricalo nella radice, accanto a robots.txt. Deve essere servito come testo, non come una pagina del tuo sito.
    Nel terminale
    curl -s http://harborcyclery.example/llms.txt | head -5

    È a posto quando La prima riga inizia con «# » seguito dal nome della tua attività. Se vedi HTML o la tua pagina di errore, il file non viene servito.

  5. I tuoi dati strutturati si leggono senza errori

    Il tuo sito non dichiara dati strutturati: l'IA deve indovinare chi sei, cosa vendi e dove.

    1. Apri search.google.com/test/rich-results e incolla http://harborcyclery.example/.
    2. Per vedere tutti i tipi, non solo quelli che Google premia con i risultati avanzati, controlla la pagina anche su validator.schema.org.

    È a posto quando Entrambi rilevano la tua Organization o LocalBusiness con nome, indirizzo e contatti, senza errori. Gli avvisi gialli non bloccano nulla.

  6. La prova del nove

    Tutto quello che c'è sopra verifica i singoli pezzi. Questo verifica il risultato.

    1. Analizza di nuovo il tuo sito su https://gettarsier.com/it. La seconda analisi è gratis per 30 giorni dall'acquisto, dallo stesso browser.
    2. Tra due o tre settimane, il tempo che serve ai crawler per ripassare, fai a ChatGPT con la ricerca attiva, a Perplexity e a Claude la domanda a cui risponde la tua pagina, aggiungendo la tua città o il tuo settore. Guarda quali fonti citano.

    È a posto quando Il punteggio sale, le due colonne del confronto dicono la stessa cosa e, col tempo, il tuo sito compare tra le fonti.

Tutti i controlli

ControlloPunteggioRisultato
La pagina risponde correttamente100HTTP 200 in 7 ms.
Il robots.txt consente l'accesso ai motori di ricerca IA100Il robots.txt non blocca nessun crawler dei motori di ricerca IA.
Il server non blocca i bot di IA100Il server risponde a un bot di IA esattamente come a un browser.
Nessun tag che impedisca l'indicizzazione100Nessuna restrizione all'indicizzazione.
File llms.txt0Non hai un /llms.txt.
Sitemap disponibile0Nessuna sitemap.xml trovata, e il robots.txt non ne dichiara nessuna.
Quello che vede l'IA ≈ quello che vede una persona0L'IA riceve lo 0% del contenuto che vede una persona (0 parole su 160).
Testo sufficiente nell'HTML00 parole leggibili senza eseguire JavaScript.
Niente di importante dipende da JavaScript018 blocchi di testo esistono solo dopo l'esecuzione di JavaScript.
L'HTML non è un guscio vuoto100L'HTML arriva con il contenuto già scritto.
Alternativa senza JavaScript0Non c'è alternativa per chi non esegue JavaScript.
Titolo della pagina40«Harbor Cyclery» (14 caratteri).
Descrizione della pagina0Non c'è la meta description.
Un solo H1 descrittivo0Nell'HTML servito non c'è nessun H1.
Gerarchia delle intestazioni0Nessuna intestazione.
HTML semantico0La pagina è costruita solo con <div>.
Testo alternativo nelle immagini100La pagina non ha immagini.
Link con testo descrittivo50Nell'HTML non ci sono link.
Dati strutturati (JSON-LD)0Nella pagina non ci sono dati strutturati schema.org.
Identità dichiarata (chi sei)0Non dichiari chi c'è dietro il sito.
Metadati Open Graph00 dei 3 tag Open Graph principali.
Anteprima del link condiviso0Né scheda né immagine: il link viene condiviso come semplice testo.
URL canonico40Non c'è nessun link rel=canonical.
Autore e data di aggiornamento60Nessun autore dichiarato; nessuna data di aggiornamento.
Sezioni che rispondono a domande reali0Nessun sottotitolo è formulato come domanda (la pagina non ne ha).
Riassunto diretto in apertura0Non c'è un paragrafo introduttivo con contenuto.
Elenchi e tabelle0Voci di elenco: 0, tabelle: 0.
Dati concreti e verificabili0Dati quantificati nel testo (prezzi, tempi, percentuali): 0.
Blocco di domande frequenti0Nessuna sezione di domande frequenti.
Contenuti aggiornati50Nel contenuto non c'è nessun riferimento temporale.
Velocità di risposta del server100L'HTML completo arriva in 7 ms.
Connessione sicura (HTTPS)0Il sito è servito in HTTP, senza cifratura.
Compressione dell'HTML40L'HTML è servito senza compressione.
Peso del documento HTML1004 KB di HTML.
Ottimizzato per mobile100Dichiara un viewport responsive.
Lingua dichiarata100Lingua dichiarata: en.

Preferisci che ce ne occupiamo noi?

Se non vuoi implementarlo tu né fare avanti e indietro con il tuo sviluppatore, mandaci questo report e ti diciamo quanto costa sistemarlo.

Riepilogo per gravità: 3 critici · 4 gravi · 10 medi · 8 lievi