Zum Inhalt springen

WordPress und die Hintergrundaktivitäten

Wordpress

WordPress ist von Natur aus sehr speicherhungrig, das ist hinreichend bekannt. Dieser Speicherhunger geht nicht zuletzt auf die Performance der Webseite. Je mehr Plugins installiert werden desto schlimmer kann die Performance darunter leiden.

WordPress arbeitet auch ohne unser Zutun nahezu permanent im Hintergrund ohne dass der Blogautor davon etwas mitbekommt – außer, dass eben die Seite eben etwas träge erscheint. So manche Nachbesserung dahingehend führt eher zu einer Verschlimmerung anstatt sich die Performance verbessert.

Cronjobs – eine Bremse für WordPress

Nicht ganz unschuldig daran sind Cronjobs die u.a. auch von Plugins angelegt, bei deren Deinstallation aber leider nicht zuverlässig gelöscht werden. Des weiteren wird manch ein Cronjob unverhältnismäßig oft ausgeführt. Führt er dazu noch ins „Leere“ weil z.B. das Plugin gar nicht mehr verwendet wird bedeutet dies eine unnötige Beanspruchung des Servers. Die Summe der Aktivitäten macht es aus.

Sergej Müller – Autor von so manch nutzvollen Plugin wie etwa die AntiSpamBee – wies kürzlich auf die Cronjobs von WordPress hin und rät, diese in regelmäßigen Abständen zu überprüfen. Er empfiehlt hierzu das Plugin WP-Crontrol, welches alle in WordPress angelegten Cronjobs auflistet und Informationen über Häufigkeit des jeweiligen Aufrufes gibt.

wordpress cronjob
Auflistung aller Cronjobs bei WordPress

Von hier aus können alle Cronjobs gestartet, gestoppt, editiert oder auch gelöscht werden. Auch die Anlage eines neuen Cronjobs ist hier ganz einfach möglich. Interessant ist hier besonders die Spalte mit der Häufigkeit der Ausführung. Besonders auffällig war bei mir hier der Eintrag blc_cron_check_links der vom Plugin Brocken Link Checker stammt und minütlich ausgeführt wurde – ein Wert der weiß Gott zu niedrig ist und unnötige Aktivität bedeutet.

Aber auch BackWPup – das backup-Plugin – muss nicht jede Minute eine Abfrage starten ob eine Sicherung ansteht. Welcher Cronjob letztlich wie oft ausgeführt werden muss (soll) kann jeder selbst entscheiden. Unberührt würde ich in jedem Fall die Cronjobs

  • wp_version_check
  • wp_update_plugins
  • wp_update_themes

lassen die mit „alle 12 Stunden“ auch kein Problem darstellen. Je weniger hier in der Liste steht desto besser ist es. Schade ist nur, dass für technisch weniger versierte Nutzer nicht klar erkennbar ist was hinter welchem Cronjob genau steckt, zumindest bei einigen davon trifft dies zu. Ehe man hier einen Cronjob komplett löscht sollte vielleicht eher an eine Reduzierung der Häufigkeit gedacht werden.

WordPress „telefoniert“ nach draußen

Ein weiteres Mal komme ich auf Sergej Müller zurück der in diesem Zusammenhang ein Plugin namens Snitch erschaffen hat. Snitch – ein Netzwerkmonitor für WordPress – überprüft alle Verbindungen die von WordPress nach draußen gehen. Im Klartext, manche Plugins, Themes oder auch WordPress selbst nimmt im Hintergrund Verbindung zu „heimischen Servern“ auf und überträgt dabei Daten. Sehr interessant zu sehen welches Plugin oder Theme hier besonders aktiv ist.

snitch
Überprüfung von ausgehenden Verbindungen

Alle ausgehenden Verbindungen können einzeln blockiert werden, ebenso der Zugriff auf die jeweilige Herkunftsdatei des Cronjobs. Letztere wird mit Pfad und Zeile genau benannt und kann so auch leicht eingesehen werden.

snitch
Verdächtige ausgehende Verbindung mit Snitch aufgespürt

Auf diese Weise konnte ich auch eine „sehr fragwürdige“ Verbindungen aufgedecken – hier z.B. aerialbuckettrucksales – von der ich bisher nichts wusste und die ich ohne Snitch auch ganz sicher nicht gefunden hätte. Der Sinn dieses Plugins hat sich mir spätestens hier erschlossen.

Viele der Verbindungen die ich feststellen konnte sind harmlos. Update von importierten Feeds machen hier die Mehrzahl aus. So betrachtet also nichts verdächtiges was man im Auge behalten müsste. Dennoch bin ich davon überzeugt, dass dieses Werkzeug sehr gute Dienste leisten kann und auch zu einem Stück mehr Sicherheit innerhalb von WordPress beiträgt.

9 Gedanken zu „WordPress und die Hintergrundaktivitäten“

  1. Super Beitrag! WP Control kannte ich noch nicht und wird meinem Blog sofort nachgerüstet. :-)
    Du hast da übriges eine doppelte Verneinung, die sicherlich so nicht gemeint ist:

    …aber leider nicht zuverlässig nicht gelöscht werden…

    Ist

    …ein Wert der weiß Gott zu niedrig ist..

    auch so gemeint oder ist mein Ironiedetektor kaputt? :-)
    Über Snitch habe ich vor kurzem auch geschrieben und es im Blog auch installiert. Nach einiger Zeit sammeln sich in Snitch unheimlich viele Einträge. Im Moment habe ich 4.000 Kommunikationsaufrufe, die mitprotokolliert wurden. Da frag ich mich ob das sein muss? Zudem kommunizieren einige Plugins wie Social oder der WordPress Core häufiger mal. Die könnte man in Zukunft noch wunderbar zusammenfassen. Würde jetzt ein Plugin um 04:00 Uhr nachts heimlich seine Daten einmal die Woche nach Hause schicken würde ich das niemals aus der Zusammenfassung von Snitch erkennen.

    1. @Christopher: Die versehentliche „doppelte Verneinung“ ist verbessert – danke. Dein Ironiedetektor ist also voll intakt. Es stimmt, die Daten werden sehr schnell mehr und ich meine auch, dass das Plugin nicht unbedingt dauerhaft laufen muss. In wie weit der Autor hier „nachbessert“ weiß ich nicht, ich schreibe ihn diesbezüglich mal an und frage nach.

  2. Wie immer, ein interessanter Beitrag hier von dir. Danke dafür. Nun lasse ich das Plugin Snitch mal laufen und bin gespannt.
    Und wenn eine komische Verbindung angezeigt wird, einfach kappen oder muss man dann etwas tiefer wühlen gehen?

    1. @Alex: „Komische Verbindungen“… es kommt wirklich darauf an um was es geht. Nachdem sowohl Ziel als auch der Herkunftsort des „Telefonats“ angezeigt werden muss man das dann wirklich von Fall zu Fall entscheiden und ggf. die Datei näher ansehen. Jetzt warte mal ab und lass das Ding laufen. Mal sehen was es alles aufstöbert ;-)

  3. Je nachdem bietet es sich auch an den Scheduler von WordPress zu deaktivieren (mittels „define (‚DISABLE_WP_CRON‘, true);“ in der wp-config.php) und einen „richtigen“ Cron-Job einrichten, der in fest definierten Intervallen den Scheduler startet – entweder per HTTP-Request an „wp-cron.php?doing_wp_cron“ oder über php-cli direkt ohne Nutzung des Webservers.

  4. Ganz herzlichen Dank für diesen guten Artikel. Mir hat er gerade sehr geholfen, da ich laut Webspaceanbieter zu viele „Telefonate“ nach draußen hatte. Als Laie ist es sehr schwierig dann herauszufinden woher das kommt. Deine Tipps habe ich nun beide beherzigt und hoffe in Zukunft mit viel weniger „Telefonaten“ aus zukommen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Du kannst Dich informieren lassen wenn es Folgekommentare gibt. Du kannst aber auch abonnieren ohne zu kommentieren.