Articolo scritto da Andrea Cardinali.
Molti di voi come me si saranno posti almeno una volta questa domanda. Sul web ci sono diverse opinioni più o meno autorevoli a riguardo, quelle più in voga sono le seguenti:
/%category%/%postname%/ o in alternativa : /%postname%/
Affidandomi a questi consigli mi sono ritrovato con un sito lentissimo e inutilizzabile.
Se anche i vostri permalink hanno questa struttura, non preoccupatevi perché vi spiegherò come potrete risolvere il problema.
Prima di tutto spiegherò perché questa struttura è la meno performante.
Alcune informazioni fanno riferimento a versioni di WordPress precedenti alla 3.3. Consiglio di controllare la sezione Aggiornamenti
1. Come funziona WordPress
WordPress come qualsiasi CMS ha bisogno di “capire” quale pagina o post restituire in base all’url richiesta; questa processo richiede un certo numero di ricerche all’interno del database e a seconda della sua dimensione questo processo può richiedere più o meno tempo.
WordPress ha una serie di regole (RewriteRules) memorizzate al suo interno che vengono confrontate ad ogni richiesta con l’url richiesto. E’ importante quindi che siano poche e il più efficienti possibile. Leggendo il codice sorgente si vede che le regole utilizzate sono le seguenti (notare l’ordine):
- /robots.txt (File robots.txt virtuale)
- /feed/*
- /comments/*
- /search/* (url seo friendly per le ricerche)
- /category/%category% (archivio delle categorie)
- /tag/%tag% (archivio tag)
- /author/%author% (archivio autori)
- /%year%/%month%/%day% (ricerca per data)
- /%X%/%Y% (struttura personalizzata definita dall’utente)
- /%pagename% (qualsiasi pagina)
WordPress inizia a confrontare l’url richiesta con le regole dall’alto verso al basso e si ferma quando trova una corrispondenza. Se non esiste viene restituita una pagina 404.
Da questa gerarachia si nota come le regole sono (dall’alto verso il basso) sempre meno specifiche e lineari.
Vorrei farvi notare che dal punto 2 al 7 (feed, comments, category ecc) sono presenti suffissi necessari a velocizzare la ricerca, e rimuovendoli si va ad aumentare la complessità della ricerca. Attenzione quindi ad utilizzare plugin quali WP No Category Base e similari (WP SEO ad esempio) che permettono l’eliminazione del prefisso /category/.
Attenzione! Il numero di regole si triplicherà in base al numero di categorie presenti per cui se ad esempio avete nel vostro blog 20 categorie, vi verranno aggiunte 60 regole (oltre alle 70 di default).
Più avanti nel post troverete anche come contare il numero di regole in modo da potervi rendere conto voi stessi della situazione del vostro blog.
2. Il problema
Cosa succede quindi quando andiamo ad impostare la struttura dei permalink a: /%category%/%postname% ?
Le regole diventano (riprendendo la gerarchia):
- […]
- /%category%/%postname%
- /%pagename% (qualsiasi pagina)
Violiamo il principio secondo il quale la regola successiva deve essere più generica della precedente e in questo modo diventerebbe impossibile accedere ad una qualsiasi pagina, in quanto WordPress si fermerebbe alla regola 9.
WordPress accorgendosi di questa situazione , setta quindi una variabile “use_verbose_page_rules” a true (wp-include/rewrite.php:1910)
// Enable generic rules for pages if permalink structure doesn't begin with a wildcard. if ( preg_match("/^[^%]*%(?:postname|category|tag|author)%/", $this->permalink_structure) ) $this->use_verbose_page_rules = true; else $this->use_verbose_page_rules = false;
e quindi rigenera tutte le regole in questo modo:
- /robots.txt (File robots.txt virtuale)
- /pagina1/
- /pagina2/
- […]
- /paginaN/
- [….tutte le pagine…]
- /feed/*
- /comments/*
- /search/* (url seo friendly per le ricerche)
- /category/%category% (archivio delle categorie)
- /tag/%tag% (archivio tag)
- /author/%author% (archivio autori)
- /%year%/%month%/%day% (ricerca per data)
- /%category%/%postname% (nostra struttura dei permalink)
- /categoria/news-1
- /categoria/news-1/feed
- /categoria/news-1/comments
- /categoria/news-1/page
[…]
- /categoriaN/news-N
- /categoriaN/news-N/feed
- /categoriaN/news-N/comments
- /categoriaN/news-N/page
Come avrete notato l’aumento delle regole dipende dal numero di categorie post e pagine presenti.
3. Come quantificare la gravità del problema
Tutte queste regole, sono salvate all’interno del database, nella tabella wp_options in una campo chiamato rewrite_rules. Nel database troverete una stringa che corrisponde ad un array serializzato. Ad ogni elemento dell’array corrisponde una regola. E’ sufficiente che controlliate il numero dopo a:
Ora diciamo che non esiste un numero che va bene e un altro no, l’importante è riuscire a tenere il numero più basso possibile. Nel mio caso, sono passato da 20247 a 305. Non male no? J
4. Altri sintomi
Il problema è subdolo perché non si manifesta in modo immediato. Il sito inizierà ad essere (inspiegabilmente) più lento e la lentezza sarà direttamente proporzionale al numero di post, pagine e allegati inseriti (tutti memorizzati nella tabella wp_posts). Se il vostro sito genera genera e non avete plugin di caching su disco vi accorgerete che la cpu del vostro server sarà perennemente occupata al 100% dal processo che esegue php e/o dal processo MySql. Questo perché WordPress ad ogni richiesta effettuerà il parsing tramite regular expression di tutte le regole presenti all’interno dell’array. Nel peggiore dei casi quindi l’individuazione di un articolo può richiedere N confronti, per url richiesto, per utente. N naturalmente è il numero di regole generate. Anche potenziando il server, la situazione non migliorerà di molto, allontanerete solo momentaneamente e parzialmente il sovraccarico del server.
Un primo campanello di allarme può essere il tempo trascorso tra la pressione del tasto salva/aggiorna e il momento in cui effettivamente WordPress ha terminato il caricamento dei dati.
Questo perché WordPress ad ogni aggiornamento, ricrea tutte le regole e le salva nel database.
Se durante questa operazione o durante la visualizzazione della pagina d’impostazione dei permalink ricevete il messaggio di errore “MySql has gone away” è perché il server non è in grado di aggiornare i dati nel database in quanto si stanno inviando troppi dati (= le rewrite rules serializzate). Vedi anche la sezione Aggiornamenti più sotto.
5. La soluzione
A questo punto possiamo analizzare i risultati delle prove che ho fatto su una nuova installazione di WordPress, con o senza plugin per rimuovere il prefisso /category/.
Partiamo con il dire che le soluzioni che iniziano con un numero sono le più performanti. Naturalmente se il numero in questione è %post_id% si ottiene la soluzione più performante in assoluto. Anche iniziando con l’anno le performance sono molto buone e simili a quelle di %post_id%.
Dal grafico si nota quanto esposto. A un valore più basso corrispondono prestazioni migliori.
Quindi nell’ordine:
- /%post_id%/
- /%post_id%-%postname%/ oppure /%post_id%_%postname%/
- /%year%/%monthnum%/%day%/%postname%/
/%year%/%monthnum%/%postname%/
/%year%/%monthnum%/%category%/%postname%/
- /%post_id%/%postname%/
- /%postname%/
- /%category%/%postname%/
Le ultime due strutture (quelle consigliate da tutti), 5 e 6 sono le peggiori, in quanto aumentano il numero di regole con l’aumentare del numero di pagine. Per ogni nuova pagina vengono infatti aggiunte 11 regole.
Dai test effettuati è inoltre emerso che utilizzando un plugin che rimuove il prefisso /category/) vengono aggiunte 3 regole per ogni categoria. (in questi test ho utilizzato WP SEO)
Vi posso tranquillizzare dicendo che gestisco un sito in cui sono presenti circa 500 pagine, più di 4000 news, 63 categorie e un paio di plugin tra i quali WP SEO che aggiungono regole a quelle già presenti di default. Il sito presenta attualmente circa 300 regole (di cui 190 create dalle categorie) e naturalmente è molto veloce nel restituire le pagine mentre prima della correzione ai permalink le regole erano circa 20.400 e un url impiegava diversi secondi per essere riconosciuto.
Ho cambiato la struttura da /%category%/%postname%/ a /%year%/%monthnum%/%category%/%postname%/ in quanto avevo la necessità di mantenere la categoria negli url più per una questione di usabilità che di SEO.
Per passare in modo indolore ho realizzato un plugin semplicissimo che si occupa di effettuare il redirect dagli url vecchi a quell nuovi. La realizzazione si è resa necessaria in quanto l’unico plugin disponibile Dean’s Permalink Migration non funziona correttamente in quanto invece di effettuare dei redirect 301 restituisce status code 404 Pagina non trovata.
Il plugin è disponibile a questo indirizzo: http://www.andreacardinali.it/wordpress/cardy-redirect-plugin/ e a breve anche nel repository dei plugin WordPress
6. Aggiornamenti
Visto che questo articolo sta creando diverse discussioni interessanti anche su Twitter, abbiamo deciso inserire qui, le informazioni più interessanti (aggiorneremo questa parte di volta in volta):
- Io e Andrea consigliamo la struttura n°2 per i permalink ovvero: /%post_id%-%postname%/. I motivi sono molteplici giusto per citarne un paio:
- è performante
- è sufficentemente ottimizzata per i motori di ricerca
- torna utile per Google News. Come spiegato in questo articolo per inserire il proprio sito in Google News è necessario avere delle url con una parte numerica univoca (ovvero l’ID). Utilizzando l’ID nell’url si evita di dover ricorrere all’utilizzo di un sitemap specifica. Per sopperire a questa esigenza Andrea Pernici ha realizzato un comodo plugin per WordPress che permette la creazione automatica della sitemap news. Il plugin è disponibile qui. Per la cronaca è possibile utilizzare anche la struttura: /%post_id%/%category%/%postname%/ che pur non essendo così performante come quella consigliata si comporta comunque egregiamente.
- Il rallentamento si manifesta in maniera sempre più evidente con l’aumentare delle pagine. In teoria quindi evitando di utilizzare le pagina si può aggirare il problema.
- Utilizzando W3 Total cache si noterà che il numero di query effettuato verso il db è impressionante (nell’ordine delle centinaia) quando un sito “standard” non dovrebbe effettuare più di 20/25 query.
Aggiornamento del 20.07.2011
Gleenk segnala che Andrew Nacin, uno degli sviluppatori di WordPress ha detto che forse il problema verrà risolto con la versione di WordPress 3.3, di cui ancora non è stata stabilita l’uscita. Al momento è prevista entro il 2011. Potete quindi scegliere se attendere una soluzione o sistemare subito i problemi cambiando struttura e utilizzando il plugin da me realizzato.
Aggiornamento del 04.08.2011
- Utilizzare una struttura permalink che termina con un’estensione, sia essa .html , .php (o qualsiasi altra vi venga in mente) non porta vantaggi dal punto di vista di posizionamento.
- Sul blog ufficiale degli sviluppatori di WordPress, esattamente a questo indirizzo: http://wpdevel.wordpress.com/2011/07/27/wordpress-3-3-proposed-scope/ si parla delle nuove features che saranno presenti nella versione di WordPress 3.3. Tra le tante verrà risolto finalmente il problema di prestazioni legato alla struttura dei permalink di cui si parla in questo articolo. Due programmatori si sono fatti carico della risoluzione del bug, quindi non resta che attendere 😀
Aggiornamento del 03.01.2012
Il 12 dicembre 2011 è uscito WordPress 3.3 con diverse novità tra cui la risoluzione del problema di performance. Per sapere cos’è cambiato, vi invito a leggere questo articolo su Giorgiotave.it
About The Author
Andrea Cardinali
Andrea Cardinali - esperto Wordpress - è programmatore e seo presso GT Idea s.r.l.
Molto interessante, io mi affidai tempo fa a /%year%/%monthnum%/%postname%/
Il numerino del campo rewrite rules è 74, dovrei essere a posto 🙂
Ciao Matteo, la tua struttura va benissimo è infatti e tra quelle consigliate, anche nella documentazione ufficiale..
Quella struttura inoltre è anche consigliata se usi WPML quindi di fatto parlando puramente di CMS senza alcun aspetto SEO è sicuramente una buona scelta.
I miei complimenti Andrea!:) Veramente un post utilissimo.
Complimenti per la spiegazione. Molto chiarificatrice, almeno per me che, dopo aver letto i recenti articoli in merito avevo iniziato ad andare in panico. Veramente interessante, +1!
Sono contento, che l’articolo si stia rivelando utile 🙂
Mi raccomando ragazzi considerate il post per quello che è 🙂 Nel senso che qui non si parla espressamente di URL SEO, ma si parla anche di implicazioni sulle performance del noto CMS WordPress.
Questo appunto è solo per dire che in ogni caso può esserci una soluzione diversa e dunque se avete in programma di mettere su un sito che avrà milioni di post allora iniziate a ragionare anche sulle performace mentre se avete un sito di 20-30 pagine potete anche stare sereni.
Per caso qualcuno sa se stanno pensando di modificare questo sistema nelle prossime release per rendere performanti tutte le strutture?
Non credo, visto che è da diverse versioni (dalle 2.7 o prima)
che sconsigliano quella struttura. Soprattutto visto e considerato
che ci sono già strutture più performanti.
Qual’è il problema? Hai paura di perdere traffico o non ti piace
l’ID nell’url? Ti garantisco che il cambio struttura non comporta
perdita di traffico o posizionamento. 😉
Il problema è che ho provato a cambiare l’url, dopo aver letto di recente un articolo, mettendo prima l’anno del postname. Ho perso in 2gg tutti i visitatori (circa 100 al giorno) provenienti dai motori di ricerca, con tanto di pagine scomparse dalle SERP. Anche perchè in quell’articolo si diceva che wordpress faceva il 301 in automatico… ma evidentemente google non è stato così lesto a capirlo…Quindi ora ho rimesso la struttura originaria e aspetto pazientemente…
Il problema non è di Google. Probabilmente è stato interpretato male il post. WordPress in automatico fa il redirect solo se cambi lo slug (e non il permalink) di un singolo articolo. WordPress conserva il vecchio slug nella tabella wp_postmeta memorizzandolo con la chiave _wp_old_slug. Se invece cambi la struttura di tutti i permalink in una volta sola, WordPress non memorizza queste informazioni anche perche come scritto sopra WordPress memorizza lo slug e non tutto il permalink.
Io ho realizzato il plugin proprio per questo motivo, e cioè per restituire un Redirect 301. In questo modo non perdi niente ne traffico ne posizionamento. L’ho utilizzo attualmente su siti con diverse migliaia di accessi unici giornalieri, per cui stai tranquillo che funziona… 🙂
Allora per i momento vedo se la situazione si riassesta, poi se tutto va a psosto riproverò con il tuo plugin… sperem… io speravo che wordpress facesse un 301 da solo…
Io sono sicuro che funzionerà, ad ogni modo facci sapere come è andata… 😉
Uno dei migliori post letti nei primi 194 giorni del 2011!
Proprio stamattina però suggerivo /%category%/%postname%/ 😀
Che poi è la stessa che uso io, riporto al volo 2 dati :
1)Categorie : 3
2)Post : 108
3)Rewrite rules : 79
Una “formula matematica” dici che sia fattibile provarla a tirarla giù ?
Un saluto dal DON
Ciao DonClaudissimo, sono contento che il post ti sia piaciuto.
In linea di massima la formula la puoi calcolare solo per le ultime 2 strutture (la 5 e la 6) in quanto sono le uniche che variano in base al numero di pagine (+11 regole x pagina).
Inoltre c’è l’incognita della rimozione del prefisso /category/. Utilizzando un plugin per la rimozione, per ogni categoria devi aggiungere 3 regole.
In linea di massima dovresti quindi avere:
73 (il valore solitamente oscilla tra 71 e 76 a seconda della struttura)
+(se usi le strutture 5 o 6) 11*n°pagine
+( se usi il plugin) 3*n°categorie.
Effettivamente utilizzo anche il plugin per la rimozione di /category/ …
Comunque non è male come numero di Rewrite rules…
Un saluto dal DON
Ottimo articolo davvero, ho sempre lavorato con category/postname per ragioni di usabilità oltre che per ragioni SEO, consigliandolo con leggerezza a chiunque incontravo per strada.
Mi fai ricredere, mannaggia a te 🙂
due piccole note che vorrei condividere:
a) la questione del numero nell’URL per Google News, se non vado errato, fortunatamente è stata superata dalla presenza della sitemap di Google News. non è più un requisito vincolante se si installa un plug-in dedicato. ( tipo ad esempio http://wordpress.org/extend/plugins/google-news-xml-sitemap/ )
b) Sfrutto la tua grande competenza in materia per un piccolo chiarimento/integrazione.
Se uno ha moltissimi post ma non ha pagine statiche e categorie, credo non venga afflitto dall’aumento esponenziale delle regole, corretto?
Lo dico leggendo il tuo post e confrontando i dati del mio povero blog personale: non so se dipenda dalla conformazione del mio blog o altro.
Qui i miei dati:
92 Posts
3 Pages
13 Categories
94 Tags
Totale rewriterule –> 156
Tutto sommato 150 rewriterule sono digeribili da qualsiasi webserver in buono stato psicofisico 🙂
Complimenti davvero, un grande killer post su WordPress, chapeau! 🙂
Ciao Andrea e grazie. per rispondere alle tue domande:
a)Come scritto in fondo al post (nella sez. aggiornamenti) per Google News è necessario avere l’id nell’url oppure come giustamente hai osservato, avere una sitemap per le news. Andrea Pernici ha realizzato un plugin per crearla.
b) Così a occhio basandomi sui tuoi dati: 156 -(13*3) – 3*11 = 84 dovresti avere una struttura tipo la 5 o la 6 e un plugin per rimuovere il /category iniziale. Se le tue pagine rimangono poche non avrai particolari problemi, ricordati però che ogni pagina aggiunge 11 regole e ogni categoria 3. Contano anche le pagine nel cestino…
156 va benissimo come valore… Come scritto nel post io ne ho + di 300 e non ho problemi…. Di problemi ne avevo quando avevo più di 20.000 regole 🙂
Grazie del commento Andrea. Un piacere averti qua.
Come scritto nel post c’è anche la possibilità del plugin per google news, ma trattando in parte anche di performance il post l’occhio era anche puntato su avere meno plugin possibile 🙂
Ottimo articolo e complimenti per l’analisi.
Volevo solo far presente che cambiando i permalink,
si perderanno le informazioni sui like di facebook.
Quindi si partirà da zero con “nuove pagine”.
Complimenti per il post! Io sto usando nel mio modestissimo blog una struttura con /%postname%/. Avevo circa 500 rewrite_rules, adesso grazie al tuo post sono passato a 280.
Ho una domanda,lato SEO, se volessi cambiare la struttura dei permalink, riuscirei ad evitare le pagine 404 con il il plugin WordPress SEO Yoast installato? Oppure devo aggirare con i 301 da .htaccess?
Ciao Antonio e grazie per i complimenti. Per cambiare la struttura ho realizzato il plugin lnikato in fondo all’articolo. 😉
Provalo e fammi sapere
Il plugin per il redirect 301 si può rimuovere nel tempo o va lasciato?
Grazie e complimenti per il post. 🙂
Ciao Alessandro, il plugin va lasciato “per sempre” o almeno fino a quando Google & co non rimuoveranno le vecchie url dai lori indici e non ci saranno più link in entrata verso link “vecchi”.
Quindi in pratica si 🙂
Ok, grazie tante Andrea! 🙂
Grazie a te 🙂
È un articolo scritto veramente bene.
Circa un anno fa utilizzavo la struttura %category%/%postname% , ad un certo numero di pagine/articoli (circa 700), il blog è diventato inutilizzabile. Ad esempio se prima consumavo 30 queries per articolo, dopo è arrivato a consumare circa 1800 queries. Immaginate la lentezza e soprattutto il server ko…
Adesso utilizzo %post_id%-%postname% .
Mentre continuo ad utilizzare %category%/%postname% solo in quei blog con pochi articoli.
Il numero di pagine è determinante, per cui o si è certi di non utlizzarle o conviene cambiare struttura.
Visto che Andrea ci teneva a saperlo, posso dire che tornando alla struttura originaria con /%postname%/ le visite si sono riprese dopo 3-4 giorni. Il prossimo passo sarà quindi quello (quando vedrò che le richieste al db stanno aumentando troppo) di seguire la pratica già utilizzata MA installando prima il plugin da te sviluppato… Sperando che stavolta andrà tutto bene 😀
La situazione si è ripristina come previsto..bene 🙂
Io ti consigilerei comunque di non aspettare l’arrivo della situazione critica ma di muoverti per tempo. Se vuoi fare le cose con più sicurezza, puoi copiarti il sito in locale e magari fare dei test.
Ti copi il database, i files dui WordPress e poi cambi il file hosts del tuo computer(windows/system32/drivers/etc) in modo il tuo sito venga associato all’indirizzo ip locale (127.0.0.1). In questo modo digitando http://www.tuosito.it aprirai la copia in locale e potrai verificare sia la correttezza dei redirect che il numero di query verso il db. 😉
Non sono tuttora convinto di cambiare la struttura però. Infatti al momento ho solo 2 pagine e so che non aumenteranno. Inoltre per motivi di seo non intenderei aggiungere un numero a caso (ID) all’url oppure l’anno. E’ questo quello che mi ferma fondamentalmente. Inoltre sono fiducioso sul fatto che wordpress prima che per me sia troppo tardi fixi il problema. Giusto per la cronaca ora sono a circa 360 rewrite rules quindi penso sia sostenibile ancora. O nonostante le mie considerazioni reputi sia ancora il caso di intervenire quanto prima?
Le 2 pagine immagino che siano about e contatti, come nella stragrande maggioranza dei blog. Se sei sicuro che rimarranno 2, e se pensi anche che il numero di plugin non aumenterà nel tempo potresti anche lasciare tutto così. Tiro in ballo il numero di plugin, perchèpossono andare ad aggiungere rewrite rules a quelle già presenti (non tutti naturalmente) . Ad esempio nextgen Gallery è uno di questi.
Anche io ho diversi blog e/o siti WordPress in cui non sono andato a modificare la struttura dei permalink nonostante la consapevolezza che /%category%/%postname% non è la struttura migliore. L’id nell’url dal punto di vista seo non è sicuramente qualcosa di cui preoccuparsi così come l’anno. Gli unici “scrupoli” che potrei farmi in merito al cambio permalink sono relativi all’usabilità del sito. Nel senso che non sciegliendo la struttura corretta, si toglie ai visitatori la possibilità di navigare il sito cancellando parti di url. Inoltre aggiungendo l’anno e/o il mese di pubblicazione all’url c’è il rischio che l’utente non clicchi sull’articolo perchè reputato troppo vecchio (anche se magari ancora attuale), naturalmente anche in questo caso bisogna valutare qual’è l’argomento del sito perchè potrebbe anche essere verò il contrario.
360 rewrite rules mi sembrano un valore accettabile, naturalmente bisognerebbe vedere su quale macchina è ospitato il sito. Come riferimento puoi prendere il numero di ms che impiega la tua pagina per essere generata. Mediamente quanto ci mette il tuo sito a restituire una pagina? (cerca di fare una valutazione in situazioni di traffico “moderato”)
Non credo che WordPress fixi il problema, in quanto non è un bug ma una cosa documentata (poco) nella documentazione ufficiale e tra l’altro la struttura che crea i problemi non è nemmeno selezionabile di default dal pannello di amministrazione di WP. Se rileggi la spiegazione a inizio articolo vedrai che il metodo di risoluzione degli url non è lasciato al caso ma va dal più specifico al più generico. Considerando che questo metodo è utilizzato sin dalle prime versioni di WordPress non credo che gli sviluppatori stravolgano in modo così radicale il tutto, soprattutto perchè non ci sono motivazioni valide per farlo.
Adesso penso di averti fornito degli elementi in più per effettuare una scelta consapevole, ora tocca a te… 😉
Io credo che wordpress abbia tutto l’interesse del mondo a cercare di risolvere il problema invece, dal momento che hanno deciso di diventare un CMS e non una semplice piattaforma di blogging non possono “obbligare” gli utenti che intendono realizzare portali o quant’altro ad utilizzare una struttura “da blog” che cataloghi i post per anno o ID. Al di là del seo è contro ogni logica a mio avviso 🙂
Come ben dicevi tu l’anno non intendo aggiungerlo proprio per il motivo di cui parli, per l’ID farò la valutazione al momento opportuno. Già che ci siamo, quale tool consigli ottimale per effettuare il test di caricamento di cui parli?
Nonono non intendevo Firebug (PageSpeed) nè lo strumento che offre chrome di default. Mi riferivo a qualcosa di più simile a pingdom. Nada, userò quelli (li uso già, ero alla ricerca di qualcosa di nuovo tutto qui ^^)
Io solitamente utilizzo quelli da te citati, ad eccezione di Pingdom che non mi convince molto…
Immagino che con test di caricamento tu intenda lo strumento da utilizzare per visualizzare il caricamento delle pagine. Se ho capito bene quello che mi stai chiedendo, posso consigliarti Firebug, un plugin per Firefox. ha una comoda sezione Net che mostra la pipeline di caricamento dei contenuti della pagina con il tempo necessario a caricare ogni risorsa. Anche in google chrome c’è già integrata una funzionalità molto simile alla quale accedi premendo F12.
Questo test di velocità dovresti eseguirlo su più pagine, possibilmente nelle ore in cui il tuo sito è più trafficato. Il test devi farlo a cache vuota.
Complimenti per questo articolo che sicuramente susciterà delle discussioni molto interessanti.
Mi interrogavo giorni fa sul cambiare la struttura di tutti i permalink. Ma putroppo cambiare la struttura “in corsa” mi sembra una cosa un po’ pericolosa.
Tanto per dirne una: Si perde il conteggio di tutti i like e dei re-Tweet :/
Bellissimo articolo! Grazie!
La prima cosa che ho fatto è stata controllare l’indice nell’option rewrite rules del mio blog: fortunatamente un bel 78! 😀
Hai provato anche con questa struttura /%post_id%/%category%/%postname% ? Mi sembra una buona soluzione sia dal punto di vista SEO che tecnico ma bisognerebbe provare.
Ciao Pasquale, ho provato ache quella struttura. Non l’ho inserita nell’articolo semplicemente perchè equivalente a /%post_id%/. Come soluzione però non mi piaceva in quanto si perde la possibilità di navigare tramite url. Non ho provato se con questa struttura degli url sia possibile utilizzare le breadcrumbs però…
E di /%postname%-%post_id% oppure /%postname%-%year%-%post_id% che ne dite?
Non è ottimale in quanto non inizia con un numero, per cui genererà un sacco di regole…
Grandissimo post, ho appena pubblicato un sunto del tutto sul mio blog e volevo ringraziarti di persona per aver condiviso con tutti la tua dettagliata analisi.
Attualmente la mia struttura personalizzata recita in questo modo :
/%category%/%postname%.html
Mi chiedevo, il plugin che hai realizzato è compatibile?
Grazie.
Grazie dei complimenti.:-) Il plugin non è attualmente compatibile con l’estensione .html (e con le estensioni in genere). Creerò però una patch quanto prima. ti avviso appena è pronto l’aggiornamento. 😉
Graaande, grazie infinite, e per i complimenti non c’è di che, sono tutti stra super mega meritati!
Ciao a tutti,
ho trovato molto interessante questo post, complimenti!
Vorrei un chiarimento e un consiglio se possibile, poichè sono nella fase iniziale del mio sito e sto decidendo per l’appunto come impostare i permalink
1) vorrei capire qual’è la differenza tra “/%post_id%-%postname%/” e “/%post_id%/%postname%/” considerando che la differenza mi pare minima ma la versione con l’underscore addirittura viene segnalata in penultima posizione per le prestazioni!
2) una struttura come /%post_id%-%postname%/%category%/ sarebbe comunque ottimale come struttura?
grazie
Ciao e grazie per i complimenti. Venendo ai tuoi dubbi, le strutture “/%post_id%-%postname%/” e “/%post_id%/%postname%/” sono al 2° posto in quanto a prestazioni e non al penultimo. Guarda la classifica subito sotto il grafico ;-). Inoltre considera che deviv alutare come valide, le strutture che mantengono invariato il numero di rewrite rules all’aumentare delle pagine (quindi tutte quelle proposte tranne la 5 e la 6). Le due strutture da te menzionate dal punto di vista delle prestazioni si equivalgono, per cui è indifferente quale scegli, è solo questione di gusti. Tra le due io personalmente preferisco /%post_id%-%postname%/.
La struttura /%post_id%-%postname%/%category%/ non è così ottimale come le prime due ma va comunque bene. Non mi piace per un discorso di usabilità (vedi i commenti precedenti relativi alla navigazione tramite url) ma se dovessi basarmi solo sulle prestazioni , non la scarterei.
grazie per la pronta risposta andrea, e perdonami l’errore
nel menzionare l’ “underscore” in realtà volevo dire
“slash”, infatti la struttura a cui facevo riferimento e
sulla quale ho il dubbio è la quarta in classifica ovvero
/%post_id%/%postname%/ che a differenza delle seconde in
classifica divide %post_id% e %postname% con uno “/” ..
luca
Nessun problema anche in questo caso. La struttura aggiunge un paio di regole in più ( 5-6 totali) a causa dello slash, ma niente di cui preoccuparsi, visto che poi il numero rimane invariato con l’aumentare delle pagine e/o post. 😉
Ciao Andrea, perdonami per quella cosetta, adesso ho sistemato, è che non sapevo quale fosse il cognome (indirizzo Pernici e nei commenti Cardinali)e preferivo non fare figuracce in proposito 😛
Per quanto riguarda i link io ero intenzionato a mantenere la struttura corrente con la sola aggiunta del /%post_id%/ davanti, quindi /%post_id%/%category%/%postname%.html, dici che sarebbe meglio cambiare eliminando completamente il category?
L’articolo è scritto da me (Andrea Cardinali) ed è un guest post, per cui qui è casa di Andrea Pernici, che ringrazio per la visibilità offertami.
Tornando al tuo dubbio, secondo me è inutile avere la categoria in quel tipo di struttura (la terrei solo nel caso in cui possa agevolare la navigazione), per cui io opterei per un più performante /%post_id%-%postname%.html
Se decidessi comunque di optare per la prima struttura da te proposta, considera che non avresti ugualmente problemi di performance.
Wow se questi sono i tuoi guest post allora io ti dedico
una sezione intera del mio sito!
Comunque non ci ho capito tanto dal tuo messaggio, sei partito
col dire che la mia struttura la scarteresti ma poi hai riproposto
quella da me indicata…
🙂 Scusami ho scritto male in effetti. Ho corretto il commento scritto in precedenza. La struttura che consiglio è questa: /%post_id%-%postname%.html anche se può andare bene la tua in quanto inizia con /%post_id%. Tutto quello che c’è dopo il /%post_id% incide poco sulle performance. Sono stato più chiaro? 🙂
Volevo segnalarvi che in merito al polverone sollevato in materia, Andrew Nacin (developer di wordpress), si è mosso e riferisce tali parole:
Well, and to answer a question from above, “Also, what are the chances that WordPress will have a fix for this in a future version?” — the chances are great that we’ll be removing all performance penalties for %postname% in the release of WordPress 3.3, due later this year.
fonte: http://digwp.com/2011/06/dont-use-postname/
tradotto alla buona, entro fine anno nella versione 3.3 dovrebbero fixare i problemi di performance legati alla struttura /%postname%/ l’articolo (nella parte dei commenti) va oltre ed invito andrea ad ampliare il suo articolo integrando le novità rilevanti. 😉
ciao gente!
Grazie per la segnalazione. non conoscevo l’articolo che tra l’altro è molto interessante e conferma quanto scritto fino a questo momento. In merito alla tua nota su WordPress 3.3, Nacin dice che probabilmente sarà fixato (http://digwp.com/2011/06/dont-use-postname/#comment-25466), ancora non c’è niente di certo però visto che comunque non è l’unico aspetto migliorabile della piattaforma. Inoltre la milestone 3.3 è stata fissata entro il 2011, e quindi potrebbero volerci ancora dei mesi.
Io personalmente sto valutando caso per caso dove intervenire e dove lasciare le cose invariate, è chiaro che potendolo fare è meglio fixare il tutto prima che sia troppo tardi. Sicuramente scegliendo la struttura giusta ci si risparmiano un sacco di problemi, però ome giustamente hai fatto notare si può anche attendere e sperare bene 🙂
Buongiorno Andrea, complimenti per i post molto utile..
Ti volevo fare una domanda…
per il sito http://www.italiah24.it il rewrite_rules è 183
a:183:{s:12:”sitemap.xml$”;s:22:”index.php?feed=si…
la regola che ho impostato è:
/%category%/%post_id%/%postname%.html
e questo un esempio bello lungo
http://www.italiah24.it/regioni/centro/abruzzo/chieti/notizie-chieti/37509/vasto-spiaggia-101-presenta-show-di-cabaret-con-gene-gnocchi-e-concerto-dal-vivo-di-francesco-baccini.html
mentre questo uno più corto
http://www.italiah24.it/mondo/usa/39490/usa-sempre-piu-incombente-lo-spettro-default.html
ovviamente del numero di categorie e sottocategorie che servono per arrivare al post.
ora ti chiedo… visto il numero basso di rule… secondo te è indispensabile cambiare la regola dei permalink?
io l ho impostata cosi per la tassonomia delle url in maniera da avere le url con le parole chiavi corrette per il post.
attendo tuoi suggerimenti?
grazie mille e complimenti ancora
Buongiorno Antonio, per riuscire a rispondere correttamente dovrei sapere quante categorie e pagine avete attualmente, e soprattutto se pensate di aggiungerne altre in futuro.. Se è vero che meno regole si hanno e meglio è, è anche vero che con determinate condizioni si può proseguire senza problemi…
Grazie per i complimenti 🙂
ciao,
le categorie sono 495 le pagine wordpress 8 i post sono circa 12.000 che generano circa 38.000 pagine tra tag e similari. Aggiungiamo circa 200/300 post al giorno. Se vuoi, noi lavoriamo 24/24 ci possiamo sentire quando vuoi
grazie ancora
Secondo me dovresti fare attenzione alle pagine che andrai ad inserire in futuro e soprattutto all’url che gli assegnarai. In pratica evita di assegnare alle pagine lo stesso url di una categoria e soprattutto evita di creare nuove pagine (considerando che ogni pagina aggiunge 13 regole)…
Se togli dal tuo totale 184 il numero delle pagine (13*8) otterrai 80 che è quasi il minimo di regole presenti di default.. Attento quindi al numero di pagine e per il resto non avrai problemi 😉
Io è da un po che uso questa struttura /%category%/%postname%.html .. 😉 nonostante tutto mi sta dando molte soddisfazioni.. 😉 adesso per la nuova versione toglierò %category%/ 😉 in quanto rendo molto lungo il link dell’articolo. 😉
Di che soddisfazioni parli ?
Soddisfazioni a livello di visite ed indicizzazione rapida per gli articoli.. 😉
Ciao Andrea,
sono qui a chiederti nuovamente un paio di consigli/delucidazioni sui permalink: dopo aver letto il tuo articolo e lasciato un paio di commenti ho optato per la struttura “/%post_id%-%postname%/” .. i miei dubbi al momento sono:
1) terminare il permalink con “.html” ha un senso solo estetico o può anche agevolare l’indicizzazione?
2) la mia è un’installazione multisito con domini di terzo livello nel formato “blog1.nomesito.it” … ci potrebbero essere delle controindicazioni con il numero di regole create?
grazie in anticipo per il tuo prezioso supporto
Luca
Ciao Andrea,
il .html non agevola l’indicizzazione.
L’installazione multidominio è identica a quella normale visto che per ogni dominio crea delle nuove tabelle nel database.
Specifico quanto scritto sopra da Andrea. Se utilizzi un’installazione multipla di WordPress (e avrai quindi anche il pannello network) nel database ti ritroverai 9 tabelle in più rispetto ad un’installazione standard (in cui ce ne sono 11). Le tabelle aggiuntive saranno distinguibili dal nome che sarà {prefisso}_{blog_id}_nometabella. {blog_id} è un numero progressivo assegnato da WordPress. Quindi per il tuo “° sito dovrai probabilmente guardare nella tabella wp_2_options.
Al momento nelle tabelle wp_options c’è una colonna che si chiama blog_id: non viene utilizzata (deriva dalle vecchie versioni) e verrà rimossa nelle versioni future…
Ho aggiornato il post con altre informazioni utili. Controllate la fine dell’articolo per leggerli. 😉
grazie a entrambi per le delucidazioni!
Luca
ciao andrea. anche io non posso far altro che aggiungermi alla lista e farti i complimenti, finalmente un articolo sui permalink come si deve! volevo chiedere consigli per un mio sito con 84 categorie e 8 pagine le rules sono 5733 la struttura permalink è %postname%.html mi puoi consigliare qualcosa ? visto anche che il plugin consigliato non puo essere utilizzato per questa struttura! grazie mille
scusa aggiorno, le rules sono 118 😀
riscrivo il mex perche forse è stato cancellato per errore!!! Ciao andrea. Non posso far altro che aggiungermi alla lunga lista dei complimenti per questo articolo ! volevo chiedere consiglio per un sito con 28 categorie e 8 pagine con 122 rules, sono indeciso attualmente i permalink sono impostati postname.html, anche perche il plugin non supporta questa impostazione per il redirect automatico ! ciao grazie
Non vedo perchè preoccuparsi e/o voler cambiar struttura. Le regole sono poche e la struttura va bene (lato seo). Pensi di creare molte pagine? Hai problemi di performance?
in effetti per il momento credo sia una preoccupazione
inutile ero solo preoccupato per il “futuro” in caso il
sito si ingrandisse pensavo fosse meglio affrontare il
problema adesso! grazie della risposta 🙂
in teoria entro fine anno uscirà una soluzione “definitiva” ovvero WordPress 3.3 che come scritto sopra, promette tra le tante novità, di risolvere questo problema di performance… 😉
speriamo ! anche se prevedo parecchi disastri per l’aggiornamento 😀 cmq grazie per l’aiuto !
ciao, recentemente, quasi per intuito, ho fatto questa semplificazione
sul permalink ma mi sono spariti tutti i contatori di share e like, ecc.! Succede solo a me? Pensi che gli ho persi definitvamente? uno dei miei post aveva fatto il pieno: 300 share di facebook 🙁
La risposta è presente anche sopra posta da un altro utente…dacci un occhio. Sempre solita domanda: “Avevi problemi di performance?”
grazie, mi sembra di capire che potrei utilizzare un plugin.
Ma ho un problema analogo ora che ho cambiato le
categorie di alcuni post…
sos… su internet non trovo traccia di problemi simili…
grazie in ogni caso
I like ed i share di facebook fanno riferimento ad un url.
Se cambi il permalink, ovviamente cambi anche il riferimento.
Se per te è importante mantenerli (suppongo di si) basta che
rimetti il tuo vecchio permalink e tutto ritorna come prima,
altrimenti devi partire da zero.
Complimenti Andrea,
un articolo chiaro e preciso.
Grazie
Grazie per i complimenti 🙂
salve, io ho impostato i miei permalik cosi: /index.php/%postname%/
ma ho notato che mi dai tanti errori 404, ora se cerco di impostarlo nel modo da voi consigliato /%post_id%-%postname%/ mi da errore 404 anche in homepage 🙁
come posso risolvere?
grazie
Forse dipende dal fatto che non hai creato il file .htaccess oppure che il tuo host non ti permette di usarlo.
come giustamente suggerisce Andrea, nel caso tu stia utilizzando un hosting Linux, verifica che i permessi sul file .htaccess siano settati correttamente. Quando cambi la struttura dei permalink, WordPress tenta di aggiornare le Rewriterrule presenti all’interno del .htaccess.
Potrebbe essere necessari permessi 775 o 777 a seconda delle impostazioni del server. se ciò non fosse sufficente, setta i permessi (puoi farlo dal pannello di amminsitrazione del tuo sito oppure con un client ftp come Filezilla) anche della cartella in cui sono contenuti i files di wordpress (solitamente public_html oppure html)
uso un hosting windows e non ho file htaccess in questo caso come mi devo comportare?
grazie mille 😉
andrea potresti darmi una mano come risolvere il problema? ci sono un anno a presso a questa cosa e non riesco a trovare una soluzione su questi permalink :/
grazie.
Ciao guido, scusami ma purtroppo non ho esperienze con WordPress su hosting windows…
Immagino che tu non riesca a passare su hosting linux, vero? Windows è noto per creare un sacco di problemi quando deve far girare un’applicazione pensato per ambienti LAMP.
il tuo hosting windows per non utilizzare il .htaccess deve eesere IIS vero? Hai provato a guardare se trovi qualcosa nelle sezioni del forum GT?
Beh, questo sì che è un articolo originale e interessante.
Devo dire che avevo scelto per politica seo le url /%post_id%/%postname%/ già da molto tempo, diciamo per agevolare la ‘proliferazione del feed’ sul web grazie alla id univoca dei post, resa esplicita.
Non conoscevo invece il campo del database che hai indicato, che è moooooolto interessante.
Ho verificato per le mie installazioni maggiori e in effetti sono sempre intorno agli 80, quindi le mie scelte ‘naturali’ non necessitano di aggiustamenti.
Devo anche dire però che in genere utilizzo pochissimo le ‘pagine’ di wp, uso quasi sempre gli articoli anche per contenuti ‘vetrina’ che vadano linkati sitewide.
Ribadisco i complimenti ad Andrea Cardinali per il post e ad Andrea ‘Juanin’ Pernici per il blog (che già da tempo ‘studia’ modi e metodi per velocizzare wordpress, ed è praticamente l’unico blog serio che fa questi studi in Italia).
Però voglio aggiungere un dato che invece richiama il nesso tra URL seo (cioè url che richiamano attraverso la riscrittura significati semanticamente coerenti al post) e url ‘performanti’ in termini di tempi di risposta e consumo delle risorse.
Una provocazione, più che altro: e se non fossero proprio le url più corte le più favorite in un web tendenzialmente veloce e ‘real time’?
Intendo proprio sito.com/post_id
Non per i blog personali, magari.. ma questo dipende dalle metriche di publishing e – naturalmente – anche dalle risorse server a disposizione.
Ma diciamo che siti o blog appena più grossi della media potrebbero doversi avvantaggiare PROPRIO sulle performance più infinitesimali anche per competere con chi ha risorse più professionali in termini di prestazioni generali.
Insomma, da due anni dico ai miei collaboratori: fate URL corte!
Semantiche e riscritte, se volete, ma corte.
Invece l’utilizzo del post_id l’ho imposto e basta perchè quasi nessuno sembra aver capito che era ed è utile: a tutti, clienti, siti e progetti interni, blog di amici o parenti.
Meno male che ho beccato questo post perchè così ora ho una spiegazione semplice, comprensibile e scientifica di uno dei motivi per cui sicuramente CONVIENE utilizzare l’id nelle url riscritte di wp.
Non per forza, ma per scelta pianificata.
Voglio provare il tuo plugin, anche se non mi serve oggi come oggi.
In ogni caso i redirect vanno tenuti ALMENO per 180 giorni, se non è proprio possibile o necessario tenerli a vita.
In 6 mesi i 301 dovrebbero essere tutti riassorbiti, in linea di massima.
Ciao Fabio, ti ringrazio per i complimenti. Vorrei chiederti dei chiarimenti sulla “provocazione” che hai voluto lanciare… non sono sicuro di aver capito che cosa intendi…Le url più corte possono portare vantaggi in termini di prestazioni in quanto la ricerchè su stringhe brevi all’interno del db solitamente sono più veloci. Se poi l’url contiene un id univoco, e la ricerca nel db avviene utilizzando solo questo id (supponendo che sia la chiave primaria) naturalmente si hanno performance ancora migliori in quanto la ricerca di numeri è molto più veloce di quella di stringhe di testo.
I benefici in termini di velocità saranno più o meno evidenti a seconda delle risorse a disposizione del server, del numero di contenuti e dal numero di visitatori da servire.
E’ previsto un aggiornamento del plugin per correggere e migliorare alcuni comportamenti della versione iinziale e soprattutto per supportare un numero più ampio di configurazioni…
Per quanto riguarda i redirect 301 devo correggerti. I redirect vanno sempre mantenuti, sconsiglio di rimuoverli, anche dopo i 6 mesi. Google in primis ha una memoria molto grande per cui può provare a richiedere una risorsa anche dopo diversi anni!! Te ne puoi accorgere analizzando i log del server 😉
– La ‘provocazione’ direi che l’hai capita bene. Riformulo.
Mi chiedevo se – con determinate metriche non proprio ‘base’ –
le url cortissime con il solo id non fossero – in generale e dal punto di vista seo –
più utili anche rispetto alle url semantiche più o meno normalmente riscritte.
Cioè due tendenze generali potrebbero aver cambiato una delle basi teoriche più assodate.
L’attenzione per la velocità di caricamento e la progressiva perdita di importanza del fattore ‘url’
potrebbero far propendere per url corte con il solo id: ripeto, è
un’ipotesi, una prospettiva che guarda al futuro e a siti con
molte, moltissime url (non blog normali, per capirci).
E’ una cosa che mi chiedo da un po’ di tempo, a livello
teorico; semplicemente vedo che siti con centinaia
di migliaia di url che sembrano dare prestazioni migliori in termini di
traffico sulle url più corte… insommma una percezione che potrebbe essere in parte avvalorata dal tuo ragionamento. Ma devo aggiungere un inevitabile ‘forse’, è chiaro.
Certo se ci pensi il risparmio è enorme, anche per le ricadute della scelta. File sitemap più leggeri, meno lavoro per i bot… insomma, in un web che va espandendosi forse gli elemtni di risparmio andranno rivalutati.
– Ho provato il tuo plugin, mi sembra ottimo e pulito.
– Ok, i 301 vita natural durante sono la cosa migliore. 🙂 Però ci sono mille motivi per cui un 301 potrebbe prima o poi esser tolto (domini che scadono etc etc). Quella dei 180 giorni è un po’ il limite classico minimo per i 301, nel senso che la sostituzione in serp delle vecchie url con le nuove in 6 mesi dovrebbe essere assicurata. Poi Google ha la memoria lunga e se è per questo ogni link in ingresso – se il 301 viene tolto – andrà poi sprecato…. pertanto certamente i 301 vanno tenuti vita natural durante. Ma insomma, almeno in passato si è sempre ritenuto che in sei mesi il grosso del ‘trasferimento’ dovrebbe essere avvenuto, tenendo in considerazione che anche gli eventuali link in ingresso tendono a svalutarsi con il tempo. Ma certamente – se parliamo di redirect interni senza esigenze di cambio dominio o simili – va benissimo tenerli sul lunghissimo termine: direi che, per tutti quelli che esitano sui 301 sui cambi di url, e ce ne sono molti, quello dei 180 giorni è un parametro di riferimento temporale abbastanza diffuso, nella percezione comune. Insomma un 301 genera inevitabilmente dei temporanei sommovimenti sulle serp degli articoli o dei documenti coinvolti, ma prima o poi si ritiene assorbito l’effetto di ‘trambusto’ derivato dal 301. Molto prima dei 6 mesi, in realtà; ma infatti si tratta di un parametro vecchio come il cucco. Per carità, il fenomeno di Google che ripesca url vecchissime capita a tutti, prima o poi. 🙂 Ma d’altra parte alla crescita nella velocità di indicizzazione di documenti, da parte di Google, è corrisposto a mio avviso anche un parallelo incremento nella velocità di deindicizzazione di un documento. L’infrastruttura caffeine è più veloce in entrata, ma anche nell’uscita dei dati dall’indice. Quindi un 301 è come un diamante, è per sempre. Ma più passa il tempo e meno diviene irremovibile (nel senso che linea di massima i danni dell’eventuale rimozione vanno riducendosi fino ad approssimarsi allo zero). Alla prossima!
Innanzi tutto non posso che ringraziarti Fabio per i tuoi sempre illuminanti e favolosi interventi 🙂 Come tu sai adoro il tuo modo di approcciarti alla scrittura e SEO.
Relativamente al discorso dei permalink concordo molto con la tua visione sui post id e più volte ho pensato anche io questa cosa sopratutto dopo un’interessante comunicato di google che diceva esplicitamente che al motore basta un URL con un semplice ID numerico univoco e questo è molto chiaro.
Ovviamente le carte in tavola cambiano periodicamente e difficilmente ci saranno soluzioni valide in eterno in questo campo, ma è sicuramente una strada percorribile e che non ha molte controindicazioni.
Io feci un test su una sorta di aggregatore che non indicizzava velocemente le pagine o almeno andava spesso come seconda, terza scelta in SERP e non immediatamente, ma solo dopo alcuni giorni.
Appena cambiato le URL da postname a post_id magicamente ho conquistato le prime posizioni per tutti gli articoli con un’indicizzazione quasi immediata (pochi minuti).
Stesso problema con un altro sito di comunicati stampa e testato l’introduzione di post_id e accorciamento dell’url a meno di 4 parole ossia id-parola-parola-parola-parola e anche qui miglioramento notevole dei risultati.
Poi magari è un caso, ma 2 casi a me puzzano 🙂
Pensavo proprio ad installazioni medio grandi come aggregatori e directory per press release.
Diciamo che per il blog personale il ‘risparmio’ magari non lo si vede ad occhio nudo. Ma se aggiungo ai tuoi casi i miei direi che la puzza diventa fastidiosa.
Me lo ricordo il blog post di Google sul modo di fare le url ai tempi di Twitter… comunque il plugin è validissimo anche per mille altre esigenze, e l’indicazione sul numero di rewrite rules è senza dubbio da utilizzare nei check su qualsiasi installazione wp, proprio per il meccanismo spiegato egregiamente 90 commenti sopra.
In passato avevo provato anche il plugin Dean Migration citato nel post, ma poi avevo optato per dei redirect fatti a mano (era poca roba in quel caso) su htaccess.
qualcuno per caso ha avuto esperienze per un sito ecommerce ? ritenete sempre valida la struttura /%post_id%-%postname%/ oppure category-postname ?
La proposta e le conclusioni che si possono trarre da questo post vanno bene per qualsiasi tipo di sito basato su wordpress quindi se ti trovi in una situazione critica di performance sono sempre valide.
Non so come funzioni con wordpress quindi probabilmente sto per dire una cavolata, ma se su wordpress si potesse inserire nei permalink il cat_ID la soluzione più performante e migliore dal lato seo (oltre che a livello di struttura dei contenuti)
/%cat_id%-%category%/%post_id%-%postname%/
l’inserimento dell’id_cat univoco potrebbe portare incrementi di prestazioni se wordpress permettesse di farlo.
Pongo una domanda:
A livello di struttura dei contenuti creare una categoria e poi far risultare i posts che a livello di navigazione sono dentro la categoria ma che a livello di struttura degli url risultano fuori non è sbagliato?
Ciao Davide, WordPress non permette d’inserire il category id nel permalink (ed infatti non l’ho menzionato nel post). la soluzione più performante in assoluto è comunque quella che utilizza il solo id (vedi i numerosi commenti sopra). Non so tu cosa intenda per “migliore lato seo”.
Non ho capito inoltra cosa intendi con la seconda domanda, a cosa ti riferisci quando chiedi se è sbagliato?Sbagliato da che punto di vista?
Piccolo pezzo tratto direttamente da : Guida introduttiva di Google all’ottimizzazione per motori di ricerca (SEO)
Traduzione dalla versione inglese 1.1, pubblicata il 13 Novembre 2008•
”
…
Buone norme per definire la struttura di un URL
– Utilizza delle parole nell’URL – URL con parole pertinenti al contenuto ed alla struttura del tuo sito sono più intuitive per gli utenti che lo navigano. I visitatori le ricorderanno meglio e potrebbero essere più invogliati a linkarle.
– Evita di:
usare lunghi URL con parametri e session ID non necessari
scegliere nomi generici per le tue pagine del tipo
“pagina1.html”
usare un numero eccessivo di parole chiave, “figurine-calciatoricalcio-figurine-calcio.htm”
– Semplifica la struttura delle tue directory – Utilizza una struttura che organizzi bene il tuo contenuto e che permetta ad un visitatore di capire in che area del tuo sito si trovi. Cerca di utilizzare una struttura per le directory del sito che indichi il tipo di contenuto in un dato URL.
o Evita di:
avere una rete profonda di sotto categorie “…/dir1/dir2/dir3/dir4/dir5/dir6/pagina.html”
utilizzare nomi di categoria che non abbiano nessuna relazione
con il loro contenuto
Fornisci una versione unica dell’URL per raggiungere un dato
documento – Per prevenire che alcuni linkino ad una versione ed altri ancora ad una altra versione di un URL (questo potrebbe infatti dividere la reputazione di un documento fra più URL), fai in modo di riferirti ad un URL nella tua struttura interna sempre nello stesso modo. Se ti accorgi che visitatori differenti accedono allo stesso contenuto tramite URL diversi, implementa una redirezione 301 in modo tale che gli URL che non vuoi privilegiare puntino all’URL più importante.
o Evita di:
avere pagine nei sotto domini e contemporaneamente nella root
che puntino alla stesso contenuto: “dominio.it/pagina.htm” e
“sotto.dominio.it/pagina.htm”
mescolare versioni con il www e versioni senza il www nella
struttura di linkaggio interna
usare le lettere maiuscole in modo strano (molti utenti si
aspettano di trovare caratteri minuscoli e in genere li ricordano
meglio)
Rendi il tuo sito semplice da navigare
La navigazione di un sito web è importante per permettere ai visitatori di trovare velocemente il contenuto che desiderano. Essa può inoltre aiutare i motori di ricerca a comprendere quale contenuto è ritenuto importante dal webmaster. Sebbene i risultati di ricerca di Google siano forniti a livello della pagina, a Google piace conoscere quale ruolo una pagina rappresenti all’interno della più ampia architettura del sito.
Tutti i siti hanno un pagina principale o home page: in genere si tratta della pagina più frequentata e rappresenta il punto di partenza per la navigazione del tuo sito per molti utenti. A meno che il tuo sito abbia solo una manciata di pagine, dovresti pensare al modo in cui un visitatore passerà dalla tua pagina principale ad una con contenuti più specifici. Hai contenuti a sufficienza su un determinato argomento tale da giustificare una pagina intermedia che descriva tali pagine (esempio home page > lista degli argomenti correlati > argomento specifico)
…
”
La soluzione più performante “solo id” mi sembra in contrasto con tutto questo, nonostante resti la più performante.
Ora tralasciando che è un documento del 2008 ma con concetti che dovrebbero essere ritenuti universalmente veri e tralasciando la parte in cui si parla di redirect 301 che ho copia/incollato erroneamente, spero di essere stato più chiaro di prima riguardo quello che intendevo.
Il medesimo concetto si trova anche nella più recente guida in inglese:
http://www.google.com/webmasters/docs/search-engine-optimization-starter-guide.pdf
Non discuto però che dal lato delle performance sia la sooluzione migliore.
Ciao Davide,
la guida in questione e la porzione incollata direi che la maggior parte di noi SEO la conosca bene 🙂
Direi piuttosto che in questo contesto si parla di performance e non di struttura migliore per i motori di ricerca quindi se andiamo in questa direzione rischiamo di andare fuori tema.
Per il discorso SEO invece si potrebbe andare avanti per ore, giorni, mesi senza raggiungere una soluzione che va bene sempre e che metta d’accordo tutti…e comunque le guide di google così come i video che rilasciamo vanno presi sempre come indicazioni generali di Best Practice e non come la Bibbia.
@Andrea Pernici, Come sai ti seguo spesso e non ero certo qui per criticare…la guida l’ho messa li per farmi capire, ho certo postato fare proseliti.
Ho visto di persona che in quanto a SEO non posso certo venire ad insegnarti nulla, la mia voleva solo essere una considerazione e, perchè no, uno spunto di riflessione.
Come sai anche io sono molto attento alle prestazioni però in un web sempre più orientato alla semantica, che va nella direzione di fornire al motore informazioni molto accurate dei contenuti che andrà a visitare io non trascurerei l’organizzazione di questi contenuti in cartelle e sotto cartelle secondo una logica prestabilita.
Qui si creano categorie e poi i prodotti che dovrebbero appartenere a quella categoria per il motore risulterebbero sula root.
E’ giusto? struttura? performance? un mix tra le due.
Ciao Davide.
Intendiamoci.
Il problema delle prestazioni coinvolge fattori molto diversi, così come non lineare sarebbe la discussioni sulla composizione delle url dal punto di vista seo.
In questo post Andrea ha approfondito un aspetto preciso del funzionamento del rewrite in wordpress, segnalando come eventualmente alcune casistiche siano poco convenienti sul lato delle prestazioni.
Non voleva certamente riaprire l’annoso tema sul ‘come conviene fare il rewrite su wordpress’: o almeno, voleva farlo alla luce di un’esigenza ‘economica’ ben precisa.
Quindi la tua domanda (“…struttura? performance?…”) è troppo soggettiva: quello che ti direi di sicuro (ma rimane solo il mio parere) è che una parte dell’abc seo sulla composizione delle Url è sottoposto a nuovi algo già da tempo, pertanto prendere troppo alla lettera la ‘vecchia scuola’ (che tutti conosciamo) potrebbe non essere la soluzione migliore, oggi e soprattutto domani.
Come al solito siamo sulla frontiera del ‘nuovo’: le performance generali in termini di tempi di download hanno senza dubbio un peso maggiore rispetto al passato, mentre la semplice e sola URL riscritta potrebbe non essere più uno dei principali mezzi per l’attribuzione semantica nei confronti di un documento. Potrebbe non essere tanto importante in futuro quanto lo è stato in passato.
Ma va anche aggiunto che le prestazioni sono assolutamente mediate anche dalla risorse a disposizione: puoi prendere tutti gli accorgimenti che vuoi, ma se il tuo hosting fa acqua da tutte le parti non ci sono ‘risparmi’ che tengano.
Non a caso il ‘ciclo’ di articoli di Andrea (Pernici, stavolta) sull’ottimizzazione delle performance di wordpress ha raccolto (nel blog che leggi) diversi aspetti, mentre quest’ultimo post riguarda solo le regole di formazione dei permalink.
L’unico articolo che forse manca riguarda proprio la scelta dell’hosting adatto alle necessità di WP; il motivo – probabilmente – è che si tratta di un argomento assai triste, se consideri che il livello medio degli hosting condivisi di massa è abbastanza scarsino in Italia, mentre le soluzioni più convincenti non sono quasi mai a buon mercato.
Un webmaster, un seo, deve considerare anche alcune soluzioni di compromesso, certe volte.
🙂
Personalmente posso dirti che in passato ho perseguito religiosamente le note strategie di composizione delle url, e non solo su wp.
Oggi sono molto più elastico e tento di non fidarmi ciecamente di quello che ho già sperimentato, o di quello che fanno tutti semplicemente perchè si tratta di una ‘tecnica assodata’.
Chiaramente a seconda del genere di sito in cui applico la cosa posso scegliere se mantenere una struttura più tradizionale o se scegliere di dare più respiro al server tentando di risparmiare qualcosina a vantaggio dei visitatori.
E se può aiutare sacrifico pure la url semantica, perchè no.
Ma non per un normalissimo blog, evidentemente.
E non senza pormi ogni tanto il problema di adeguare la mia macchina, senza la quale nessun discorso sulle prestazioni ha realmente senso.
E’ sempre un piacere!!
🙂
Tutto naturalmente giusto e condivisibile quello che dici.
In realtà come affermi mi sono allontanato dal tema principale anche se il mio primo commento era anche per chiedere:
L’inserimento dell’id_cat univoco (nel permalink) potrebbe portare incrementi di prestazioni se wordpress permettesse (dato che attualmente non si può inserire).
Non si salverebbero così capra e cavoli?
La risposta è dipende :-). Bisognerebbe prevedere l’implementazione della ricerca atrtaverso cat_ID a livello di codice. Al momento le categorie sono in una tabella del db (wp_terms), le relazione tra post e categorie in un altra (wp_term_relationships). e i post in un altra ancora (wp_posts). Si potrebbero salvare capra e cavoli, così come peggiorare la situazione (utilizzando ad esempio una JOIN, operazione SQL onerosa in termine di prestazioni). Visto che non è stata contemplata nemmeno nelle future versione di WordPress questa possibilità, probabilmente non è fondamentale averla…
Molto utile: lo sto testando in un blog che seguo da tempo, in quanto ho .
Ho scelto la struttura /%post_id%-%postname%/ , installando il fantastico plugin di Andrea Cardinali: http://www.andreacardinali.it/wordpress/cardy-redirect-plugin/
Vi terrò aggiornati con gli sviluppi!!
[..]in un blog che seguo da tempo, in quanto ho riscontrato la lentezza nel salvataggio dei singoli post, alquanto fastidiosa e dispendiosa.
Ho testato il tutto su piattaforma WordPress Network e sembra funzionare a meraviglia. Grazie Andrea 😉
Ok… leggendo l’articolo, da perfetta ignorante, non ho ben capito quale genere di permalink è meglio adottare… aaaa/mm/dd/sample-post/ non va bene?
La struttura aaaa/mm/dd/sample-post/ è la più indicata 😉
Mi si è aperto un mondo, grazie per lo splendito articolo, unico nel suo genere! E chi si andava ad immaginare il problema della struttura dei link
Ciao Andrea, mi unisco (anche se un po’ in ritardo) al coro dei complimenti per il post: interessante anche nei commenti! Ci sono arrivato proprio perché cercavo una risposta alle questioni che hai analizzato nel post.
Per il permalink avevo pensato di utilizzare la stringa /categoy/post_name/ per una questione di navigabilità del blog anche da url, ma apprendendo dei problemi che hai esposto credo sia più sensato seguire i tuoi consigli e usare /id_post-postname/.
Pensa che il blog appena nato con soli 5 articoli, 2 pagine (più una cancellata) e 5 categorie dà un valore array di 132! Certo il progetto è su 5 pagine statiche e 5 categorie dalle quali si dovranno diramare 10/15 sottocategorie per cui non dovrei arrivare a migliaia di operazioni…
A questo punto però, per non perdere in usabilità pensavo di inserire un Breadcrumb: quale tra i tanti plug-in mi consigli? oppure converrebbe operare a livello di codice? In questo caso però avrei bisogno di una guida dettagliata (per il momento nn sono molto ferrato col CSS).
Per quanto riguarda il redirect, dal momento che dovrei farlo per soli 5 post, preferirei inserirlo manualmente senza aggiungere il plugin (per non appesantire la piattaforma wp): potresti indicarmi la stringa da inserire e il file su cui scriverla?
Ciao, innanzitutto grazie per i complimenti. Per quanto riguarda i breadcrumbs ti consiglio di utilizzaro WP SEO di Yoast che integra oltre all’ottimizzazione SEO e la sitemap XML anche la possibilità di inserire i breadcrumbs. Per quanto riguarda la struttura dei permalinks aspetterei a cambiarla, perchè sto provando la beta di WordPress 3.3 dove sembra che abbiano risolto il problema delle rewrite rules.Pubblicherò i risultati a breve per cui apsetterei l’esito del test prima di cambiare. Ad ogni modo se non vuoi aspettare, all’interno del .htaccess devi inserire le regole in questo formato (una per riga):
Redirect 301 /indirizzo-post-vecchio-senza-url-sito/ http://www.tuosito.com/nuovo-indirizzo/
Beh, i complimenti sono meritati 🙂 Per quanto riguarda l’ottimizzazione SEO ce l’ho già integrata nel template che ho preso: è cmq utile istallare anche WP SEO o rischio di creare conflitti? Se la risposta è negativa dovrei informarmi di come scrivere manualmente le breadcrumbs. Certo la sitemap XML sarebbe più che utile visto che mi sto ponendo il problema di come sottoporre a Google la mia sitemap e questo plug-in mi darebbe la risposta cercata…
Sai, ho provato a cambiare la struttura dei permalink e il valore dell’array da 132 è arrivato a 72! Ma le stringhe del redirect vanno messe all’inizio del file alle prime righe?
Ipotizzando invece la risoluzione del problema nella versione wp 3.3, dici che conviene rimanere sulla sutruttura /category/file_name/? A parità di tempi di risposta offrirebbe in più una navigabilità per URL e un aiutino in termini SEO, giusto?
Grazie per la tua attenzione.
Secondo me nella tua situazione puoi lasciare tutto com’è 😉
Tutto com’è in che senso? intendi senza istallare né wp SEO né le breadcrumbs e la struttura permalink…
Certo, è appena aperto… ma in futuro?
Penso che Andre si riferisse esclusivamente alla struttura dei permalinks. Per quanto riguarda il tema, rabbrividisco quando sento parlare di temi che integrano già l’ottimizzazione seo. Il mio consiglio spassionato è di installare WP SEO e gestire tutta l’ottimizzazione attraverso di esso. Non so se possa andare in conflitto con il tema (non conoscendo il tema) ma cercherei di verficarlo il prima possibile!
In definitiva mi suggerite di restare sul /category/post_name/ giusto?
Allora, ho controllato: il tema supporta wp seo, quindi posso istallarlo 🙂 cmq, devo dire che il tema è ben strutturato, mi evidenzia i vari campi dove inserire title, meta-description, keyword… quindi seguirò subito il tuo consiglio!
In .htaccess le stringhe del redirect vanno messe all’inizio alle prime righe? (mi viene indicizzata la sample-page che ho cancellato)
Ti consiglio di aspettare ancora un po’ prima di cambiare la struttura dei permalink, visto che con wp 3.3. potrebbero aver risolto il problema e come già detto in precedenza, sto ancora testando… Ora non so come si integri il tema con wp seo, ad ogni modo wp seo aggiunge un box in cui è possibile specificare le informazioni, e lo trovi solitamente sotto all’editor.
Nel .htaccess i redirect li metti in cima, prima del codice inserito da worpdress (quindi prima di #begin wordpress)
Grazie per i consigli: ho istallato wp seo e direi che si integra benissimo col tema (c’è un’opzione del tema stesso che ne esplicita la compatibilità)… certo ora devo un po’ studiarmelo nelle sue varie voci, ma sembra abbastanza intuitivo.
Allora aspetto il tuo post sui test di wp 3.3 – se ti fa piacere avvisami quando l’avrai pubblicato 🙂
Grazie e buon lavoro!
Scusami, un ultimo dubbio; quando scrivi: “Attenzione quindi ad utilizzare plugin quali WP No Category Base e similari (WP SEO ad esempio) che permettono l’eliminazione del prefisso /category/”
Intendi che non bisogna eliminare il prefisso /category/ dall’url delle categorie (quindi non va spuntata la voce presente in wp seo), giusto?
in effetti però diventa necessario eliminarla se si vuole avere la possibilità di navigazione da url…
Se lo togli poi aumentano le rewrite rules, è tutto lì il problema… Ad ogni modo il tuo blog ha poche pagine per cui non avrai problemi per un bel po’.. e nel frattempo sarà già uscita la versione 3.3 per cui non ci sono problemi 😉
Ho appena fatto una prova pratica ed ho scoperto che anche lasciandolo la navigazione per url funziona perfettamente: le categorie vengono visualizzate sia nella classica forma sito.net/category/nome_categoria sia nella forma sito.net/nome_categoria => se ne deduce che non è necessario togliere l’attributo category attraverso il plug-in!
Attenzione, perchè potresti avere problemi di contenuto duplicato…
Ecco ora capisco perché la struttura /category/post_name/ non è incentivata da wordpress…
Ne deduco che usandola sono anche obbligato a togliere l’attributo base_category per evitare, come giustamente mi fai notare, i problemi di contenuto duplicato. Ma se effettivamente wp 3.3 risolve questo tipo di problema, allora posso stare tranquillo; se così non fosse converrebbe stare già da ora sulla struttura /post_id-post_name/
A proposito di contenuti duplicati (faccio un piccolo OT, se non ritieni opportuno rispondere qui, puoi scrivermi anche in privato), ho notato che le immagini che inserisco nel tema per ogni post generano l’anteprima sia in home page sia nel post sia in archivio, ma non sono indicizzate per il motore di ricerca: se disabilito l’anteprima nel post e inserisco nuovamente la stessa immagine nel corpo testo del post in questione, non rischio duplicazione, vero? è l’unica soluzione che mi viene in mente per ovviare alla mancata indicizzazione
A livello SEO secondo voi è meglio:
/%post_id%-%postname%/
oppure
/%postname%-%post_id%/
?
Non cambia nulla tra i due a livello SEO.
E’ uscita la nuova versione di wordpress.
E’ cambiato qualcosa ragazzi?
Ci sono parecchie novità con WordPress 3.3. Ti consiglio di dare un’occhiata qui: http://programmi.giorgiotave.it/wordpress-permalink/1859
Ciao Andrea, mi dici qual’è il corretto settaggio del permalink da utilizzare in google news? Se vi sono articoli non correttamente formattati, come posso intervenire utilmente su di essi? Si può eventualmente intervenire sul Data Base? Grazie per la disponibilità ed il supporto.
Ciao Giacomo. Per google news le URL devono avere un id numerico di almeno 3 cifre. Se non hai tale ID puoi usare una sitemap apposita per google news. Non c’è bisogno di mettere assolutamente mano al db.
Grazie Andrea per le chiare informazioni…però sarebbe meglio che la notizia dell’aggiornamento WordPress 3.3 fosse in alto. Così mi sono letto tutto…ma ora non serve!
Ciao Andrea,
informazioni chiare ed interessanti, ma volevo chiederti come fare a risolvere un problemino, sto settando il permalink di un blog nuovo e per alcuni motivi mi servono più categorie che creino la URL
bene il problema è questo se nelle impostazioni se inserisco /%post_id%/%category%/%category%/%category%/%category%/%postname%/
e taggo per le 4 categorie in mio ariticolo la URL viene fuori
ripetendo la prima categoria per 4 volte e non evidenziandole le altre…hai idea di come è lo script giusto??
Grazie
Ciao Alex, la struttura corretta è questa: /%post_id%/%category%/. Devi però verificare che gli articoli appartengono solo alla categoria figlia, in quanto WordPress per generare l’url si basa sulla categoria con ID più basso ( e quindi tra padre e figlio è la categoria padre ad avere l’ID più basso).
Per chiarire eccoti un esempio:
cat1
sottocat1
cat2
Per avere l’url con /cat1/sottocat1/nome-post/, l’articolo deve appartenere solo alla categoria sottocat1
Ciao Andrea,
sarebbe meglio una chiacchierata dal vivo magari su skype
se possibile, ovviamente ororando il tuo tempo
aspetto tue grazie.
alex
Grazie Andrea vediamo se ho capito ti faccio io un esempio, gli articoli si riferiscono alla descrizione di alcuni immobili da vendere visto che e’ un sito immobiliare quindi: (genitore) Milano (figlia) vendita (figlia) appartamento (figlia) devo flaggare solo vendita affinché venga fuori:
www. miosito / milano-vendita-appartamento? E’ così?
E se anche fosse così, visto le categorie nel mio caso servono per far filtrare le ricerche degli immobili ai visitatori non flaggando anche i genitori la ricerca filtrerebbe bene lo stesso?
Un altra idea potrebbe essere di, correggimi se sbaglio, creare materialmente l’url della parola chiave che mi serve assegnandolo ad una categoria tipo ad appartamento creo il permalink: vendita-appartamento, in modo che flaggando lo per primo prende quello e sono a posto..
Grazie per i tuoi consigli
Salve,
mi sto basando su questo articolo per settare i permalink del mio nuovo blog, ma un dubbio mi resta: tra la struttura di questo post, ovvero /%postname%/ e quella di questo articolo scritto dallo stesso autore, http://seoblog.giorgiotave.it/authorship-markup-tools/2148, che differenza c’è a livello pratico? Il /%post_id%/ finale nella seconda url ha obiettivi orientati all’inserimento su Google news?
Grazie mille e complimenti per l’articolo.
Fabio.
Scusate mi sono accorto che in realtà l’autore tra il primo
e il secondo post è diverso 🙂
Salve, sto testando il plugin in locale passando un sito da /%category%/%post_name%/ a /%category%/%year%/%monthnum%/%day%/%post_id%-%postname%/
ma se cerco di aprire un vecchio link, ricevo la pagina 404. Dove sbaglio?
Salve ragazzi,
Sto letteralmente impazzendo con il permalink di cui avrei bisogno…visto che è veramente complicato nidificare le categorie in modo che tra madre, padre, figlio, zio ecc mi restituista la URl desiderata o pensato di fare in questo modo:
/%tag%/%postname%/
per quello che a me serve mi sta bene ed avrei risolto, ma il problema è questo: quando genero un articolo, titolo: “pippo” e scelgo il tag “amico” , il permalink che dovrebbe restituirmi
dovrebbe essere http://www.miosito/amico/pippo
non è cosi il tag non funziona…mi restituisce sempre qualuque tag io usi: http://www.miosito/%tag%/pippo
PERCHEEEEEEEEEEEEEEEEEEEEEEEEEEE?? credo sia un bug come si risolve???
Complimenti! ottimo articolo.
Ho riscontrato un problema di rallentamento nella gestione delle pagine da backend dopo un caricamento di circa 5000 pagine. Vorrei sapere se la soluzione della modifica dei permalink è ancora valida oppure è stata risolta nelle ultime versioni di WP (attualmente uso WP 3.9.2).
Grazie
Se il problema è da backend dubito che il discorso permalink possa influenzare.
Ottimo articolo, grazie!
Ciao, complimenti per l’articolo! Ammesso che alla versione attuale di wordpress sia rimasto tutto invariato ti chiederei consiglio.
Per un sito di news, che riporta il programma di manifestazioni che si ripetono di anno in anno, qual’è la migliore struttura ?
Stò utilizzando http://www.miosito.it/articolo-di-esempio/ ma leggendo il tuo articolo probabilmente passerei a http://www.miosito.it/2016/12/articolo-di-esempio/
(il sito è praticamente nuovo quindi non avrei problemi a cambiare).
Nel sito dovranno essere presenti una ventina di categorie, 5/6 pagine in totale, qualche migliaio di articoli (a regime 🙂 )…cosa mi consigli, prima di combinare qualche guaio ??
Puoi lasciare così com’è se già stai usando un certo tipo di struttura.