{"id":1045,"date":"2023-05-31T14:13:57","date_gmt":"2023-05-31T11:13:57","guid":{"rendered":"https:\/\/presta.site\/blog\/risoluzione-dei-problemi-di-riscrittura-degli-url-seo-in-prestashop\/"},"modified":"2026-07-25T13:38:59","modified_gmt":"2026-07-25T10:38:59","slug":"risoluzione-dei-problemi-di-riscrittura-degli-url-seo-in-prestashop","status":"publish","type":"post","link":"https:\/\/presta.site\/blog\/it\/risoluzione-dei-problemi-di-riscrittura-degli-url-seo-in-prestashop\/","title":{"rendered":"Riscrittura URL PrestaShop: checklist in 5 passi per riparare le Friendly URL rotte"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Le Friendly URL sono attive, ma i link ai prodotti mostrano ancora <code class=\"codecolorer text default\"><span class=\"text\">index.php?id_product=12<\/span><\/code> &#8211; oppure ogni percorso leggibile restituisce 404. La <strong>riscrittura url prestashop<\/strong> funziona solo quando il toggle nel Back Office, il file rewrite nella root (Apache) e le regole del web server sono allineati. Questa \u00e8 una checklist in 5 passi: individuare il sintomo, confermare l&#8217;impostazione del negozio, sistemare il livello server, verificare un URL, poi ripulire duplicati e vecchi 404.<\/p>\n\n\n<!--more-->\n\n\n<p class=\"wp-block-paragraph\">Il consiglio generico \u00abattiva Friendly URL\u00bb si trova facilmente in un chatbot. Ci\u00f2 che di solito fa perdere ore \u00e8 applicare la correzione sbagliata per il proprio sintomo &#8211; oppure saltare il controllo di verifica dopo ogni passaggio. Seguire l&#8217;elenco in ordine. Le etichette ufficiali sono in <a href=\"https:\/\/docs.prestashop-project.org\/v.9-documentation\/user-guide\/configuring-shop\/shop-parameters\/traffic\" target=\"_blank\" rel=\"noopener noreferrer\">Shop Parameters \u2192 Traffic<\/a> nella documentazione PrestaShop 9. Prima di modificare la configurazione del server, eseguire un <a href=\"https:\/\/presta.site\/blog\/it\/come-creare-un-backup-in-prestashop\/\">backup completo di PrestaShop<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passaggio 1 &#8211; Individuare cosa non funziona<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Aprire una pagina prodotto in una finestra privata e annotare quale caso si presenta. Non saltare questo passaggio &#8211; i tre casi richiedono correzioni diverse.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A &#8211; URL ancora brutti.<\/strong> La barra degli indirizzi mostra ancora <code class=\"codecolorer text default\"><span class=\"text\">id_product<\/span><\/code>, <code class=\"codecolorer text default\"><span class=\"text\">id_category<\/span><\/code> o <code class=\"codecolorer text default\"><span class=\"text\">controller=<\/span><\/code> dopo aver attivato Friendly URL. PrestaShop non emette link riscritti (oppure la cache serve una pagina vecchia).<\/li>\n<li><strong>B &#8211; URL leggibili con 404.<\/strong> I link sembrano corretti (<code class=\"codecolorer text default\"><span class=\"text\">\/categoria\/slug-prodotto<\/span><\/code>) ma ogni percorso leggibile restituisce Pagina non trovata. Il negozio genera gli slug; il web server non li instrada verso PrestaShop.<\/li>\n<li><strong>C &#8211; Funziona solo su un dominio.<\/strong> Il negozio principale va bene; un dominio multistore, un sottodominio o un negozio in sottocartella fallisce. Spesso \u00e8 un problema di URL del negozio \/ DNS \/ document root &#8211; non un secondo bug Friendly URL. Consultare in parallelo la nostra <a href=\"https:\/\/presta.site\/blog\/it\/cose-il-multistore-e-come-lavorarci-in-prestashop\/\">guida al multistore PrestaShop<\/a> insieme a questa checklist.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verifica:<\/strong> si riesce a indicare A, B o C prima di toccare Apache o Nginx.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passaggio 2 &#8211; Confermare Friendly URL nel Back Office<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"412\" src=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_1-5-1024x412.png\" alt=\"Toggle Friendly URL per la riscrittura url prestashop in Shop Parameters Traffico e SEO\" class=\"wp-image-716\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_1-5-1024x412.png 1024w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_1-5-300x121.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_1-5-768x309.png 768w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_1-5.png 1381w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Andare in <strong>Parametri del negozio \u2192 Traffico e SEO<\/strong>.<\/li>\n<li>Aprire <strong>Configurazione URL<\/strong>.<\/li>\n<li>Impostare <strong>Friendly URL<\/strong> su S\u00ec e salvare.<\/li>\n<li>Svuotare la cache di PrestaShop (<strong>Parametri avanzati \u2192 Prestazioni<\/strong>) e ritestare lo stesso prodotto in una finestra privata.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Su Apache, salvando questa pagina si dovrebbe creare o aggiornare il file <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> nella root con le regole rewrite di PrestaShop. Se il file manca, \u00e8 vuoto o \u00e8 pi\u00f9 vecchio dell&#8217;ultimo salvataggio, PHP non pu\u00f2 scrivere nella root del negozio &#8211; sistemare propriet\u00e0 e permessi prima di inseguire i moduli.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su Nginx, il toggle da solo non installa mai le regole rewrite. Serve comunque il Passaggio 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verifica (caso A):<\/strong> dopo lo svuotamento cache, i nuovi link HTML usano gli slug (anche se quegli slug restituiscono ancora 404 &#8211; diventa il caso B). <strong>Verifica (caso B\/C):<\/strong> Friendly URL \u00e8 S\u00ec e resta S\u00ec dopo il ricaricamento.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passaggio 3 &#8211; Sistemare il livello server (Apache o Nginx)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Per procedere con la <strong>riscrittura url prestashop<\/strong>, controllare <strong>Parametri avanzati \u2192 Informazioni \u2192 Informazioni sul server<\/strong> (oppure chiedere all&#8217;hosting). Seguire solo il ramo che corrisponde al proprio server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Se si usa Apache<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Abilitare <code class=\"codecolorer text default\"><span class=\"text\">mod_rewrite<\/span><\/code> (spesso gi\u00e0 attivo).<\/li>\n<li>Confermare che la document root del negozio abbia un <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> leggibile aggiornato da PrestaShop all&#8217;ultimo salvataggio SEO.<\/li>\n<li>AllowOverrides deve consentire le direttive rewrite per quella directory.<\/li>\n<li>Le installazioni in sottocartella richiedono un <code class=\"codecolorer text default\"><span class=\"text\">RewriteBase<\/span><\/code> coerente.<\/li>\n<li>Regole personalizzate sopra il blocco di PrestaShop possono interrompere la riscrittura &#8211; spostare temporaneamente gli extra sotto la sezione PrestaShop per testare.<\/li>\n<li>Dopo una modifica manuale, disattivare e riattivare Friendly URL una volta e salvare cos\u00ec PrestaShop riscrive la propria sezione, poi reinserire solo le righe personalizzate ancora necessarie.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verifica:<\/strong> l&#8217;URL prodotto leggibile restituisce HTTP 200 con il prodotto corretto (non la pagina 404 predefinita dell&#8217;host).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Se si usa Nginx<\/h3>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"947\" height=\"220\" src=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_2-4.png\" alt=\"Blocco server Nginx dove inserire le regole di riscrittura url prestashop\" class=\"wp-image-719\" srcset=\"https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_2-4.png 947w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_2-4-300x70.png 300w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_2-4-768x178.png 768w, https:\/\/presta.site\/blog\/wp-content\/uploads\/2023\/05\/Screenshot_2-4-941x220.png 941w\" sizes=\"auto, (max-width: 947px) 100vw, 947px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nginx ignora <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code>. Modificare il blocco server del sito (spesso in <code class=\"codecolorer text default\"><span class=\"text\">\/etc\/nginx\/sites-available\/<\/span><\/code>):<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Aggiungere l&#8217;esempio rewrite Nginx attuale dalla <a href=\"https:\/\/devdocs.prestashop-project.org\/9\/basics\/installation\/nginx\/\" target=\"_blank\" rel=\"noopener noreferrer\">documentazione Nginx PrestaShop 9<\/a> (mantenere la root reale e il socket PHP-FPM).<\/li>\n<li>Eseguire <code class=\"codecolorer text default\"><span class=\"text\">nginx -t<\/span><\/code>.<\/li>\n<li>Se il test passa, ricaricare: <code class=\"codecolorer text default\"><span class=\"text\">systemctl reload nginx<\/span><\/code> (oppure l&#8217;equivalente nel pannello dell&#8217;hosting).<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Se un chatbot ha incollato un esempio vecchio, sostituirlo con il blocco ufficiale per la propria versione major. Percorsi e righe <code class=\"codecolorer text default\"><span class=\"text\">try_files<\/span><\/code> cambiano nel tempo; snippet da forum di anni fa sono una causa frequente del caso B.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verifica:<\/strong> come su Apache &#8211; pretty URL \u2192 200 \u2192 prodotto corretto. Se un CDN o un reverse proxy erano davanti mentre tutto era rotto, svuotarne la cache una volta cos\u00ec smette di servire 404 in cache.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passaggio 4 &#8211; Verificare la riscrittura url prestashop da capo a fine<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Non fermarsi a \u00abi link nel menu sembrano belli\u00bb. Eseguire questa verifica rapida su un prodotto:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Finestra privata: aprire il prodotto dall&#8217;elenco categoria.<\/li>\n<li>La barra degli indirizzi mostra un percorso con slug, non solo <code class=\"codecolorer text default\"><span class=\"text\">id_product<\/span><\/code>.<\/li>\n<li>Copiare quell&#8217;URL leggibile, aprirlo in una nuova scheda: HTTP 200, stesso prodotto.<\/li>\n<li>Opzionale: richiedere uno slug errato noto &#8211; dovrebbe comparire il tema 404 del negozio, non una pagina vuota del web server che non ha mai raggiunto PrestaShop.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Se il Passaggio 4 fallisce solo su un secondo dominio mentre il dominio principale passa, tornare al caso C (URL multistore \/ DNS \/ document root) prima di modificare di nuovo le regole rewrite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verifica:<\/strong> un prodotto supera il clic dall&#8217;elenco + il ricaricamento diretto dell&#8217;URL leggibile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Passaggio 5 &#8211; Canonical e 404 residui<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Quando la riscrittura url prestashop funziona, completare il lato SEO cos\u00ec i motori di ricerca smettono di dividere l&#8217;autorit\u00e0 SEO tra duplicati e percorsi morti.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>In <strong>Parametri del negozio \u2192 Traffico e SEO<\/strong>, impostare <strong>Reindirizza all&#8217;URL canonico<\/strong> su <strong>301 Moved Permanently<\/strong> su un negozio live.<\/li>\n<li>Controllare i moduli di terze parti che aggiungono URL di elenchi o blog &#8211; servono canonical coerenti anche l\u00ec.<\/li>\n<li>Dopo rinomina slug, spostamenti di categoria o cambio dominio, aggiungere 301 dai vecchi percorsi (oppure ripristinare l&#8217;entit\u00e0). Cambiare schema URL senza redirect brucia posizionamenti gi\u00e0 conquistati.<\/li>\n<li>Inviare una sitemap aggiornata cos\u00ec i crawler rilevano gli URL preferiti &#8211; vedere la nostra <a href=\"https:\/\/presta.site\/blog\/it\/cose-una-sitemap-e-come-lavorarci-in-prestashop\/\">guida alla sitemap PrestaShop<\/a>.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Usare la copertura Search Console (oppure i log di accesso) per elencare i percorsi 404 reali che colpiscono ancora il server. Correggerli con redirect o ripristini di contenuto &#8211; la riscrittura da sola non far\u00e0 rivivere pagine CMS eliminate.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Verifica:<\/strong> l&#8217;opzione canonical \u00e8 301; un percorso prodotto alternativo di prova reindirizza; i vecchi slug noti che contano sono reindirizzati o intenzionalmente rimossi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Riepilogo rapido dei 5 passaggi<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Individuare il sintomo (A brutti \/ B pretty 404 \/ C solo un dominio).<\/li>\n<li>Confermare Friendly URL S\u00ec + svuotamento cache (+ <code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> scrivibile su Apache).<\/li>\n<li>Sistemare <code class=\"codecolorer text default\"><span class=\"text\">mod_rewrite<\/span><\/code>\/<code class=\"codecolorer text default\"><span class=\"text\">.htaccess<\/span><\/code> su Apache o le regole del blocco server su Nginx.<\/li>\n<li>Verificare un prodotto: link leggibile + ricaricamento diretto = 200.<\/li>\n<li>Impostare canonical 301 e ripulire 404 residui \/ sitemap.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Se si ricorda una sola abitudine: dopo ogni modifica, ritestare lo stesso URL prodotto prima di aprire l&#8217;impostazione successiva. \u00c8 cos\u00ec che la riscrittura url prestashop smette di essere un ciclo di tentativi a caso.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>Friendly URL rotte? Seguire questa checklist in 5 passi per la riscrittura url prestashop: sintomo, toggle nel Back Office, Apache o Nginx, verifica, poi canonical e 404 residui.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[140],"tags":[],"class_list":["post-1045","post","type-post","status-publish","format-standard","hentry","category-sviluppo"],"_links":{"self":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1045","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/comments?post=1045"}],"version-history":[{"count":1,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1045\/revisions"}],"predecessor-version":[{"id":1989,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/posts\/1045\/revisions\/1989"}],"wp:attachment":[{"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/media?parent=1045"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/categories?post=1045"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/presta.site\/blog\/wp-json\/wp\/v2\/tags?post=1045"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}