Plugin per aggiungere il nofollow a tutti i link esterni presenti nelle pagine, post, blogroll, categorie ecc. di WordPress

Se avete studiato un pò di seo sicuramente sapete che i link in uscita possono provocare al vostro sito una perdita di potere di raking con conseguente perdita di posizionamento. Questo accade sopratutto se si linkano siti spam, siti non attinenti, di bassa qualità, siti porno ecc. Inoltre bisogna evitare di avere troppi link in uscita, linkare dei siti esterni vuol dire trasferirgli un pò del vostro potere, ebbene si, ogni pagina del vostro sito ha un valore, una parte del valore della vostra pagina viene trasferito ai link esterni. Avvolte per necessità non è possibile eliminare i link dalle vostre pagine, quindi per poterli mantenere evitando che vengano presi in considerazione dai motori di ricerca è opportuno inserire l’attributo “nofollow”. Esistono dei plugin per wordpress che permettono di applicare questo attributo senza mettere mani al codice html / php.

Tra questi troviamo il plugin Nofollow Internal Links che permette di aggiunge il “nofollow” ai link presenti in: link tag cloud, categorie, link archivio, post_link dell’autore e Link popup nei Commenti.

Un altro plugin  è Nofollow Links che permette di inserire il parametro nofollow ai link presenti nel blogroll del nostro sito wordpress, solitamente nella sidebars.

E’ interessante anche il plugin Ultimate Noindex Nofollow che oltre a permettere di impostare il nofollow sui link presenti nelle categorie, archivi, pagine di login o di registrazione, permette di comunicare ai motori di ricerca quali pagine deindicizzare.

Se invece volete inserire il nofollow in tutti i link presenti all’interno dei post del sito, in realtà non ho trovato dei plugin adatti al caso, bisognerà andare su aspetto>editor e selezionare dalla parte destra del vostro editor la voce Funzioni tema (functions.php), a questo punto potete inserire prima del

tag di chiusura del file function.php e cioè prima dell’ultimo ?> il seguente codice:

add_filter('the_content', 'my_nofollow');
add_filter('the_excerpt', 'my_nofollow');
function my_nofollow($content) {
return preg_replace_callback('/]+/', 'my_nofollow_callback', $content);
}
function my_nofollow_callback($matches) {
$link = $matches[0];
$site_link = get_bloginfo('url');
if (strpos($link, 'rel') === false) {
$link = preg_replace("%(href=\S(?!$site_link))%i", 'rel="nofollow" $1', $link);
} elseif (preg_match("%href=\S(?!$site_link)%i", $link)) {
$link = preg_replace('/rel=\S(?!nofollow)\S*/i', 'rel="nofollow"', $link);
}
return $link;
}