Abonniere unseren Newsletter und erhalte nützliche Tipps & die aktuellen Trends rund um E-Commerce, Shopware und SEO.
Backlinks kaufen klingt erstmal nach einer schnellen Abkürzung im SEO-Game. Schließlich reden wir hier über eines der stärksten Signale für Google, wenn es um Autorität und Ranking geht. Kein Wunder also, dass immer wieder die Frage auftaucht – "Warum sollte ich mir den mühsamen Outreach geben, wenn ich Links einfach kaufen kann?" – Genau hier wird's spannend. Denn Backlinks kaufen bewegt sich irgendwo zwischen SEO-Wunderwaffe und Google-Verstoß mit Ansage – zumindest, wenn man's falsch macht.
Warum landen manche Webseiten ganz oben in den Suchergebnissen, während andere im digitalen Nirwana verschwinden? Der Schlüssel dazu liegt in der richtigen Interpretation der Suchintention. Wer die Bedürfnisse der Nutzer versteht, kann Inhalte gezielt darauf abstimmen und so nicht nur bessere Rankings erzielen, sondern auch die Conversion-Rate signifikant steigern.
Wenn du darüber nachdenkst, wie du deine Off-Page SEO-Strategie verbessern kannst, könnte Guest Blogging die ideale Lösung für dich sein! Mit dieser Technik veröffentlichst du als Gastautor interessante Beiträge auf anderen Webseiten, was dir nicht nur zu mehr Reichweite, sondern auch zu wertvollen Backlinks verhilft. Das Ergebnis? Bessere Platzierungen in den Suchmaschinen Rankings!
Wer einen reibungslosen Betrieb seines Online Shops sicherstellen möchte, kommt an einer Testumgebung nicht vorbei. Sie ist die perfekte Spielwiese, um Updates, Anpassungen oder neue Apps risikofrei auszuprobieren – ohne, dass der Live-Shop dabei gefährdet wird. Doch die Einrichtung einer solchen Umgebung klingt für viele komplizierter, als es eigentlich ist.
Shopware 6 Cronjob einrichten: Eine Schritt für Schritt Anleitung
Du möchtest gerne wiederkehrende Aufgaben in Shopware 6 ausführen? Dann erklären wir dir in diesem Beitrag alles was du hierzu wissen musst.

Grundsätzlich solltest du dir erstmal die Frage stellen, ob die auszuführende Aufgabe immer zu einem exakten Zeitpunkt, bspw. täglich um 03:00 Uhr oder in einem ungefähren Zeitintervall stattfinden soll.
Dies ist nämlich entscheidend, ob du die Aufgabe mittels Symfony Command oder Scheduled Task ausführen solltest. Falls dir die beiden Begriffe noch nichts sagen sollten – keine Sorge! Wir erklären dir den genauen Unterschied beider Methoden.
Symfony Command
Das Konzept der Symfony Commands wurde nicht von Shopware selbst, sondern durch das Symfony Framework, auf welchem Shopware basiert, entwickelt. Shopware baut lediglich auf diesen Commands auf und fügt eigene hinzu.
So kannst auch du eigene Commands hinzufügen. Wie das funktioniert, erfährst du sowohl in der offiziellen Shopware als auch in der Symfony Dokumentation.
Symfony Commands sind ideal, um wiederkehrende Aufgaben mittels Cronjob zu einem exakten Zeitpunkt auszuführen. Sofern dein Hoster dies unterstützt, kannst du die Commands direkt im Admin Panel deines Hosters ausführen lassen. Sollte dies bei dir nicht möglich sein ist es notwendig ein Shellskript zu definieren, auf dem Server abzulegen und vom Cronjob ausführen zu lassen.
Solltest du Probleme an dieser Stelle haben, helfen die meisten Hoster erfahrungsgemäß gerne weiter.
Ein solches Skript kann hierbei bspw. wie folgt aussehen, um den cache:clear Command auszuführen:
#!/bin/bash
env -i /usr/bin/php83 -f /pfad/zur/shopware-installation/bin/console cache:clear
Wir persönlich verwenden in den meisten Fällen lieber Symfony Commands für wiederkehrende Aufgaben. Sie sind zeitgenau konfigurierbar und einfach zu erstellen.
Der Vollständigkeit halber gehen wir jedoch im Folgenden auch noch auf die Scheduled Tasks ein.
Scheduled Tasks
Scheduled Tasks – auch geplante Aufgaben – sind wie der Name schon verrät, regelmäßige Arbeiten, die in Shopware 6 durchgeführt werden. Hierzu zählt bspw. die Generierung der Sitemap oder das Prüfen nach App Updates.
Damit diese Aufgaben regelmäßig abgearbeitet werden können werden sie in die sogenannte Message Queue geworfen. Dies ist nichts anderes als eine Warteschlange, in der jeder Scheduled Task nach und nach bearbeitet wird.
Angenommen es befinden sich drei Scheduled Tasks – A, B und C in der Message Queue, dann werden diese nacheinander abgearbeitet. Kommt ein neuer Task, bspw. Task D hinzu wird dieser entsprechend nach C abgearbeitet.
Wer zuerst kommt mahlt zuerst.
Probleme bei Scheduled Tasks
Wie man hier unschwer erkennen kann, findet in der Message Queue immer eine zeitliche Verschiebung einzelner Tasks statt. Solltest du einen neuen Task hinzufügen wollen, ist es gut möglich, dass andere Tasks vorher an der Reihe sind und eine Ausführung zu einem exakten Zeitpunkt nicht gewährleistet werden kann. Daher die eingängliche Frage, ob ein exakter Zeitpunkt für die Ausführung deiner Aufgabe notwendig ist.
Ein weiteres Problem von Scheduled Tasks ist, dass sie vom sogenannten Admin Worker bearbeitet werden. Der Admin Worker arbeitet in Shopware 6 jedoch nur, wenn du dich in der Administration deines Shopware Shops anmeldest. Solange sich niemand anmeldet, arbeitet der Admin Worker auch nicht. Dies wird dann zum Problem, wenn sich über einen längeren Zeitraum niemand in der Shopware Administration anmeldet oder man sie gar nicht benötigt, da man bspw. komplett aus einer Warenwirtschaft mittels Schnittstelle arbeitet.
Du siehst Scheduled Tasks sind bei exakten Zeitpunkten mit Admin Worker gänzlich ungeeignet.
Shopware 6 Admin Worker deaktivieren und CLI Worker starten
Das größte Problem was wir nun haben ist, dass der Admin Worker die Scheduled Tasks nur abarbeitet, sofern sich jemand in der Administration befindet. Dieses Verhalten lässt sich jedoch anpassen.
Hierzu müssen wir den Admin Worker deaktivieren und den CLI Worker aktivieren. Dies bedeutet nichts anderes als die Arbeiten des Admin Workers durch einen Cronjob bei deinem Hoster zu ersetzen.
Admin Worker deaktivieren
Den Admin Worker zu deaktiveren ist schnell getan. Navigiere hierzu in deiner Shopware Installation zu:
config/packages/z-shopware.yaml
Falls diese Datei bei dir nicht existieren sollte, kannst du sie einfach mit folgendem Inhalt anlegen:
shopware:
admin_worker:
enable_admin_worker: false
Die Einrückungen sind bei einer .yaml Datei übrigens entscheidend. Achte also darauf sie korrekt zu übernehmen, damit der Inhalt richtig eingelesen werden kann.
So schnell geht es auch schon. Der Admin Worker ist deaktiviert. Möchtest du ihn wieder aktivieren, setzt du enable_admin_worker einfach wieder auf true:
shopware:
admin_worker:
enable_admin_worker: true
Nun ist es wichtig einmal den Cache zu leeren. Wie du den Shopware 6 Cache leerst erfährst du in diesem Beitrag.
Cronjobs für CLI Worker einrichten
Zugegeben ist das Einrichten eines Cronjobs bei jedem Hoster unterschiedlich. Daher können wir dir hierzu keine Schritt für Schritt Anleitung mit an die Hand geben. Wenn du nun nicht mehr weiterkommen solltest, kannst du dich auch hier beim Support deines Hosters melden.
Wichtig ist nun zwei Cronjobs anzulegen, welche mit folgenden Commands die Arbeiten des Admin Workers korrekt ersetzen:
Ab Shopware v6.5 muss beim "messenger:consume" Befehl der sog. "Receiver" mit angegeben werden. Auch mit der Shopware v6.6 gab es hierbei wieder eine kleine Änderung. Nutze daher den Command entsprechend deiner Shopware Version.
# Ab Shopware 6.4 #
php bin/console messenger:consume --time-limit=300 --memory-limit=512M
# Ab Shopware 6.5 #
php bin/console messenger:consume failed async --time-limit=300 --memory-limit=512M
# Ab Shopware 6.6 #
php bin/console messenger:consume failed async low_priority --time-limit=300 --memory-limit=512M
php bin/console scheduled-task:run --time-limit=300 --memory-limit=512M
Du kannst die Befehle ebenfalls entweder über ein Shellskript oder im Idealfall direkt im Admin Panel deines Hosters angeben und ausführen lassen.
Die Shellskripte können hierbei wie folgt aussehen:
#!/bin/bash
env -i /usr/bin/php83 -f /pfad/zur/shopware-installation/bin/console messenger:consume failed async low_priority --time-limit=300 --memory-limit=512M
#!/bin/bash
env -i /usr/bin/php83 -f /pfad/zur/shopware-installation/bin/console scheduled-task:run --time-limit=300 --memory-limit=512M
Beide Befehle sind dabei sogenannte Watcher. Wer in Shopware 6 schon ein bisschen entwickelt hat, wird mit Sicherheit schon den Storefront und Admin Watchern begegnet sein. Wichtig ist hierbei zu verstehen das Watcher kontinuierlich weiterlaufen, sofern sie nicht abgebrochen werden. Die beiden oberen Watcher sollten erfahrungsgemäß jedoch im Produktivbetrieb nie länger als 5 Minuten am Stück laufen, um Performanceeinbußen deines Shops zu vermeiden:
--time-limit=300:
Beschreibt das Zeitintervall in Sekunden, nachdem der Befehl abgebrochen werden soll. 300 Sekunden = 5 Minuten
--memory-limit=512M:
Beschreibt das Memory Limit, welches auf 512MB gesetzt werden sollte.
Da nun die Commands definiert sind muss nun noch das Zeitintervall der Cronjobs angegeben werden. Wir empfehlen sie auf 6 Minuten zu setzen.
So werden die Commands gestartet, brechen nach exakt 5 Minuten ab und werden durch den Cronjob eine Minute später direkt wieder gestartet. Dieser Ablauf kann nun bedenkenlos in einer Endlosschleife durchgeführt werden.
Die Minute Zeitdifferenz ist hierbei bewusst gewählt, um zu vermeiden, dass mehrere Watcher gleichzeitig gestartet werden, was nicht zielführend wäre.
Solltest du Probleme beim Einrichten deines Cronjobs haben, stehen wir dir gerne zur Verfügung. Wir freuen uns auf dich!
Scheduled Task hinzufügen
Nun weißt du was Scheduled Tasks, die Message Queue, Admin und CLI Worker sind. Damit du nun auch deine eigenen Aufgaben regelmäßig ausführen kannst, solltest du einen eigenen Scheduled Task hinzufügen. Wie genau das funktioniert, lernst du am besten direkt in der Shopware eigenen Dokumentation zum Thema Scheduled Task hinzufügen.