Ich mag nicht, wenn Plugins den HTML Header voll schreiben

Ehrlich gesagt kriege ich immer richtig gehend die Krise, wenn ich sehe, dass ein Plugin sich mal wieder in meinem HTML Header austobt und mir Zeilenweise Codes da rein bastelt, die den HTML Header unnötig aufblähen. In den meisten Fällen sind das Plugins die ihre Ajax und Javascript Anweisungen dort auflisten. Sicher sind diese Anweisungen notwendig, damit die Plugins laufen können, doch haben sie meines Erachtens nichts im HTML Header zu suchen.

Mit dieser Version der Funktionsaufrufe von Plugins im HTML Header werden sämtliche Funktionen komplett geladen, bevor überhaupt irgendetwas auf der Seite selbst geladen wird. Dabei ist es in den meisten Fällen komplett „Banane“ wo die Funktionsaufrufe stehen. Sie können genauso gut im Footer aufgerufen werden.

Meine Gedankengänge sind diesbezüglich viel mehr SEO lastig. Wir SEOs sind darum bemüht, den eigentlichen Content so weit oben wie möglich zu starten, um dadurch bessere Rankings zu erhalten. Je weiter unten der Content startet, desto schlechter sind meist die Suchmaschinenergebnisse. Wenn ich mir diesbezüglich den Quelltext mancher Blog-Kollegen ansehe, kommt mir schlicht und ergreifend das kalte Grausen. Nicht selten sind haufenweise Zeilen im HTML Header zu finden, wovon nicht wirklich vieles auch definitiv in den HTML Header gehört (wie z.B. die ganzen Meta Tags). Bis sich eine Suchmaschine dort durchwühlt und beim Content landet, kann das schon eine ganze Weile dauern. Warum es den Suchmaschinen so schwer machen und deswegen vielleicht sogar wertvolle Rankingplätze verschenken?

Plugins, die sich im HTML Header verausgaben nutzen dazu den WordPress eigenen Hook wp_head() der in der header.php aufgerufen wird. Anstatt sie in den wp_head schreiben zu lassen, kann man sie genauso gut im wp_footer() verewigen lassen, der in die footer.php des Themes gehört. Dazu einfach die entsprechende Plugin php aufrufen, nach dem Funktionsstart mit dem wp_head suchen und das wp_head mit wp_footer ersetzen, abspeichern, hochladen und testen. Dass dazu der Aufruf des wp_footer in der footer.php vor dem </body> vorhanden sein muss – <?php wp_footer(); ?> ist Voraussetzung. Mit Kims Plugin läuft das alles hervorragend.

Wenn Ihr diese Änderungen vornehmt, müsst Ihr nur aufpassen, was ihr statt in den wp_head in den wp_footer schreibt. Javascript kann definitiv im Footer ausgeführt werden. Meta Tags oder CSS Links sollten aber im wp_head stehen bleiben. Für mehrere CSS gibt es noch eine weitere Lösung, die ich mir bei Bedarf demnächst ansehen werde.

Kim meint übrigens, dass man mit dem wp_footer() vorsichtig sein muss, da es Plugins gibt, die dort gerne den ein oder anderen versteckten Werbungslink hinterlassen. Also bitte immer den Quelltext überprüfen, was Eure verwendeten Plugins in den WordPress Hooks so alles anstellen ;-) Grundsätzlich wäre ich dafür, dass jeder Plugin Autor, der Codes in den wp_head einfügt, die auch wo anders stehen können, eine wählbare Einstellungsmöglichkeit zur Verfügung stellt, mit der der Blogbetreiber entscheiden kann, ob er den Plugin Code in der wp_head oder im wp_footer stehen haben möchte. Wie seht Ihr das?

Und weil wir schon mal beim Thema sind: In meinen Augen geht es auch niemanden etwas an, welche Plugins ich nutze (in meinem Quelltext werdet ihr davon nur wenig finden). Jedes Plugin, das sich im wp_head verewigt prüfe ich manuell auf die <!-- Kommentarzeilen und kommentiere die dementsprechenden PHP Anweisungen die Plugin Name und oft auch Version im Quelltext ausgeben einfach aus (vor dem entsprechenden PHP Code, der meist ein echo Befehl ist einfach zwei // setzen, also // echo …).

Es gibt aber noch ein paar weitere Angaben, die ich aus meinem HTML Header entfernt habe, die von WordPress automatisch dort reingesetzt werden. Vor allem geht es hier um die im Blog verwendete WordPress Version, die ja wohl überhaupt niemandem in meinem Quellcode etwas angeht. Da ich auch den Windows Livewriter nicht nutze, sind auch die beiden diesbezüglichen Links rausgeflogen. Diesbezüglich habe ich einfach nur den <?php wp_head(); ?> Code in meiner header.php mit diesem ersetzt:

<?php
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'rsd_link');
wp_head();
?>

Wer nur die Versionsangabe unterbinden möchte, braucht nur folgenden Code:

<?php
remove_action('wp_head', 'wp_generator');
wp_head();
?>
Artikel vom: