Etliche Tutorials im Netz beschäftigen sich mit der Frage, wie ich die RSS-Feeds in WordPress mit einem nofollow Attribut versehen kann. Diese Anforderung kommt seitens SEO in vielen Onpage-Optimierungstasks vor. Die meisten Lösungen editieren dabei Core-Dateien, was durch die hohen Updatezyklen bei WordPress keine praxisnahe Lösungen sind. Daher zeigen wir dir hier, wie du über eine Template Modifikation (natürlich im Child-Theme) eine updatesichere Lösung erstellen könnt.
Bearbeiten der functions.php – regex zur RSS-Modifzierung
Jedes Template besitzt in WordPress eine functions.php – diese ergänzen wir um eine rss_widget_filter Funktion.
function rss_widget_filter( $content ) {
$regex = '#<li id="rss-2".*>(.*?)</li>#';
$code = preg_match( $regex, $content, $rss_widget );
$regex2 = '#<li>(.*?)</li>#';
$code = preg_match_all( $regex2, $rss_widget[0], $li );
$result = '';
foreach( $li[0] as $a ) {
$a = preg_replace( '#<a class#', '<a rel="nofollow" class', $a );
$result .= $a;
}
$final = preg_replace( '#<li>(.*)</li>#', $result, $rss_widget[0] );
$final = preg_replace( '#<li id="rss-2".*>(.*?)</li>#', $final, $content );
if( !empty( $final ) )
return $final;
else
return $content;
}
add_filter( 'rss_filter', 'rss_widget_filter' );
Bearbeitung der Ausgabe im WordPress-Template – RSS-Ausgabe mit nofollow in der Sidebar
Mit den
ob_ Funktionen wird das Ausführen des zugrundeliegenden PHP gestoppt. Durch die oben in der Funktion programmierten regex holen wir uns die Stelle des Link-Aufrufs und überschreiben diesen mit dem nofollow Attribut – und zwar an der Stelle im Template, an der der RSS-Feed ausgegeben werden soll. Hier im Beispiel wird durch den Aufruf der Funktion „dynamic_sidebar'“ die komplette Sidebar aufgerufen, in der das RSS-Widget enthalten ist. (Achtung: Das RSS-Widget muss vorher im Menü Widgets der Sidebar hinzugefügt werden)
ob_start();
dynamic_sidebar('primary-sidebar');
$content= ob_get_contents();
ob_end_clean();
$final= apply_filters( 'rss_filter', $content);
Screenshot RSS Widget in Sidebar
Im Ergebnis wird kein Linkjuice an die extern verlinkten Seiten vererbt und die Seite ist pagerank-optimiert.