Ihr Browser kann das Objekt leider nicht anzeigen!

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.

Dem einzigen Plugin, dem ich es bis dato gestattet habe, seine Funktionsaufrufe in den HTML Header zu schreiben, ist das Blogintroduction Plugin von Kim. Kim war es auch, der mir bei meiner Lösungssuche diesbezüglich geholfen hat – Vielen Dank Kim noch mal an dieser Stelle! – denn es ist nicht nur eine Schönheitskorrektur.

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();
?>
Bleib auf dem Laufenden und abonniere meinen RSS Feed Crazy Girls RSS Feed jetzt abonnieren
|
 Autor: Crazy Girl |
 Themenbereich: Blog SEO Tips
Trackback URL: http://www.crazytoast.de/ich-mag-nicht-wenn-plugins-den-html-header-voll-schreiben.html/trackback/
Ähnliche Beiträge:
↑ Ganz nach oben springen ↑
↓ zum kommentieren springen ↓
15 Reaktionen:
1 Trackback:
  1. [...] der Javaskript Dateien im Header. Teilweise können diese aber auch im Footer geladen werden. Tanja hat dazu ein guten Beitrag [...]

14 Kommentare:
  1. Kim schrieb am 22. Mai 2009 um 08:52 Uhr:
    # 1

    Vielen Dank für diesen wirklich sehr aufschlussreichen Beitrag :-) Doch nicht nur unter SEO-technischen Gesichtspunkten, sondern auch was die Performance der Seite beim Laden angeht, ist eine Platzierung von JavaScript-Codes am Seitenende vorteilhaft, denn:

    Die Skripte werden größtenteils sowieso nur benötigt, um Aktionen durchzuführen, die erst sinnig sind, wenn der Content auch komplett geladen wurde. Lädt man die (teilweise recht mächtigen Skripte) zum Schluss der Seite, hat das den Vorteil, dass der Leser die Seite bereits lesen kann und den Inhalt zu Gesicht bekommt, bevor die ganzen Zusatzfeatures per Javascript geladen werden und aktiv werden. Also wieder ein Vorteil auch für den Leser der Seite!

  2. Crazy Girl antwortete am 22. Mai 2009 um 09:58 Uhr:
    # 2

    @Kim: Ich hab es tatsächlich vergessen das Performance Argument anzuführen :-(
    Aber so gut wie Du hätte ich das im Leben nicht ausführen können. Danke! :-)

  3. Andy schrieb am 22. Mai 2009 um 12:31 Uhr:
    # 3

    Klasse Tipps. Muss schon sagen. Werde es mal versuchen, kann mir aber nicht unbedingt vorstellen, dass es SEO technisch viel bringt!!

  4. Crazy Girl antwortete am 22. Mai 2009 um 14:49 Uhr:
    # 4

    SEO technisch bringt das nur was für den, der vorher viel im Head drin stehen hatte. Ich hatte hier von hausaus nicht viel (aus diesem Grund auch manche Plugins gar nicht richtig online gehen lassen) im Head und deswegen wird es mir nicht gerade viel Ranking Verbesserungen bringen. Ich habe aber definitiv schon Seiten im Ranking klettern sehen, bei denen der Content einfach weiter nach oben geschoben wurde ;-)
    Aber selbst wem SEO und Ranking egal ist, die Performance dürfte das beste Argument sein ;-)
    Die beiden letzten Tipps (keine Plugin Namen, Versionen sowie die Wordpress Version etc.) sind einfach nur Sicherheits- und Schönheitsupdates. Geht einfach niemanden was an ;-)

  5. Daniel schrieb am 22. Mai 2009 um 16:51 Uhr:
    # 5

    Einmal wieder ein klasse Artikel, ich werde – wenn ich mal wieder Zeit haben – meinen Header durchsuchen und schlanker machen ;)

  6. Crazy Girl antwortete am 22. Mai 2009 um 19:59 Uhr:
    # 6

    Danke Daniel ;-)

  7. fastblogger schrieb am 23. Mai 2009 um 12:43 Uhr:
    # 7

    Aus SEO Gesichtspunkten macht ein schlanker Header richtig Sinn. Bis vor einem Jahr war Verlinkung einer der stärksten Rankinggewichtungspunkte – davor war es auch wichtig auf seinen Seitenaufbau zu achten nur rückte das immer weiter in den Hintergrund. Nun scheint Google wieder zurück zur old-school things gefunden zu haben. Die Optimierung auf einer Seite wird wieder wichtiger. Das kann man z.B. schön daran sehen, dass die Gewichtung von Ladezeiten in den Algo offiziell bestätigt wurde. Jeder der größere Probs mit seinen Suchmaschinenpositionen hat, sollte mal nachsehen, ob sein Quellcode nicht verbesserungswürdig ist und v.a. Inhalte gehören nach oben im Quellcode.

  8. Crazy Girl antwortete am 23. Mai 2009 um 14:22 Uhr:
    # 8

    @Maik: Danke für die Unterstützung ;-)

  9. alte Kiehvoz schrieb am 23. Mai 2009 um 20:40 Uhr:
    # 9

    Du hast also in der header.php entfernt, und stattdessen

    hingeschrieben?

    Aber wenn man in der header.php diese Angaben überhaupt nicht drinstehen hat, und auch den Code entfernt hat, braucht man doch die remove-Teile überhaupt nicht? Oder hab ich da gerade am Thema vorbei gedacht?

    Ich hab das bei mir so geregelt, dass ich zwar den Code im Header habe (wird von einigen Plugins benötigt), die remove_action-Dinger habe ich aber in die functions.php gesteckt.

  10. Crazy Girl antwortete am 24. Mai 2009 um 06:58 Uhr:
    # 10

    @alte Kiehvoz: Ich habe das in der header.php selbst geändert, also nicht in die functions.php oder wo auch sonst hingeschrieben (meine letzte Änderung aus dem Beitrag).
    Die ersten und zweiten Änderungen aus meinem Beitrag muss man direkt in den Plugin Dateien durchführen und natürlich den wp_footer() in der footer.php drin haben.

    Wenn Du den code wp_head() in der header.php entfernst, dann kann gar kein Plugin mehr dort reinschreiben und damit funktionieren einige Plugins nicht mehr. Was dort definitiv reingehört sind die Angaben, die z.B. die ganzen SEO Plugins wie robots-meta, all-in-one-Seo oder wie sie sonst noch so heißen machen. Die fügen ja in erster Linie meta tags hinzu und die müssen im head-Bereich bleiben. Auch alle CSS Dateien sollten im head bleiben. Was aber defintiv dort raus kann sind die ganzen Javascripts, die von einigen Plugins so produziert werden. Die können super genial im Footer stehen, und damit dann auch die Performance der Seite verbessern.

  11. John Doe schrieb am 25. Mai 2009 um 10:28 Uhr:
    # 11

    Das Problem ist ja auch noch ein vielfaches:
    Klar, wenn ich wirklich schreibend auf wp_head zugreife, hätte ich es auch besser machen können.

    WordPress bietet aber auch noch die Möglichkeit mit wp_print_script Javascripts auszugeben, was den Vorteil bietet, dass man z.B. Bibliotheken wie jquery damit ausgeben kann, ohne gefahr zu laufen, dass ein zweites Plugin das auch nochmal einbindet (natürlich nur, wenn sich jeder dran hällt) -> aber die landen dann afaik auch im Header.

    Soll heißen, was auf der einen Seite wirklich gut und freundlich gemeint ist, schadet auf der anderen Seite…

  12. Crazy Girl antwortete am 25. Mai 2009 um 11:01 Uhr:
    # 12

    @John Doe: Wegen dem wp_print_script möchte ich Ajax Edit Comments hier nicht einbinden. Oder hast Du vielleicht eine Idee, wie man diese Funktion in den Footer packen kann?
    Folgenden Code finde ich ab Zeile 41:
    //JavaScript
    add_action('admin_print_scripts', array(&$this,'add_post_scripts'),1000);
    add_action('wp_print_scripts', array(&$this,'add_post_scripts'),1000);
    add_action('wp_head', array(&$this, 'add_script_vars'), 1001);
    add_action('admin_head', array(&$this,"add_script_vars"), 1001);

    Zeile 1 und 4 stören mich nicht weiter im Admin Bereich, Zeile 3 kann ich auf den Footer ändern, aber wie bekomme ich Zeile 2 aus dem Header raus? Irgendeine Idee?

  13. Luigi schrieb am 16. Mai 2010 um 19:40 Uhr:
    # 14

    Schön, das hilft doch weiter! Aber: Wenn ich nun in den betreffenden plugins den Code so ändere das die Javascripts im Footer landen ist bei einem update der plugins alle wieder beim alten. Es müsste doch möglich sein eine Funktion? in der functions.php zu hinterlegen, die alle Einträge Javascripts betreffend automatisch in die Funktion wp_footer schiebt. Oder bin ich nun zu optimistisch?

  14. Crazy Girl antwortete am 17. Mai 2010 um 07:06 Uhr:
    # 15

    @Luigi: Ja richtig, Du müsstest das bei jedem Plugin Update “nacharbeiten”. Alternativ kannst Du die entsprechenden Plugin Autoren bitten, es in ihre Plugins mit aufzunehmen.
    Eine allgemeine Funktion dafür dürfte schwierig bis unmöglich sein. Du könntest aber versuchen für das jeweilige Plugin eine eigene Funktion anzulegen und mit enem remove aus dem header und anschließendem add in den Footer arbeiten. Ob und wie das geht… ehrlich gesagt keine Ahnung, ich kann es auch nicht ausprobieren, da ich gar keine solchen Plugins mehr aktiv habe.
    Die Alternative für die ich mich im Laufe der Zeit entschieden habe ist entweder der komplette Wegfall solcher Plugins oder der Ersatz mit Funktionen oder anderen Plugins, die “sauberer” arbeiten diesebezüglich bzw. auf Javascript verzichten.

Einen Kommentar dazu schreiben:

Bitte beachtet die Datenschutzhinweise sowie zu Spammer Kommentaren.

Ich behalte mir das Recht vor, Kommentare entsprechend zu löschen oder editieren!

Kommentare mit Links, die nicht zu Blogs führen und/oder Keywords
als Namen verwenden sind nicht erwünscht und werden gelöscht!


Links beinhalten das rel=nofollow Attribut (Stammkommentatoren ausgeschlossen)!

Kommentare abonnieren ohne selbst einen Kommentar abzugeben: