WooCommerce ist das beliebteste Plugin zur Erstellung von Online-Shops in WordPress. Dieses Plugin verwendet AJAX-Technologie, um eine reibungslose und dynamische Benutzererfahrung zu bieten. Einer der wichtigsten AJAX-Aufrufe ist wc-ajax=get_refreshed_fragments, der dazu dient, die Warenkorbdaten in Echtzeit zu aktualisieren, ohne die gesamte Seite neu laden zu müssen. Obwohl diese Funktion für die Warenkorbfunktionalität unerlässlich ist, kann sie sich negativ auf die Leistung der Website auswirken, wenn sie nicht sorgfältig behandelt wird.
Wie funktioniert wc-ajax=get_refreshed_fragments?
Wenn Kunden Produkte zum Warenkorb hinzufügen oder Änderungen daran vornehmen, führt WooCommerce einen Aufruf an /?wc-ajax=get_refreshed_fragments durch, um die Warenkorb-Fragmente auf der Seite zu aktualisieren. Dies bedeutet, dass Details wie die Anzahl der Artikel und der Warenkorbgesamtbetrag sofort aktualisiert werden, ohne dass die gesamte Seite neu geladen werden muss.
Entstehung langsamer Ladezeiten
Das Problem beginnt, wenn diese Anfrage auf allen Seiten ausgeführt wird, auch auf solchen, auf denen eine aktualisierte Warenkorbanzeige nicht erforderlich ist. Dies kann beispielsweise passieren, wenn der Warenkorb oder seine Mini-Version über ein Widget auf jeder Seite eingebunden ist. Die Folge ist eine übermäßige Anzahl von Aufrufen an admin-ajax.php, was die Serverlast erhöht und die Benutzererfahrung verlangsamt.
Was sind Anfragen an admin-ajax.php?
admin-ajax.php ist eine wesentliche Datei in WordPress, die AJAX-Anfragen verwaltet. AJAX (Asynchronous JavaScript and XML) ermöglicht die Kommunikation zwischen dem Browser und dem Server, sodass Teile einer Seite aktualisiert werden können, ohne sie vollständig neu laden zu müssen. WooCommerce verwendet wie andere WordPress-Plugins und -Themes admin-ajax.php, um Backend-Operationen durchzuführen, ohne die Frontend-Benutzererfahrung zu unterbrechen.
Übermäßige Anfragen an admin-ajax.php, insbesondere auf stark frequentierten Websites oder solchen mit vielen dynamischen Elementen, können den Server überlasten. Dies führt zu langsameren Ladezeiten und möglicherweise zu einer schlechteren Benutzererfahrung sowie zu einer negativen Auswirkung auf das SEO der Website.
Praktische Lösungen zur Optimierung von wc-ajax=get_refreshed_fragments
Identifizierung von AJAX-Anfragen mit Query Monitor
Um Query Monitor zu verwenden, müssen Sie das Plugin auf Ihrer WooCommerce-Website installieren und aktivieren.
Query Monitor ist ein Plugin, das für die Verwaltung von WordPress-Installationen mit WooCommerce verwendet wird. Dieses Plugin ermöglicht es Ihnen, AJAX-Anfragen auf Ihrer Website anzuzeigen. Nach der Installation und Aktivierung von Query Monitor können Sie:
- Unnötige Anfragen identifizieren: Durchsuchen Sie Ihre Website und beobachten Sie die Anfragen an admin-ajax.php, die auf jeder Seite gestellt werden. Query Monitor zeigt Details zu diesen Anfragen an und hilft Ihnen zu erkennen, welche wesentlich sind und welche entfernt werden könnten.
- Überlastungen erkennen: Achten Sie besonders auf Seiten, die keine dynamischen Warenkorbaktualisierungen erfordern, wie Informationsseiten, Blogbeiträge oder Kontaktbereiche. Wenn diese Seiten Anfragen an admin-ajax.php generieren, ist dies ein Zeichen dafür, dass sie optimiert werden können.
Um die Anfragen von 'wc-ajax=get_refreshed_fragments' zu testen, gehen Sie zur Warenkorbseite Ihrer Website und fügen Sie einige Produkte zum Warenkorb hinzu. Öffnen Sie dann das Verwaltungsfenster des Plugins und rufen Sie die WooCommerce-Prozesse auf, um sie zu überwachen.
Verwendung der Funktion disable_ajax_requests zum Deaktivieren von Anfragen
Sobald unnötige Anfragen identifiziert wurden, können Sie sie selektiv deaktivieren, indem Sie eine benutzerdefinierte Funktion in der Datei functions.php Ihres WordPress-Themes verwenden. Um auf die Datei functions.php Ihres WordPress-Themes zuzugreifen und sie zu bearbeiten, empfehlen wir, den Theme-Verwaltungsbereich über Ihr WordPress-Admin-Panel aufzurufen.
Die Funktion disable_ajax_requests kann angepasst werden, um Anfragen auf bestimmten Seiten zu deaktivieren:
function disable_ajax_requests() {
if ( ! is_cart() && ! is_checkout() && ! is_account_page() ) {
wp_dequeue_script( 'wc-cart-fragments' );
wp_dequeue_script( 'woocommerce' );
wp_dequeue_script( 'wc-add-to-cart' );
remove_action( 'wp_head', 'wc_fragment_refresh', 10);
}
}
add_action( 'wp_enqueue_scripts', 'disable_ajax_requests', 100 );
Hinweis: Dieser Code deaktiviert AJAX-Anfragen im Zusammenhang mit dem Warenkorb auf Seiten, die nicht für die Warenkorbfunktionalität wesentlich sind, wie z.B. Warenkorb-, Kasse- oder Kontoseiten. Stellen Sie sicher, dass Sie Ihre Website nach der Implementierung dieser Änderungen testen, um zu überprüfen, ob alles wie erwartet funktioniert.
Zusätzliche Leistungsverbesserungen
Neben AJAX-Anfragen gibt es weitere Strategien, die Sie implementieren können, um die Leistung weiter zu verbessern:
- Bildoptimierung: Wir empfehlen die Verwendung von Bildoptimierungs-Plugins, um die Bildgröße zu reduzieren, ohne die Qualität zu beeinträchtigen.
- CSS- und JavaScript-Minifizierung: Plugins wie Autoptimize können Ihnen helfen, CSS- und JavaScript-Dateien zu minimieren und zu kombinieren, wodurch HTTP-Anfragen und die Ladezeit der Seite reduziert werden.
- Verwendung von Cache-Systemen: Konfigurieren Sie Cache-Plugins wie WP Rocket (kostenpflichtig) oder W3 Total Cache richtig, um statische Versionen Ihrer Seiten zu speichern und die Serverlast zu reduzieren. Bei cdmon bieten wir ein serverseitiges Cache-Tool (Varnish), das für WordPress-Installationen optimiert ist.
So verwenden Sie das cdmon-Cache-Tool.
Über das cdmon-Control-Panel haben Sie Zugriff auf Tools und Dienste, die entwickelt wurden, um die Leistung Ihres Hostings zu optimieren, wie unser Varnish-Cache-Tool, das Sie jederzeit aktivieren oder deaktivieren können. Sie können auch auf eine neuere PHP-Version upgraden, um eine maximale Optimierung zu erreichen.
Die Optimierung von wc-ajax=get_refreshed_fragments-Anfragen und anderen AJAX-Operationen in WooCommerce ist entscheidend, um Ihre Website schnell und effizient zu halten. Indem Sie diese praktischen Lösungen befolgen, können Sie die Leistung Ihres Online-Shops erheblich verbessern, eine optimale Benutzererfahrung und eine bessere Gesamtleistung der Website gewährleisten.