Impostare il permalink migliore su WordPress

ATTENZIONE: questo articolo è stato scritto oltre un anno fa, ed i contenuti potrebbero non essere più validi o compatibili. Sei pregato di tenerne conto, e se hai informazioni in merito di segnalarmele, grazie.
Versione aggiornata e attualizzata di un articolo originale del 20 luglio 2009

Perché è importante avere permalink ben strutturati?

  1. È amichevole per i visitatori
  2. È utile all’ottimizzazione sui motori di ricerca.

Non necessariamente in quest’ordine, dipende dall’importanza che si da ai propri visitatori ed ai motori di ricerca.
Io nel mio piccolo cerco di dare la giusta importanza ad entrambi, ed ho scelto quello che potrebbe essere definito un compromesso.

Permalink migliore per WordPress

È una scelta ragionata ma pur sempre personale, e possono esserci altre considerazioni da fare.

Il permalink migliore? Dipende…

Parliamo di permalink, che è un termine che va bene per tutto, ma dato che parliamo anche di WordPress, ogni riferimento è per le sue impostazioni dei Permalink.

Se andiamo a guardare quello che scrivono in rete gli esperti SEO, la soluzione migliore per l’ottimizzazione per i motori di ricerca dovrebbe essere una cosa del genere:

/%post_id%-%postname%/

Io per il mio blog preferisco la versione postname. WordPress la chiama “Nome articolo”, ma non è detto che corrispondano. Ma questo lo vediamo più avanti. La trovo più semplice e immediata:

/%postname%/

In certi casi può essere utile anteporre la categoria al postname. Ad esempio in un Ecommerce, dove le categorie potrebbero corrispondere ai settori merceologici, o ad un sito di IT con specifiche categorie di interesse. Alle volte il permalink diventa lungo una quaresima, può non piacere, ma potrebbe essere utile sia al visitatore, per orientarsi, che alla SEO.  Si ottiene così:

/%category%/%postname%/

Altrimenti, se nel blog ci sono più autori a firmare gli articoli, e non stiamo parlando di un WordPress in modalità multisite, si potrebbe valutare anche la soluzione del nome dell’autore prima del postname:

/%author%/%postname%/

Il postname non è il titolo.

Il titolo dell’articolo è importante. Deve essere chiaro al visitatore, e possibilmente utile al motore di ricerca.

La regola SEO non vuole che sia più lungo di 60 caratteri, ma ce n’è abbastanza per essere molto descrittivo. Il permalink troppo lungo non va bene, è brutto e scomodo, meglio perciò togliere tutto il superfluo e lasciare solo il minimo necessario.

Io di solito uso titoli che spero siano utili ai visitatori, se riesco a metterci le keyword che mi interessano per Google bene, ma se questo va a complicare la vita del lettore lo evito. Mentre per i permalink penso più ai motori di ricerca, brevi e con le keyword che mi interessano.

Ecco perché prima ho scritto che titolo e postname non devono essere necessariamente uguali.

Ma il rewrite funziona?

Di solito il rewrite, ovvero quel modulo del server web che permette la riscrittura delle URL, è attivo di default in tutte le installazioni. Qualche anno fa magari no. Se il rewrite non è attivo, o non funziona bene, non funzionano nemmeno i permalink.

Nel caso, rivolgersi (o prendersela) con il proprio fornitore di hosting.

E se un domani vogliamo cambiare i permalink?

Metti che all’inizio abbiamo pensato di mettere la data nei permalink. Dopo qualche centinaio o  migliaio di articoli cambiamo idea, e vogliamo solo il postname. Si può fare?

Sì, i permalink possono essere cambiati in qualsiasi momento.

WordPress è intelligente, il suo motore memorizza tutti questi cambiamenti e risolve sempre i nuovi link.

Fino a qualche aggiornamento fa di WordPress, cambiare i permalink ad un blog avviato, magari con molti articoli, poteva incidere pesantemente sulle prestazioni del sistema. Con la versione 3.3 di WordPress hanno fatto importanti modifiche in questo senso, tanto che non è praticamente più un problema.

Ci dobbiamo solo preoccupare che il passaggio dal vecchio permalink al nuovo avvenga con un codice di risposta 301, che tradotto per gli umani significa che il link è stato definitivamente spostato. È importante per i motori di ricerca, per non perdere l’indicizzazione faticosamente guadagnata.

A questo si può ovviare in due modi:

  1. A manina, intervenendo sul file .htaccess a suon di regole di rewrite ed espressioni regolari.
  2. Grazie ad uno dei tanti immancabili plugin a disposizione: un paio giusto per gradire:

Credo di non aver dimenticato nulla. Tu hai deciso che permalink usare?

Tags: , , , , , ,

46 Risposte a “Impostare il permalink migliore su WordPress”

  1. Massimo De Dominicis 3 Mar 2010 at 11:08 #

    Ciao Rob…
    Volevo chiederti perchè, se non inserisco index.php davanti alla stringa della struttura personalizzata, mi restituisce l’errore 404?

    • robrota 3 Mar 2010 at 11:24 #

      Non dovrebbe, sbagli per caso sintassi?
      Prova a postarla

      rob

  2. Massimo De Dominicis 3 Mar 2010 at 12:05 #

    Grazie Rob….
    SOno uno stupido. Sono andato a vedere nel File httpd.conf ed ho trovato che…
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    Ho cambiato in…

    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    # Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    Ora mi permette di togliere index.php

    Ora il problema è che nell’archivio dei motori di ricerca c’è un’altra URL.
    Quindi usciranno fuori una catastrofe di errori 404.

    Quella regoletta che hai scritto sopra io non l’ho capita…. bada bene, son io che sono scarfso in queste cose….
    Cosa dovrei scrivere esattamente per ovviare a questo problema?
    Il mio htaccess è questo…

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

  3. robrota 3 Mar 2010 at 12:10 #

    La modifica di AllowOverride è necessaria affinché il rewrite funzioni.

    Ora devi risolvere il problema dei 404 con delle regole di rewrite, ma bisogna sapere la struttura originale, ossia che cosa c’era prima come URL e cosa c’è adesso, molte cose le puoi semplificare con le espressioni regolari.

    C’era anche un plugin che aiutava in questo, proprio per evitare problemi in caso di modifiche ai permalink, ma non me lo ricordo in questo momento…

    • robrota 3 Mar 2010 at 12:11 #

      rettifico, il plugin l’avevo indicato alla fine dell’articolo, opsss…. 😉

  4. Massimo De Dominicis 3 Mar 2010 at 12:18 #

    Prima la URL era composta in questo modo…
    http://bareden.syte.net/index.php/nome dell’articolo
    ora
    http://bareden.syte.net/nome dell’articolo

    se potessi evitare il plugin sarebbe meglio….

    COme ti ho detto non sono pratico e non so cosa siano le espressioni regolari.
    Potrei fare solamente un copia e incolla, se mi scrivi la formula 🙂

    • robrota 3 Mar 2010 at 12:24 #

      Per quel tipo di URL una cosa del genere nell’htaccess dovrebbe funzionare:

      RewriteRule ^/index.php/(.+) http://bareden.sytes.net/$1 [R=301,L]

      Mettila alla fine dell’htaccess, dopo la parte scritta da wordpress.

      rob

  5. Massimo De Dominicis 3 Mar 2010 at 12:40 #

    Immenso, grandissimo ROB!!!!!
    Funziona!!!!!

    • robrota 3 Mar 2010 at 12:46 #

      seguirà fattura… 😉

      tieni presente che forse avrai altri permalink da modificare, categorie tags etc, ma basta che fai delle rules ad arte partendo da quella sopra.

      rob

  6. Massimo De Dominicis 3 Mar 2010 at 13:07 #

    Ancora grazie ROBBBBBBBB!!!!

  7. Massimo De Dominicis 3 Mar 2010 at 21:01 #

    Purtroppo dopo avere fatto le modifiche al modulo rewrite, rendendolo attivo, il tempo di caricamento delle pagine è diventato impossibile… ho dovuto rimettere tutto come prima :-((

    • robrota 3 Mar 2010 at 22:02 #

      Non credo sia un problema del rewrite, a meno che tu non abbia scritto male qualche regola, piuttosto qualcosa che non è configurato bene in apache. difficile dirlo pero’ così…

  8. Massimo De Dominicis 4 Mar 2010 at 00:02 #

    Questa è ciò che è scritto in htaccess..

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    RewriteRule ^/index.php/(.+) http://bareden.sytes.net/$1 [R=301,L]
    # END WordPress

    Penso anche io che possa dipendere dalla configurazione di Apache…
    Però io non ho toccato nulla, ho solo attivato il mod rewrite…. non saprei proprio dove mettere le mani.

    • robrota 4 Mar 2010 at 00:18 #

      Guarda, io ho degli htaccess con decine e decine di regole, quello di tevac supera credo il centinaio di regole abbondanti. Lo stesso apache di tevac gestisce una 10ina di blog in wordpress, e in nessuno ho installato supercache o come diavolo si chiama.

      Chiaro che apache deve essere comunque ottimizzato, la configurazione di default specie su Mac OS X non è il massimo, specie se si utilizza ancora la versione 1.3.x, occorre vedere quanti processi gestisce, come si comporta il sistema quando vengono chiamate le pagine, se il load average si alza molto e altre cosine del genere.

      Insomma non è banale…

  9. Massimo De Dominicis 4 Mar 2010 at 00:26 #

    Ho capito… ci rinuncio, pazienza.
    Semmai quando installerò Snow Leopard sul server proverò di nuovo.
    Comunque grazie.

  10. Davide 19 Mar 2010 at 16:41 #

    Per fare invece il rewrite in htaccess dei tag in modo da avere la seguente situazione:

    da
    mioblog.com/tag/pippo

    a
    mioblog.com/pippo

    Sapete come si fa?

    • robrota 19 Mar 2010 at 20:02 #

      esattamente come descritto sopra:

      RewriteRule ^/tag/(.+) http://mioblog.com/$1 [R=301,L]

      rob

  11. Sergio 27 Mar 2010 at 16:03 #

    Ciao Rob!

    Avrei una curiosità:
    Ho da poco installato l’ultima versione di WordPress. 2.9.2 XXL.
    Ho adottato il permanent link nella versione

    /%category%/%postname%

    E funziona…
    L’inconveniente è nel momento in cui clicchi sul link della categoria corrispondente (esempio news) l’url mi appare in questa versione:

    category/news

    Per evitare l’uso della directory “category” ho provato a usare come base della catagoria un’altra keyword, ma pare che abbia difficoltà a trovare le pagine nel momento in cui riscrive l’url:

    altraurl/news

    Cosa che invece non succede, invece, utilizzando come base “categoria”. Credo possa trattarsi di un baco.

    Mi chiedevo, a questo punto, per baypassare il problema, se fosse possibile omettere nella rescrittura delle url la parola

    “category” utilizzando però sempre la versione:

    /%category%/%postname%

    in maniera da poter avere, per ogni link alla categoria,
    la verione

    /news

    in luogo di category/news

    Ho provato a utilizzare la stessa logica che hai segnala in un precedente post per il caso del “tag”, cioè

    RewriteRule ^/tag/(.+) http://mioblog.com/$1 [R=301,L]

    quindi aggiungendo

    RewriteRule ^/category/(.+) http://mioblog.com/$1 [R=301,L]

    ma non funziona né l’uno né l’altro.

    Come posso risolvere l’inconveniente secondo te?

    Saluti
    Sergio

    • robrota 29 Mar 2010 at 09:32 #

      Ciao Sergio,
      non può funzionare perché non esiste un link che punta a /news (inteso come link di categoria)

      la faccenda si fa più complessa, secondo me bisognerebbe creare una nuova funzione per i link delle categorie che preveda il solo nome della categoria, una volta fatto puoi fare tutti i rewrite che vuoi.

      rob

  12. Sergio 1 Apr 2010 at 09:03 #

    Infatti, pensavo anch’io una cosa del genere. Bisognerebbe lavorare sullo script che genera l’url di categoria. Sai in quale file e in quale cartella si trova per caso?

    Sergio

    • robrota 1 Apr 2010 at 09:18 #

      non conosco worpress così a fondo, anche perché preferisco non mettere le mani nel core ma limitarmi alle funzionalità che posso controllare sul tema, dove di solito c’è un functions.php (o una cartella functions) dove si possono fare tutte le modifiche che si vuole senza paura di devastare l’applicazione.

      mi viene pero’ da pensare che dentro wp-includes ci sia più o meno quello che cerchi.

      rob

  13. Mark65 16 Dic 2010 at 01:10 #

    Ciao a tutti c’è qualcuno che mi sa dire come inserire un’url esterno originale nel testo di un post visto che il permalink me lo modifica e quindi mi trasforma un collegamento che mi da errore .
    Il link esterno è una queri ad un sito permalink modificando la queri non mi fa più raggiungere il sito esterno

  14. robrota 16 Dic 2010 at 16:39 #

    @mark..

    spiegati meglio non ho capito il problema.

  15. Cristian Alexandru 10 Set 2011 at 14:31 #

    ciao, e posibile avere un permalink
    http://www.sitename.it/id/www.kijiji.com senza che punto cambia con –

    • robrota 11 Set 2011 at 23:58 #

      Ciao Cristian, no non è proprio possibile usare punti dopo l’estensione del dominio

      rob

  16. Massimo De Dominicis 7 Dic 2012 at 20:09 #

    Sempre interessante questo articolo. E’ trascorso un po di tempo ed ora funziona tutto. Però questa paginetta me la metto tra i preferiti!
    Grazie ancora Rob!

  17. francesco 8 Gen 2013 at 01:04 #

    Ciao, non sono espertissimo anzi… Ti volevo chiedere questo: se riscrivo i permalink per non perdere le pagine indicizzate basta installare il plugin Cardy Redirect Plugin e fa tutto da solo ?… cioè se un visitatore clicca nell’indice di google su un articolo che prima era indicizzato http://www.miosito/p=2393 riesce ad aprire l’articolo http://www.miosito/esempio (se l’ho riscritto così) ? oppure gli da una pagina di errore ?

    • Roberto Rota 8 Gen 2013 at 01:13 #

      Momento, il problema sussiste se tu cambi il permalink, tra due tipi basati sul rewrite, ma non c’è se il vecchio link è la richiesta PHP originaria di wordpress senza il rewrite, quei link ai post che finiscono con una roba simile a questa: “?p=12356”

      Questo tipo di link funziona sempre, con o senza il rewrite. Non ha bisogno di essere corretto, viene sempre indirizzato al permalink corretto.

      Spero di essermi spiegato bene 🙂

      rob

      • francesco 8 Gen 2013 at 20:17 #

        Ho fatto il rewrite , ma appena salvo mi bdece che devo modificare il fite htaccess, cosa che non so fare, e non mi apre piu nessuna pagina del sito tranne la home. Come posso fare ….. ? grazie

        • Roberto Rota 8 Gen 2013 at 21:16 #

          significa che wordpress non riesce a modificare il file .htaccess che dovrebbe essere nella cartella principale del blog.

          O via FTP cambi i permessi al file, in modo che wordpress possa scriverlo, oppure modifichi il file tu stesso, inserendoci dentro quello che wordpress ti presenta nella finestra di errore.

          rob

  18. Francesca 6 Ago 2013 at 16:04 #

    Ciao,
    hai consigli per i permalink da impostare per le pagine generate con WooCommerce?

    • Roberto Rota 6 Ago 2013 at 16:33 #

      Ciao Francesca, a mio parere valgono le stesse considerazioni per i post e le pagine.
      L’unica differenza è l’utilizzo di una base chiara (tipo quella delle categorie per capirci) per differenziare senza possibilità di dubbio lo store dal blog o altre sezioni del sito.

      rob

  19. Andrea 31 Dic 2013 at 17:52 #

    Ciao Roberto
    premetto che non so nulla di programmazione, ho iniziato a creare un sito per lo studio http://www.studiocastello.it ho incontrato un problema che non riesco a risolvere e non ho trovato nessuna indicazione in rete: quando scelgo una categoria le pagine me le richiama ma se scelgo gli articoli (corsi,o altro) mi da errore 404.
    Cosa posso fare ?
    Grazie Andrea

    • Roberto Rota 31 Dic 2013 at 18:00 #

      Ciao Andrea, sembra un problema di rewrite, così ad occhio e croce, ma senza guardarci dentro è difficile dire di più.

      rob

      • Andrea 2 Gen 2014 at 16:43 #

        Cosa posso fare per verificare se è un problema di rewrite ?

        Andrea

  20. mc 22 Feb 2016 at 15:18 #

    salve sul mio sito, un piccolo giornale utilizzo wordpress 4.2. All’inizio per gli articoli utilizzavo la formula …/yyyy/mm/dd/post_name poi ho utilizzato la formula senza la data. Quale conviene usare? Devo usare una base per i permalink con le categorie prima del nome del post?

    ciao grazie!

    • Roberto Rota 22 Feb 2016 at 16:43 #

      Ciao, ogni sito c’ha i permalink che si merita.

      Mi spiego meglio, io ho un blog senza esigenze particolari, e il solo titolo del post mi va più che bene. La base delle categorie anche qui dipende dal sito, per un blog “argomenti” a mio avviso va più che bene, per un quotidiano di cronaca nera magari no.

      Lo stesso per la data, magari per un sito di news il riferimento cronologico è importante, per un sito di discussioni letterarie invece no.

      È vero che poi c’è anche la SEO da guardare, che alla fine vuol dire link amichevoli, ma la navigazione viene prima.

      rob

  21. yourstile75 20 Apr 2016 at 09:15 #

    Salve a tutti, scusate se mi accodo alla discussione…
    io avrei necessità di modificare la struttura dei permalink di woocommerce… in pratica da
    /prodotto/%product_cat%
    a
    /%product_cat%
    ma quando salvo mi ritorna sempre la struttura /prodotto/%product_cat%
    Qualche suggerimento?
    Grazie

  22. Angelo Saponaro 14 Lug 2016 at 09:42 #

    Salve sign. Roberto,
    ho un problema che affligge il sito che curo.
    In particolare quando passo da una categoria ad un’altra o da un prodotto ad un altro spesso e volentieri la pagina rimane su quella precedentemente visitata ma nella barra dell’indirizzo il tutto risulta corretto tant’è che cliccando il pulsante aggiorna del browser mi restituisce la pagina corretta.
    Questo succede da più browser tant’è che in più persone mi hanno comunicato il problema.
    Non mi si presenta invece con la modalità incognito di chrome.
    Da cosa può dipendere?
    Mi può dare gentilmente lumi?
    Grazie mille
    Angelo

    • Roberto Rota 14 Lug 2016 at 11:30 #

      Ciao Angelo, così ad occhio e croce direi un malfunzionamento del sistema di cache, o qualche impostazione sbagliata nello stesso.

      rob

      • Angelo Saponaro 30 Ago 2016 at 16:37 #

        Buongiorno Roberto,
        ho ancora problemi con il sito, se si cliccano i link questi risultano non funzionanti, rispediscono sulla stessa pagina caricata inizialmente.
        Mi da una dritta su i tentativi da fare per scovare il problema?
        Può dare una controllata?
        Grazie mille
        Angelo Saponaro

        • Roberto Rota 30 Ago 2016 at 17:24 #

          Se resettando i permalink non funziona, hai qualche problema con il tema o qualche plugin.

          rob

Trackbacks/Pingbacks

  1. Regole di Rewrite utili per siti web | RobRota - 7 Set 2009

    […] di Rewrite utili per siti web 7 set 2009 di robrota. Abbiamo già incrociato i RewriteRule per i permalink di WordPress, quando si trattava di capire qual’era l’URL più utile e amichevole da utilizzare per […]

  2. Come mostrare lo shortlink negli articoli di WordPress | Roberto Rota - 15 Ott 2012

    […] e/o particolari accorgimenti, che è quello della query in PHP senza l’utilizzo del rewrite (vedi permalink di WordPress), pratica oramai obbligatoria per rendere l’URL più amichevole, per il visitatore ma […]

Dubbi o suggerimenti? Lascia un commento!

I love Instagram