
Un mio cliente ha acquistato un tema Premium per WordPress da ThemeForest. Il tema sembrava allettante per vari motivi, compreso il prezzo. Ma una volta messo mano al codice ho fatto una tremenda scoperta.
SEO? E che cos’è? Si mangia?
WordPress mette a disposizione tantissimi plugin per ottimizzare il proprio blog o sito dal punto di visto dei motori di ricerca. Io ho sempre usato la combinazione Simple Tags + Meta Description, ma anche All In One SEO fa bene il suo lavoro. Ma il SEO non è solo keywords o description: innanzitutto si tratta di usare correttamente gli headers, ovvero i tag h1, h2 e così via. Bene, nel tema Premium non vi è alcun h1 e si tratta di un errore gravissimo, perché questo header rappresenta il titolo della pagina. Quindi ci deve essere sempre e deve essere presente solo una volta.
Per il logo viene usata un’immagine al posto del suddetto h1. E questo non è solo un problema di SEO ma anche di separazione fra contenuti e aspetto (il motivo di esistere dei CSS).
<div class="logo"><a href="URL del blog"><img src="logo.png" title="Titolo del blog" /></a></div>
Un’altra domanda che mi sorge è perché usare class=”logo” anziché id=”logo” visto che si parla di un elemento unico nella pagina. Comunque sia il codice corretto sarebbe:
<h1 id="logo"><a href="URL del blog" title="Vai alla homepage">Titolo del blog</a></h1>
e nel CSS
#logo a {
display: block;
text-indent: -99999px;
width: ... //in pase alla dimensione dell'immagine del logo
height: ....
background: url(images/logo.png) no-repeat 0 0;
}
ricordandosi di inserire il CSS reset all’inizio del foglio di stile. Si può fare meglio ancora: nella home h1 è titolo del blog, mentre nella vista post singolo h1 dovrebbe corrispondere al titolo dell’articolo. Dunque il codice completo diventerebbe
<?php if(is_home()) : ?>
<h1 id="logo"><a href="<?php bloginfo('home') ?>" title="Vai alla homepage"><?php bloginfo('title') ?></a></h1>
<?php else : ?>
<p id="logo"><a href="<?php bloginfo('home') ?>" title="Vai alla homepage"><?php bloginfo('title') ?></a></p>
<?php endif; ?>
senza dimenticarci che il titolo dell’articolo diventa
<h1 class="posttitle><a href="<?php the_permalink() ?>" title="<?php the_title() ?>" rel="bookmark"><?php the_title() ?></a></h1>
Il testo è testo, non div
Codice come
<div class="postdate">Data articolo</div> <div class="postauthor">by Autore articolo</div>
è semanticamente sbagliato. Il testo è testo! Sarebbe meglio
<p><span class="postdate">Data articolo</span> <span class="postauthor">by Autore articolo</span></p>
CSS e JS
Nel tema sono presenti 3 file CSS e non so quanti JavaScript, tutti nell’head. Sappiamo tutti, invece, che è buona norma inserire i file CSS nell’head e i JS in fondo alla pagina, in modo da dare priorità a i contenuti piuttosto che agli optional. Ah, ovviamente non dimenticate di minimizzare sia i file CSS che i file JS.
Personalmente, per stampare i JS nel footer aggiungo una funzione nel file function.php come segue:
function print_my_js() {
/* stampa i file js */
}
add_action('wp_footer','print_my_js');
in questo modo i file JavaScript vengono inseriti da WordPress stesso nel footer.
Programmare in PHP significa…
Ma gli errori più incredibili li ho visti riguardati la pura programmazione PHP. Ad esempio:
<?php if(is_category()) :
/* Non fai niente */
else:
/* Fai qualcosa */
endif; ?>
Qualcuno gli può spiegare il concetto di negazione di un booleano?
<?php if(!is_category()) :
/* Fai qualcosa */
endif; ?>
Oppure, ancora peggio
<?php if($variabile_booleana == true) : ?>
e qui mi sono veramente cascate le braccia!
Conclusione
Prima di acquistare un tema WordPress Premium pensatici bene, tenendo in mente la formula “tempo = denaro”. Se acquistate un tema a 20 € per risparmiare rispetto alla cifra che io o chiunque altro possa preventivarvi, per poi dover passare le ore a fixare tutti gli errori presenti nel codice, allora il risparmio è solo illusorio. Il mio consiglio è assicurarvi che il sito dove volete acquistare il tema ne offra almeno uno gratuito, come WooThemes, lo scaricate e date un occhio al codice.





Bell’articolo!