{"id":281,"date":"2024-08-18T20:39:16","date_gmt":"2024-08-18T20:39:16","guid":{"rendered":"https:\/\/blog.devlancer.it\/?p=281"},"modified":"2024-08-23T10:12:02","modified_gmt":"2024-08-23T10:12:02","slug":"seo-sitemap","status":"publish","type":"post","link":"https:\/\/blog.devlancer.it\/en\/seo-sitemap\/","title":{"rendered":"Le Sitemap: cosa sono e come crearle per la SEO"},"content":{"rendered":"<p>Letteralmente \u201cmappa del sito\u201d, un tempo veniva comunemente inserita nel footer per <b>facilitare l\u2019indicizzazione da parte dei crawler<\/b>, ma anche per <b>permettere agli utenti di avere un\u2019idea di tutta la struttura del sito<\/b>. Con il tempo per\u00f2, i siti web sono diventati sempre pi\u00f9 complessi e quindi, analogamente, anche le mappe dei siti sono diventate molto pi\u00f9 lunghe e strutturate, dunque pi\u00f9 difficili da aggiornare.<\/p>\n<p>Diverse Pubbliche Amministrazioni mantengono tutt\u2019oggi il link \u201cMappa del sito\u201d nel footer, e questa \u00e8 sicuramente <b>una pratica buona e utile<\/b>. Come fare una buona mappa del sito?<\/p>\n\n<h2>Come creare una mappa del sito<\/h2>\n<p>Se il nostro sito web \u00e8 di piccole dimensioni, possiamo <b>creare una semplice lista di link<\/b> organizzata come fosse <b>un\u2019indice dei contenuti<\/b>. Ecco un esempio:<\/p>\n<ul>\n<li>Chi siamo\n<ul>\n<li>La nostra azienda<\/li>\n<li>Le nostre certificazioni<\/li>\n<li>Casi di successo<\/li>\n<\/ul>\n<\/li>\n<li>Servizi\n<ul>\n<li>Consulenza informatica<\/li>\n<li>Sviluppo siti web<\/li>\n<li>SEO<\/li>\n<li>Gestione profili social<\/li>\n<\/ul>\n<\/li>\n<li>Contatti\n<ul>\n<li>Scrivici<\/li>\n<li>Lavora con noi<\/li>\n<li>Dove siamo<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Questo si pu\u00f2 fare gi\u00e0 in partenza nella creazione di un nuovo sito web, e corrisponde pi\u00f9 o meno alla <b>struttura di navigazione<\/b>.<\/p>\n<p><b>Ogni elemento della mappa del sito \u00e8 un link<\/b> che rimanda alla pagina di destinazione. Questo diventa <b>molto utile sia per i crawler<\/b> che scansionano il nostro sito, <b>sia per gli utenti<\/b> che possono avere un\u2019idea delle pagine disponibili.<\/p>\n<p>Tuttavia, <b>se abbiamo un sito con centinaia o migliaia di pagine<\/b>, o comunque un piccolo sito che prevede di espandersi molto nel corso di pochi anni, una mappa del sito come quella che abbiamo appena visto potrebbe essere <b>molto difficile da mantenere<\/b> manualmente.<\/p>\n<p>Esistono anche degli <b>strumenti<\/b> che ci aiutano a <b>creare delle mappe in modo automatico<\/b>. Possiamo usare ad esempio <a href=\"https:\/\/www.screamingfrog.co.uk\/seo-spider\/tutorials\/xml-sitemap-generator\/\" rel=\"nofollow noopener\">ScreamingFrog<\/a> per generare una sitemap XML.<\/p>\n<p>Se usiamo CMS come <b>WordPress<\/b>, troviamo dei plugin che possono aiutarci, come <a href=\"https:\/\/it.wordpress.org\/plugins\/google-sitemap-generator\/\" rel=\"nofollow noopener\">XML Sitemap Generator for Google<\/a>, <a href=\"https:\/\/wordpress.com\/plugins\/kwayy-html-sitemap\" rel=\"nofollow noopener\">Kwayy HTML Sitemap<\/a>, <a href=\"https:\/\/yoast.com\/help\/xml-sitemaps-in-the-wordpress-seo-plugin\/\" rel=\"nofollow noopener\">YoastSEO<\/a>, <a href=\"https:\/\/rankmath.com\/kb\/configure-sitemaps\/\" rel=\"nofollow noopener\">Rank Math<\/a>, e altri. In modo simile anche per Joomla esistono delle estensioni come <a href=\"https:\/\/extensions.joomla.org\/extension\/structure-a-navigation\/site-map\/jsitemap\/\" rel=\"nofollow noopener\">JSitemap<\/a>, mentre per Drupal abbiamo <a href=\"https:\/\/www.drupal.org\/project\/sitemap\" rel=\"nofollow noopener\">Sitemap<\/a>, <a href=\"https:\/\/www.drupal.org\/project\/simple_sitemap\" rel=\"nofollow noopener\">Simple XML Sitemap<\/a>, <a href=\"https:\/\/www.drupal.org\/project\/xmlsitemap\" rel=\"nofollow noopener\">XML Sitemap<\/a>.<\/p>\n<p>Questi strumenti permettono di creare delle <b>mappe in HTML<\/b> (come l\u2019esempio che abbiamo fatto inizialmente) o in <b>XML<\/b>, che vengono poi lette dai crawler dei motori di ricerca.<\/p>\n<h2>Mappe del sito in XML<\/h2>\n<p>L\u2019XML \u00e8 un linguaggio simile all\u2019HTML, ma viene usato in casi pi\u00f9 specifici. Viene utilizzato anche come <b>formato di interscambio<\/b>, oltre ad esempio a JSON, per poter avere un documento strutturato secondo una certa logica e trasmettendo informazioni in modo standard.<\/p>\n<p>Sono tipi di linguaggi molto usati anche dagli sviluppatori. Per semplificare molto, supponiamo ad esempio di avere un applicativo sviluppato in PHP con MySQL, che deve fornire dei dati tramite API ad una azienda terza che lavora con .NET e MSSQL. In questi casi, in genere <b>ci si scambia le informazioni in un formato comune<\/b>, come appunto XML o JSON. Questi prevedono degli standard specifici da seguire, cos\u00ec che sia possibile comunicare in modo pi\u00f9 semplice.<\/p>\n<h3>Struttura XML standard<\/h3>\n<p>Un ragionamento simile si applica alle <b>sitemap XML<\/b>: creiamo una <b>struttura<\/b> seguendo un certo <b>standard<\/b>, in modo che il <b>crawler<\/b> del motore di ricerca possa leggere e ottenere determinate informazioni sul nostro sito web in modo pi\u00f9 semplice.<\/p>\n<p>Per quanto riguarda <b>Google<\/b>, abbiamo una guida a questo proposito: <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/build-sitemap?hl=it\" rel=\"nofollow noopener\">Creare e inviare una Sitemap<\/a>.<\/p>\n<p>In buona sostanza quindi potremmo <b>modificare una sitemap XML<\/b> anche manualmente come fosse <b>un file di testo<\/b>, usando editor come <a href=\"https:\/\/notepad-plus-plus.org\/downloads\/\" rel=\"nofollow noopener\">Notepad++<\/a> o simili, ma questo \u00e8 <b>fortemente sconsigliato<\/b> per l\u2019altra probabilit\u00e0 di inserire errori.<\/p>\n<p>Si preferisce in genere creare degli <b>script automatici<\/b> che possano agire in <a href=\"https:\/\/ostechnix.com\/a-beginners-guide-to-cron-jobs\/\" rel=\"nofollow noopener\">Cron<\/a> (cio\u00e8 in momenti specifici in modo programmato) e analizzare il sito per generare un file XML, oppure usare dei <b>plugin<\/b>, alcuni dei quali gi\u00e0 citati in precedenza. Esistono infine dei <b>software<\/b> come <a href=\"https:\/\/www.screamingfrog.co.uk\/seo-spider\/tutorials\/xml-sitemap-generator\/\" rel=\"nofollow noopener\">ScreamingFrog<\/a> che ci permettono di generare una mappa XML in modo semi-automatico.<\/p>\n<p>Ecco un <b>esempio<\/b>, fornito da Google, di una <b>struttura XML<\/b> per la sitemap:<\/p>\n<pre class=\"language-markup\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;urlset xmlns=\"http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\"&gt;\r\n\t&lt;url&gt;\r\n\t\t&lt;loc&gt;https:\/\/www.example.com\/foo.html&lt;\/loc&gt;\r\n\t\t&lt;lastmod&gt;2022-06-04&lt;\/lastmod&gt;\r\n\t&lt;\/url&gt;\r\n&lt;\/urlset&gt;<\/code><\/pre>\n<h3>Protocollo per le sitemap XML<\/h3>\n<p>Il <b>protocollo<\/b> da rispettare per questa struttura si pu\u00f2 trovare su <a href=\"https:\/\/www.sitemaps.org\/protocol.html\" rel=\"nofollow noopener\">sitemaps.org<\/a>. Vediamo i punti principali:<\/p>\n<ul>\n<li>&lt;urlset&gt; (obbligatorio): Indica un insieme di URL e riporta il protocollo di riferimento<\/li>\n<li>&lt;url&gt; (obbligatorio): da usare per raggruppare tutte le propriet\u00e0 di ogni URL<\/li>\n<li>&lt;loc&gt; (obbligatorio): l\u2019URL vero e proprio della pagina, deve includere il protocollo, iniziando quindi con http:\/\/ o simile<\/li>\n<li>&lt;lastmod&gt; (opzionale): indica la data di ultima modifica della pagina, deve rispettare il formato <a href=\"https:\/\/www.w3.org\/TR\/NOTE-datetime\" rel=\"nofollow noopener\">W3C Datetime<\/a>, come ad esempio YYYY-MM-DD che si traduce in 2024-01-25<\/li>\n<li>&lt;changefreq&gt; (opzionale): per indicare ogni quanto la pagina viene aggiornata, i valori accettati al momento sono: always, hourly, daily, weekly, monthly, yearly, never<\/li>\n<li>&lt;priority&gt; (opzionale): specifica la priorit\u00e0 di questo URL rispetto agli altri, il valore va da 0.0 a 1.0, dove la priorit\u00e0 di default vale 0.5. Non ha particolare valore in termini SEO, \u00e8 una indicazione che noi forniamo per scegliere quali pagine riteniamo pi\u00f9 importanti rispetto alle altre<\/li>\n<\/ul>\n<p>Quando abbiamo creato il nostro file XML, possiamo <b>pubblicarlo nella cartella del nostro sito<\/b>, ad esempio nella radice in \/sitemap.xml. Questo percorso generalmente viene gi\u00e0 consultato dai crawler come default, ma possiamo definirlo in modo specifico nel file <b>robots.txt<\/b>, ad esempio cos\u00ec:<\/p>\n<p>Sitemap: <a href=\"https:\/\/example.com\/sitemap.xml\" rel=\"nofollow noopener\">https:\/\/example.com\/sitemap.xml<\/a><\/p>\n<p>In questo modo comunichiamo ai crawler dove si trova la mappa del sito.<\/p>\n<h3>Indici di sitemap<\/h3>\n<p>Possiamo anche avere <b>pi\u00f9 di una sitemap<\/b>, questo \u00e8 tipico dei siti fatti in WordPress, anche perch\u00e9 <b>ogni sitemap per Google ha dei limiti<\/b> di massimo 50MB o 50.000 URL.<\/p>\n<p>Per gestire sitemap multiple possiamo usare un <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/large-sitemaps?hl=it\" rel=\"nofollow noopener\">indice di sitemap<\/a>. Ecco un esempio in XML:<\/p>\n<pre class=\"language-markup\"><code>&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;sitemapindex xmlns=\"http:\/\/www.sitemaps.org\/schemas\/sitemap\/0.9\"&gt;\r\n\t&lt;sitemap&gt;\r\n\t\t&lt;loc&gt;https:\/\/www.example.com\/sitemap1.xml.gz&lt;\/loc&gt;\r\n\t&lt;\/sitemap&gt;\r\n\t&lt;sitemap&gt;\r\n\t\t&lt;loc&gt;https:\/\/www.example.com\/sitemap2.xml.gz&lt;\/loc&gt;\r\n\t&lt;\/sitemap&gt;\r\n&lt;\/sitemapindex&gt;<\/code><\/pre>\n<p>In genere <b>non \u00e8 necessario inviare le sitemap<\/b> tramite Search Console o Webmaster Tools, ma <b>\u00e8 utile farlo<\/b> ogni tanto per <b>velocizzare il processo di indicizzazione<\/b>, soprattutto <b>quando pubblichiamo molti nuovi contenuti<\/b>, oppure <b>quando stiamo creando un nuovo sito web<\/b> che vogliamo venga indicizzato pi\u00f9 rapidamente.<\/p>\n<p>Una piccola nota a margine: le sitemap possono essere gestite anche come <b>semplici elenchi testuali di URL<\/b>, con un file nominato ad esempio <b>sitemap.txt<\/b> che riporta <b>un URL per ogni riga<\/b>. Tuttavia, <b>la soluzione in XML offre pi\u00f9 possibilit\u00e0<\/b> ed \u00e8 quella consigliata.<\/p>\n<h2>Link utili<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.screamingfrog.co.uk\/seo-spider\/tutorials\/xml-sitemap-generator\/\" rel=\"nofollow noopener\">ScreamingFrog XML Sitemap Generator<\/a><\/li>\n<li>Plugin WordPress: <a href=\"https:\/\/it.wordpress.org\/plugins\/google-sitemap-generator\/\" rel=\"nofollow noopener\">XML Sitemap Generator for Google<\/a>, <a href=\"https:\/\/wordpress.com\/plugins\/kwayy-html-sitemap\" rel=\"nofollow noopener\">Kwayy HTML Sitemap<\/a>, <a href=\"https:\/\/yoast.com\/help\/xml-sitemaps-in-the-wordpress-seo-plugin\/\" rel=\"nofollow noopener\">YoastSEO<\/a>, <a href=\"https:\/\/rankmath.com\/kb\/configure-sitemaps\/\" rel=\"nofollow noopener\">Rank Math<\/a><\/li>\n<li>Estensione Joomla: <a href=\"https:\/\/extensions.joomla.org\/extension\/structure-a-navigation\/site-map\/jsitemap\/\" rel=\"nofollow noopener\">Jsitemap<\/a><\/li>\n<li>Moduli Drupal: <a href=\"https:\/\/www.drupal.org\/project\/sitemap\" rel=\"nofollow noopener\">Sitemap<\/a>, <a href=\"https:\/\/www.drupal.org\/project\/simple_sitemap\" rel=\"nofollow noopener\">Simple XML Sitemap<\/a>, <a href=\"https:\/\/www.drupal.org\/project\/xmlsitemap\" rel=\"nofollow noopener\">XML Sitemap<\/a><\/li>\n<li>Google Search Central: <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/build-sitemap?hl=it\" rel=\"nofollow noopener\">Creare e inviare una Sitemap<\/a><\/li>\n<li><a href=\"https:\/\/notepad-plus-plus.org\/downloads\/\" rel=\"nofollow noopener\">Notepad++<\/a><\/li>\n<li>OsTechNix: <a href=\"https:\/\/ostechnix.com\/a-beginners-guide-to-cron-jobs\/\" rel=\"nofollow noopener\">A Beginners Guide To Cron Jobs<\/a><\/li>\n<li>Sitemaps.org: <a href=\"https:\/\/www.sitemaps.org\/protocol.html\" rel=\"nofollow noopener\">XML Protocol<\/a><\/li>\n<li>Google Search Central: <a href=\"https:\/\/developers.google.com\/search\/docs\/crawling-indexing\/sitemaps\/large-sitemaps?hl=it\" rel=\"nofollow noopener\">Gestire le Sitemap con un file indice Sitemap<\/a><\/li>\n<\/ul>\n<h2>Leggi anche<\/h2>\n<ul>\n<li><a href=\"https:\/\/blog.devlancer.it\/come-migliorare-la-seo-del-proprio-sito-web\/\">Come migliorare la SEO del proprio sito web?<\/a><\/li>\n<li><a href=\"https:\/\/blog.devlancer.it\/seo-parole-chiave\/\">Come trovare e usare parole chiave adeguate per la SEO<\/a><\/li>\n<li><a href=\"https:\/\/blog.devlancer.it\/seo-creare-contenuti-interessanti-blog\/\">SEO: Come creare contenuti interessanti con blog e news<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Letteralmente \u201cmappa del sito\u201d, un tempo veniva comunemente inserita nel footer per facilitare l\u2019indicizzazione da parte dei crawler, ma anche per permettere agli utenti di avere un\u2019idea di tutta la struttura del sito. Con il tempo per\u00f2, i siti web sono diventati sempre pi\u00f9 complessi e quindi, analogamente, anche le mappe dei siti sono diventate [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":295,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[10,9],"tags":[11],"class_list":["post-281","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-approfondimenti","category-guide","tag-seo"],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/posts\/281","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/comments?post=281"}],"version-history":[{"count":1,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/posts\/281\/revisions"}],"predecessor-version":[{"id":282,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/posts\/281\/revisions\/282"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/media\/295"}],"wp:attachment":[{"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/media?parent=281"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/categories?post=281"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.devlancer.it\/en\/wp-json\/wp\/v2\/tags?post=281"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}