WordPress RSS Feed updatesicher mit nofollow versehen

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

rss feed nofollow sidebar

Im Ergebnis wird kein Linkjuice an die extern verlinkten Seiten vererbt und die Seite ist pagerank-optimiert.

Das könnte dich auch interessieren

  • So erstellst du deine eigenen WordPress Web Stories

    Stories sind eine gute Möglichkeit, um schnell und ansprechend Inhalte und Produkte im Web bekannt zu machen. Durch ihr Format, werden sie auch “Snackable Content’” genannt. Hier erfährst du, wie du deine eigene Web Story erstellst und auf deiner Website integrierst.

  • Aktuelle WordPress Sicherheitslücken finden

    WordPress-Nutzer haben weniger im Blick, dass es bekannte Sicherheitslücken für Plugins gibt, zu denen noch kein Update oder Patch veröffentlicht wurde. Dieser Beitrag zeigt dir, wie du solche Sicherheitslücken durch Plugins finden kannst und wie du dein System richtig dadurch schützt.