social

Corrispondenza dei profili sameAs

MetricSpot scarica ogni URL del tuo array sameAs e verifica che restituisca 200 e citi il tuo brand. Target sameAs rotti rompono la fusione di entità nel Knowledge Graph.

Cosa verifica questo controllo

Esegue il parse dell’array sameAs dal tuo JSON-LD Organization (o Person, LocalBusiness) e, per ogni URL:

  1. Emette un HEAD poi un GET e conferma una risposta 2xx (seguendo un redirect).
  2. Scansiona l’HTML di destinazione cercando il nome del tuo brand (il name o alternateName dallo stesso JSON-LD).

Il controllo fallisce se un URL fa 404, redirige a un dominio non correlato o atterra su una pagina il cui contenuto visibile non cita il brand. È separato da sameAs profili social, che verifica solo l’esistenza dell’array.

Perché è importante

Il senso di sameAs è dire a Google “questi URL si riferiscono tutti alla stessa entità reale di questo sito”. Quando uno è rotto, la fusione di entità fallisce — Google non riesce a connettere con sicurezza “Acme Inc su LinkedIn” al tuo sito se l’URL LinkedIn restituisce 404, e non riesce a connettere “Acme Industries Ltd” alla tua pagina “Acme Inc” se lo slug LinkedIn è stato rinominato e ora appartiene a un’altra azienda.

Il costo di un sameAs rotto è silenzioso. I tuoi dati strutturati continuano a validare. Il Rich Results Test mostra verde. Ma il Knowledge Graph rifiuta in silenzio di attribuirti il profilo — e Knowledge Panel, carosello di brand e provenienza delle citazioni degli agenti AI si appoggiano tutti a quell’attribuzione.

Le rotture più comuni, in ordine decrescente di frequenza:

  • Migrazione URL Twitter → X. I profili continuano a risolversi su twitter.com (Twitter redirige), ma alcuni array sameAs puntano a sotto-percorsi rotti. Usa sempre https://x.com/handle.
  • Slug /company/ LinkedIn rinominato. Quando un’azienda fa rebrand, lo slug vecchio fa 404. Il redirect ID numerico /company/ è più stabile ma brutto.
  • Profili defunti lasciati nell’array. Voci Google+ del 2018. Vine. Periscope. Audita e pota.
  • Redirect di vanity domain che droppano il path. acme.co/twitterhttps://x.com/ (senza handle). Linka sempre l’URL canonico del profilo direttamente.
  • Drift di maiuscole/minuscole. Alcune piattaforme fanno 404 con capitalizzazione errata nello slug. Testa quello che incolli.

Come sistemarlo

1. Audita l’array — loop curl:

curl -s https://tuodominio.com/ \
  | grep -oE '"sameAs":\s*\[[^]]+\]' \
  | grep -oE 'https?://[^"]+' \
  | while read url; do
      code=$(curl -s -o /dev/null -w '%{http_code}' -L -A 'Mozilla/5.0' "$url")
      echo "$code  $url"
    done

Tutto ciò che restituisce 4xx o 5xx è morto. Tutto ciò che fa 3xx-redirect verso un hostname diverso è sospetto — aprilo nel browser e conferma che la destinazione rappresenti ancora il tuo brand.

2. Audita l’array — script browser. Incolla nella console DevTools sulla tua home:

const ld = [...document.querySelectorAll('script[type="application/ld+json"]')]
  .map(s => { try { return JSON.parse(s.textContent); } catch { return null; } })
  .filter(Boolean)
  .flatMap(o => Array.isArray(o) ? o : [o]);

const sameAs = ld.flatMap(o => o.sameAs || []);
console.table(sameAs);

await Promise.all(sameAs.map(async url => {
  try {
    const r = await fetch(url, { mode: 'no-cors' });
    console.log(r.type === 'opaque' ? 'opaque' : r.status, url);
  } catch (e) {
    console.error('FAIL', url, e.message);
  }
}));

Il CORS renderà molte risposte opache, ma i fallimenti di rete (DNS, 5xx) emergeranno comunque come errori. Per uno status pulito, usa il loop curl sopra.

3. Validator Schema.org. Incolla il tuo URL su validator.schema.org — mostra errori di parse JSON-LD e l’array sameAs risolto. Utile quando il CMS ti maciulla il JSON.

4. Tieni un handle canonico stabile per piattaforma. Scegli un URL per profilo e usalo ovunque — in sameAs, nel footer, nella firma email, nei comunicati stampa. Le forme canoniche che invecchiano meglio:

  • LinkedIn: https://www.linkedin.com/company/<slug> (non /in/, non l’ID numerico, non un redirect localizzato /de.linkedin.com).
  • X / Twitter: https://x.com/<handle> (la forma twitter.com ancora redirige, ma x.com è canonica ora).
  • YouTube: https://www.youtube.com/@<handle> (la forma handle moderna, non /channel/UCxxxx e non /user/xxxx).
  • GitHub: https://github.com/<org> (senza trailing slash).
  • Wikipedia: l’URL inglese en.wikipedia.org anche se hai varianti di lingua — gli URL per lingua non sono l’entità canonica.
  • Mastodon: https://<instance>/@<handle> (l’URL federato, non un ID hashato).

5. Dopo la sistemazione, valida due volte. Esegui lo Schema Markup Validator per la sintassi, poi il Google Rich Results Test per confermare che Google riesca a scaricare e parsare il JSON-LD. Il Rich Results Test gira dagli IP di Google — se un target sameAs blocca lo user agent o il paese di Googlebot, fallirà lì anche se il tuo curl è andato a buon fine.

Vedi anche: organization sameAs, sameAs profili social, link ai profili social.

Domande frequenti

Quanto spesso dovrei auditare il mio array sameAs?

Due volte l’anno bastano per la maggior parte dei siti. Le piattaforme rinominano slug (LinkedIn soprattutto) e i profili vengono abbandonati. Aggiungi il loop curl sopra alla tua release checklist o a un monitoraggio schedulato — è un controllo da 30 secondi.

Il mio URL LinkedIn redirige a una pagina “company not found” ma restituisce 200. Il controllo passa?

Dipende. Il controllo fa il passo di match sul brand-name proprio per catturare questo caso — LinkedIn restituisce 200 con un body generico “questa pagina non esiste”, quindi la scansione del nome brand fallisce e la regola scatta. Aggiorna l’URL allo /company/<slug> corrente o rimuovilo.

Posso includere URL che richiedono login (profili sotto autenticazione)?

Evitali. Se Googlebot non può scaricare la pagina in anonimo, non può confermare l’entità. La maggior parte delle grandi piattaforme social renderizza un guscio di profilo pubblico senza auth — se la tua no, quel profilo non è utile come target sameAs.

Fonti

Ultimo aggiornamento 2026-05-11