Sitemap
Crea file di sitemap generati automaticamente a cui fare riferimento da robots.txt
. Questo facilita l’ottimizzazione SEO (Search Engine Optimization) e l’individuazione di nuovi contenuti. AEM può generare tre tipi di sitemap: senza alcuna configurazione, basata esclusivamente su un indice di query o su una configurazione manuale di sitemap. Una singola mappa del sito deve essere limitata a 50.000 URL e 50 MB (non compressi) di dimensioni. Vedere Limiti.
Creazione di una mappa del sito senza alcuna configurazione
Se non esegui alcuna operazione, visualizzerai la mappa del sito in sitemap.xml
e avrai un indice di mappa del sito in sitemap.json
. Conterrà un elenco di tutti i documenti pubblicati.
Se hai iniziato con un altro tipo di mappa del sito e desideri passare a questo tipo, dovrai eliminare il file di configurazione helix-sitemap.yaml
- definito manualmente in GitHub o generato automaticamente - e reindicizzare il sito.
Nome di dominio utilizzato negli URL esterni
Per personalizzare il dominio utilizzato nella creazione di URL esterni, aggiungere una proprietà denominata host
o cdn.prod.host
nella configurazione del progetto (denominata .helix/config
quando si utilizza Google Drive come back-end o .helix/config.xlsx
in Sharepoint) e visualizzare in anteprima il file per attivarlo.
Generazione di una configurazione Sitemap basata su un indice
Per ulteriori informazioni sull'indicizzazione, vedere il documento Indicizzazione. Per generare una configurazione di sitemap basata su un indice, assicurati di aver già impostato un indice di query iniziale come spiegato in questo documento. Verrà generata una mappa del sito nel percorso:
https://<branch>--<repo>--<owner>.hlx.page/sitemap.xml
E una configurazione di sitemap nella seguente posizione:
https://<branch>--<repo>--<owner>.hlx.page/helix-sitemap.yaml
È consigliabile creare un file sitemap-index.xml
che faccia riferimento a tutte le sitemap e conservarlo come parte del codice del progetto nell'archivio github. In questo modo è facile aggiungere nuove sitemap man mano che il progetto si espande.
Configurazione manuale della mappa del sito
Se hai bisogno di una personalizzazione superiore a quella fornita dal file di configurazione della sitemap generata, puoi copiarne il contenuto e incollarlo in un file denominato helix-sitemap.yaml
nella cartella principale del progetto.
Nota: quando utilizzi un indice e una mappa del sito configurati manualmente (ad esempio, l'archivio del codice include un file helix-query.yaml ed helix-sitemap.yaml) la definizione dell'indice deve includere la proprietà robots per garantire che la mappa del sito escluda le pagine con metadati robots: noindex
. Quando si utilizzano definizioni di indice generate automaticamente, è sufficiente seguire le raccomandazioni riportate nella documentazione sull'indicizzazione in modo che tali pagine vengano escluse dall'indice.
Le sezioni seguenti contengono i tipi supportati di sitemap.
Mappa del sito semplice
Segue un helix-sitemap.yaml
semplice. Presuppone un singolo indice contenente tutte le pagine che devono essere visualizzate nella sitemap.
sitemaps:
example:
source: /query-index.json
destination: /sitemap-en.xml
Se desideri includere le date dell'ultima modifica negli URL della mappa del sito, aggiungi una proprietà lastmod
che includa un formato alla configurazione.
sitemaps:
example:
source: /query-index.json
destination: /sitemap-en.xml
lastmod: YYYY-MM-DD
Più sitemap
È comune avere mappe del sito per sezione dei siti e/o per paese o lingua. AEM supporta sitemap, inclusi i riferimenti hreflang
corrispondenti. Nell’esempio seguente si presuppone che esista un mapping uno a uno tra gli indici e i file XML delle sitemap.
sitemaps:
example:
lastmod: YYYY-MM-DD
languages:
en:
source: /en/query-index.json
destination: /sitemap-en.xml
hreflang: en
fr:
source: /fr/query-index.json
destination: /sitemap-fr.xml
hreflang: fr
alternate: /fr/{path}
Se nella sezione inglese e francese sono presenti due pagine che condividono un suffisso comune, queste saranno correlate. Ad esempio, se si dispone di una pagina /welcome
nella sezione inglese e di una pagina /fr/welcome
nella sezione francese, la voce risultante in /sitemap-en.xml
sarà simile alla seguente:
<url>
<loc>https://wwww.mysite.com/welcome</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://wwww.mysite.com/welcome"/>
<xhtml:link rel="alternate" hreflang="fr" href="https://wwww.mysite.com/fr/welcome"/>
</url>
Una voce simile sarà disponibile in /sitemap-fr.xml
.
Specifica manuale della lingua principale
In alcune situazioni potrebbero essere presenti versioni alternative di una pagina, ma non è possibile utilizzare un suffisso comune per identificarle, probabilmente perché si sta eseguendo il porting di un sito web legacy che non dovrebbe avere percorsi modificati. In questo caso, è possibile specificare primary-language-url
per la posizione alternativa nei metadati del documento.
Supponiamo che la nostra lingua principale sia l'inglese, abbiamo una pagina /welcome
nella sezione inglese e /fr/bienvenu
nella sezione francese, e la seconda è una versione alternativa della prima.
Innanzitutto, aggiungiamo tali informazioni al documento in /fr/bienvenu
nei relativi metadati:
Può essere aggiunto anche a un foglio metadata
globale, come mostrato in Metadati in blocco.
Viene quindi aggiunta una proprietà indicizzata primary-language-url
all'indice francese:
primary-language-url:
select: head > meta[name="primary-language-url"]
value: attribute(el, "content")
Infine, la pagina francese verrà ripubblicata e verrà rigenerata la mappa del sito.
Specifica della lingua predefinita
Un altro requisito comune è quello di specificare la lingua predefinita per una sitemap con più lingue. Per ottenere questo risultato, aggiungere una proprietà default
in sitemap:
sitemaps:
example:
default: en
lastmod: YYYY-MM-DD
languages:
en:
source: /en/query-index.json
destination: /sitemap-en.xml
hreflang: en
fr:
source: /fr/query-index.json
destination: /sitemap-fr.xml
hreflang: fr
alternate: /fr/{path}
Nella mappa del sito risultante, tutte le voci della sottostruttura inglese avranno una voce alternativa aggiuntiva con hreflang x-default
.
Specifica di più riflessi per un sottoalbero
A volte, è necessario mappare più riflessi a una sola sottostruttura della lingua, ad esempio si supponga di voler visualizzare quanto segue nella mappa del sito risultante:
<url>
<loc>https://myhost/la/page</loc>
<xhtml:link rel="alternate" hreflang="es-VE" href="https://myhost/la/page"/>
<xhtml:link rel="alternate" hreflang="es-SV" href="https://myhost/la/page"/>
<xhtml:link rel="alternate" hreflang="es-PA" href="https://myhost/la/page"/>
</url>
Ogni pagina nella nostra origine sitemap dovrebbe apparire esattamente una volta, ma ad essa dovrebbero essere associati più hreflang alternativi. Per ottenere questo risultato, è necessario specificare una matrice di lingue nella proprietà hreflang
:
sitemaps:
example:
lastmod: YYYY-MM-DD
languages:
la:
source: /la/query-index.json
destination: /sitemap-la.xml
hreflang:
- es-VE
- es-SV
- es-PA
Più Indici Aggregati In Una Sitemap
In alcuni casi è più semplice creare una mappa del sito singola più grande rispetto a mappe del sito di piccole dimensioni frammentate, soprattutto in quanto esiste un limite di mappe del sito che possono essere inviate ai motori di ricerca per sito.
L’esempio seguente mostra come aggregare un numero di indici separati in una singola sitemap.
sitemaps:
example:
lastmod: YYYY-MM-DD
languages:
dk:
source: /dk/query-index.json
destination: /sitemap.xml
hreflang: dk
alternate: /dk/{path}
no:
source: /no/query-index.json
destination: /sitemap.xml
hreflang: no
alternate: /no/{path}
Utilizzando la stessa destinazione è possibile combinare più sitemap di piccole dimensioni in un’unica sitemap più grande.
Inclusione di altre sitemap come input
In uno scenario misto, in cui non tutti i linguaggi in una mappa del sito vengono gestiti in AEM, puoi includere mappe del sito da altri alberi del linguaggio specificando un percorso XML come origine, come in:
sitemaps:
example:
lastmod: YYYY-MM-DD
languages:
en:
source: /en/query-index.json
destination: /sitemaps/sitemap-en.xml
hreflang: en
fr:
source: https://www.mysite.com/legacy/sitemap-fr.xml
destination: /sitemaps/sitemap-fr.xml
hreflang: fr
alternate: /fr/{path}
In questo esempio, utilizziamo una sitemap francese esterna per calcolare tutte le posizioni della sitemap. AEM determinerà alternative per gli URL della sitemap inglese decostruendo le controparti francesi in sitemap esterno utilizzando la definizione alternate
.
Aggiunta di un’estensione a tutte le posizioni in sitemap
In uno scenario in cui si desidera che tutte le posizioni abbiano un'estensione, ad esempio .html
, e non è possibile generare un foglio helix-sitemap
nell'indice di query per derivare una formula, è possibile aggiungere un'estensione a tutte le lingue o a una singola lingua utilizzando una proprietà extension
:
sitemaps:
example:
lastmod: YYYY-MM-DD
extension: .html
languages:
en:
source: /en/query-index.json
destination: /en/sitemap.xml
hreflang: en
fr:
source: /fr/query-index.json
destination: /fr/sitemap.xml
hreflang: fr
alternate: /fr/{path}