Suchvorschläge auf der 404-Seite im Hyvä-Theme implementieren
AI generated
Hyvä
phtml
Hyvä Theme
Suchvorschläge auf der 404-Seite
im Hyvä-Theme implementieren

Ein defekter Link muss keine Sackgasse sein. Mit GraphQL-basierten Suchvorschlägen verwandelt sich die 404-Seite im Hyvä-Theme von einer reinen Fehlermeldung in einen aktiven Rettungsanker für Besucher, die sonst kommentarlos abspringen würden.

12 Min. Lesezeit 404-Seite Suchvorschläge

1. Warum eine 404-Seite nicht das Ende der Customer Journey sein muss

Defekte Links entstehen fortlaufend: alte Backlinks von Partnerseiten, verschobene URLs nach einer Kategorie-Umstrukturierung, abgekündigte Produkte oder schlicht Tippfehler in manuell eingegebenen Adressen. Eine 404-Seite, die ausschließlich eine Fehlermeldung anzeigt, beendet die Sitzung dieses Besuchers in dem Moment endgültig, in dem er eigentlich noch Kaufinteresse mitgebracht hatte, insbesondere wenn der Link von einer externen, indexstarken Domain stammte.

Dieser Artikel behandelt bewusst nicht das visuelle Design einer Fehlerseite, sondern die funktionale Intelligenz dahinter: Statt Besucher nur höflich über den Fehler zu informieren, analysiert die Seite den angefragten Pfad und schlägt aktiv passende Produkte oder Suchbegriffe vor, sodass aus einer verlorenen Sitzung im besten Fall doch noch eine Conversion wird.

2. Woher der angefragte Pfad kommt und wie er sich für Vorschläge nutzen lässt

Der wichtigste verfügbare Signalgeber auf einer 404-Seite ist der angefragte Pfad selbst: Eine URL wie /damen-laufschuhe-groesse-44 enthält auch dann noch wertvolle, durchsuchbare Begriffe, wenn das ursprünglich referenzierte Produkt längst nicht mehr existiert. Diese Begriffe lassen sich durch einfaches Zerlegen des Pfads an Bindestrichen und Entfernen generischer Füllwörter wie einer Kategorie-ID extrahieren und als Ausgangspunkt für eine Suche verwenden.

Andere potenzielle Signalquellen wie der interne Suchverlauf oder der Referrer-Header sind auf der 404-Seite meist entweder nicht verfügbar oder zu unzuverlässig, um sich darauf zu verlassen. Der angefragte Pfad bleibt deshalb in der Praxis die robusteste und am einfachsten zugängliche Grundlage für automatisch generierte Suchvorschläge.


<?php
declare(strict_types=1);

namespace Mironsoft\NotFoundSuggest\ViewModel;

use Magento\Framework\App\Request\Http;
use Magento\Framework\View\Element\Block\ArgumentInterface;

/**
 * Extrahiert durchsuchbare Begriffe aus dem angefragten, nicht
 * gefundenen URL-Pfad für die 404-Suchvorschläge.
 */
class PathTokenExtractor implements ArgumentInterface
{
    /** @var string[] */
    private const IGNORE_TOKENS = ['html', 'index', 'php', 'id'];

    /**
     * @param Http $request
     */
    public function __construct(private readonly Http $request)
    {
    }

    /**
     * Liefert die aus dem Pfad extrahierten Suchbegriffe.
     *
     * @return string[]
     */
    public function getSearchTokens(): array
    {
        $path = trim((string) $this->request->getPathInfo(), '/');
        $tokens = preg_split('/[-_\/]+/', $path) ?: [];
        $tokens = array_filter($tokens, static fn (string $t) => !is_numeric($t) && !in_array($t, self::IGNORE_TOKENS, true));
        return array_slice(array_values($tokens), 0, 6);
    }
}

3. GraphQL-basierte 'Meintest du'-Logik: Fuzzy-Suche gegen den Produktkatalog

Die aus dem Pfad extrahierten Begriffe lassen sich direkt über die Standard-products-Query mit dem search-Argument gegen Elasticsearch oder OpenSearch abfragen, denn die Fuzzy-Matching-Logik der Volltextsuche ist bereits im Suchcluster vorhanden und muss nicht eigens nachgebaut werden. Ein Tippfehler wie lafuschuhe statt laufschuhe findet über diesen Mechanismus zuverlässig dieselben Treffer wie eine korrekt geschriebene Suchanfrage.

Für die Darstellung genügt es meist, die Trefferliste auf vier bis sechs Produkte zu begrenzen, um die Seite nicht zu überladen. Liefert die Suche selbst bei stark verstümmelten Pfaden keine Treffer, sollte die Komponente nicht einfach leer bleiben, sondern auf eine Ebene höher ausweichen, etwa auf die meistbesuchten Kategorien des Shops, damit dem Besucher in jedem Fall eine sinnvolle nächste Handlung angeboten wird.


query NotFoundSuggestions($searchTerm: String!, $pageSize: Int!) {
  products(search: $searchTerm, pageSize: $pageSize) {
    total_count
    items {
      sku
      name
      url_key
      small_image { url label }
      price_range {
        minimum_price {
          final_price { value currency }
        }
      }
    }
  }
}

4. Ähnliche Suchbegriffe statt ausschließlich Produkte vorschlagen

Neben konkreten Produktvorschlägen lohnt sich zusätzlich die Anzeige verwandter Suchbegriffe, ähnlich der 'Meintest du'-Funktion auf der regulären Suchergebnisseite. Die dafür vorhandene Infrastruktur, etwa populäre gespeicherte Suchanfragen aus catalogsearch_query, lässt sich unverändert für den 404-Kontext wiederverwenden, indem die extrahierten Pfad-Tokens gegen diese Liste statt gegen den Produktkatalog selbst abgeglichen werden.

Die Kombination aus konkreten Produktkarten und anklickbaren Suchbegriff-Vorschlägen gibt Besuchern zwei unterschiedliche Wege aus der Sackgasse: den direkten Klick auf ein passendes Produkt für den ungeduldigen Besucher, oder die Verfeinerung der eigenen Suche über einen vorgeschlagenen Begriff für den Besucher, der noch nicht genau weiß, wonach er sucht.

5. Die Suchvorschläge als Alpine-Komponente im 404-Template integrieren

Im Hyvä-404-Template lässt sich die Vorschlagslogik als eigenständige Alpine-Komponente kapseln, die beim Laden der Seite automatisch die GraphQL-Anfrage mit den serverseitig extrahierten Tokens auslöst und Ladezustand sowie Ergebnis unabhängig vom restlichen Seiteninhalt verwaltet. Diese Trennung sorgt dafür, dass ein Fehler in der Vorschlagslogik niemals die restliche 404-Seite mit ihrem eigentlichen Fehlerhinweis beeinträchtigt.

Wie bei jeder Hyvä-Komponente mit eigenem Inline-Skript muss nach dem script-Block $hyvaCsp->registerInlineScript() aufgerufen werden, damit die Content Security Policy den generierten Nonce korrekt zuordnet und die Komponente im Livebetrieb nicht stillschweigend blockiert wird.


<div x-data="notFoundSuggestions(<?= $escaper->escapeJs(implode(',', $tokens)) ?>)" x-init="load()">
  <p x-show="isLoading" class="text-sm text-slate-500">Wir suchen nach passenden Alternativen ...</p>
  <div x-show="!isLoading && products.length" class="grid grid-cols-2 sm:grid-cols-4 gap-4">
    <template x-for="product in products" :key="product.sku">
      <a :href="`/${product.url_key}.html`" class="border border-slate-200 rounded-lg p-3 hover:shadow-md transition">
        <img :src="product.small_image.url" :alt="product.small_image.label" class="w-full h-auto mb-2">
        <p class="text-sm font-medium" x-text="product.name"></p>
      </a>
    </template>
  </div>
  <p x-show="!isLoading && !products.length" class="text-sm text-slate-500">
    Schauen Sie sich stattdessen in unseren beliebtesten Kategorien um.
  </p>
</div>

<script>
function notFoundSuggestions(tokenCsv) {
  return {
    isLoading: true,
    products: [],
    load() {
      const searchTerm = tokenCsv.split(',').join(' ');
      fetch('/graphql', {
        method: 'POST',
        headers: { 'Content-Type': 'application/json' },
        body: JSON.stringify({ query: '{ /* NotFoundSuggestions query */ }', variables: { searchTerm, pageSize: 6 } }),
      })
        .then((response) => response.json())
        .then((data) => { this.products = data.data.products.items; })
        .finally(() => { this.isLoading = false; });
    },
  };
}
</script>

6. Performance und Caching der 404-Seite mit dynamischen Vorschlägen

Die 404-Seite selbst wird vom Full Page Cache üblicherweise nicht sinnvoll gecacht, da jede fehlerhafte URL einen eigenen, individuellen Seitenaufruf darstellt. Das bedeutet, dass jeder einzelne defekte Link eine live ausgeführte Fuzzy-Suche gegen den Suchcluster auslöst, was bei alten, häufig von Crawlern wiederholt angefragten Legacy-URLs zu einer spürbaren, unnötigen Zusatzlast führen kann.

Ein kurzlebiger Cache der Vorschlagsergebnisse, geschlüsselt über die normalisierten Pfad-Tokens, reduziert diese Last erheblich, da wiederkehrende Bot-Anfragen auf denselben veralteten Sitemap-Eintrag nicht jedes Mal eine neue Suchanfrage auslösen. Zusätzlich lohnt sich ein einfacher Filter, der bekannte Crawler-User-Agents von der Vorschlagsgenerierung ausnimmt, da diese von personalisierten Produktvorschlägen ohnehin nicht profitieren.

7. Tracking: Conversion-Rettung durch Suchvorschläge messbar machen

Ohne dediziertes Tracking bleibt der Erfolg von Suchvorschlägen auf der 404-Seite reine Vermutung. Ein eigenes Event, das bei jedem Klick auf eine vorgeschlagene Produktkarte oder einen vorgeschlagenen Suchbegriff ausgelöst wird, macht messbar, wie viele Besucher tatsächlich aus einer potenziellen Sackgasse zurückgeholt werden, statt nur die allgemeine Pageview-Statistik der 404-Seite zu betrachten.

Der aussagekräftigste Vergleichswert ist die Absprungrate der 404-Seite vor und nach Einführung der Suchvorschläge, denn sie zeigt unmittelbar, ob die Investition in die zusätzliche Logik tatsächlich Besucher im Shop hält. Bleibt die Absprungrate trotz Vorschlägen unverändert hoch, lohnt sich ein Blick darauf, ob die extrahierten Suchbegriffe überhaupt zu relevanten Treffern führen.

Ein Fachmagazin verlinkt seit Jahren auf ein mittlerweile abgekündigtes Laufschuh-Modell, dessen URL nach der letzten Katalogbereinigung ins Leere führt. Die 404-Seite extrahiert aus dem Pfad die Begriffe Laufschuh und die ehemalige Modellbezeichnung, findet darüber drei aktuell verfügbare, thematisch passende Nachfolgemodelle aus derselben Kategorie und ergänzt einen Link zur übergeordneten Kategorieseite, sodass der über den externen Backlink ankommende Besucher trotz des veralteten Links eine sinnvolle Anlaufstelle vorfindet.

Suchvorschläge ersetzen dabei keine systematische Pflege von Weiterleitungen: Ein regelmäßiger Blick in das 404-Log deckt wiederkehrende Muster auf, etwa eine komplette umbenannte Kategorie mit Dutzenden betroffenen URLs, die eine echte Weiterleitung verdient, statt sich dauerhaft auf automatisch generierte Vorschläge zu verlassen.

9. Checkliste für Suchvorschläge auf der 404-Seite

Suchvorschläge auf der 404-Seite entfalten ihren Wert am stärksten, wenn Pfad-Extraktion, Fuzzy-Suche, Performance-Schutz und Erfolgsmessung als ein zusammenhängendes System betrachtet werden, statt nur einzelne Produktkarten hinzuzufügen. Eine Vorschlagsliste, die niemand misst, bleibt eine Vermutung, wie viel Wert sie tatsächlich stiftet.

Die folgende Übersicht fasst die wichtigsten Bausteine für eine solide Umsetzung zusammen, sortiert nach ihrer Bedeutung für die tatsächliche Conversion-Rettung.

Baustein Zweck Umsetzungsaufwand Wirkung auf Conversion-Rettung
Pfad-Token-Extraktion Durchsuchbare Begriffe aus der defekten URL gewinnen Gering Grundlage für alle weiteren Vorschläge
GraphQL-Fuzzy-Suche gegen Produktkatalog Passende Produkte trotz Tippfehlern finden Mittel Sehr hoch
Fallback auf beliebte Kategorien Leere Vorschlagsflächen bei fehlenden Treffern vermeiden Gering Mittel
Ähnliche Suchbegriffe zusätzlich anzeigen Zweiten Weg aus der Sackgasse anbieten Mittel Mittel bis hoch
Kurzlebiger Cache für Vorschlagsergebnisse Suchcluster vor wiederholten Bot-Anfragen schützen Mittel Kein direkter Conversion-Effekt, aber Stabilität
Klick-Tracking auf Vorschlagselemente Erfolg der Maßnahme messbar machen Gering Voraussetzung für belastbare Optimierung

Mironsoft

Hyvä-Theme-Entwicklung und Luma-Migration

Noch auf Luma unterwegs oder ein Hyvä-Theme, das nicht rund läuft?

Wir entwickeln Hyvä-Themes für Magento von Grund auf oder migrieren bestehende Luma-Shops sauber, mit Tailwind CSS, Alpine.js und ohne unnötiges JavaScript-Gepäck.

Luma-zu-Hyvä-Migration

Bestehenden Shop strukturiert und ohne Funktionsverlust auf Hyvä umstellen.

Custom-Theme-Entwicklung

Individuelles Hyvä-Theme nach Design-Vorgaben von Grund auf umsetzen.

Performance-Optimierung

Core Web Vitals und Ladezeiten im Hyvä-Frontend gezielt verbessern.

10. Zusammenfassung

Suchvorschläge auf der 404-Seite

Kernidee

Die 404-Seite analysiert den defekten Pfad aktiv und schlägt passende Produkte statt einer reinen Fehlermeldung vor.

Technische Basis

Extrahierte Pfad-Tokens laufen über die vorhandene Fuzzy-Suche des Suchclusters, keine neue Suchlogik nötig.

Performance

Ein kurzlebiger Cache schützt den Suchcluster vor wiederholten Bot-Anfragen auf veraltete Legacy-URLs.

Erfolgsmessung

Klick-Tracking auf Vorschlagselemente macht die tatsächliche Conversion-Rettung sichtbar statt sie zu vermuten.

11. FAQ: Suchvorschläge auf der 404-Seite

1Warum sind Suchvorschläge auf der 404-Seite wertvoller als ein reines Fehlerdesign?
Ein ansprechendes Fehlerdesign informiert den Besucher lediglich höflich über den Fehler, während Suchvorschläge aktiv eine Rückkehr zu relevanten Inhalten anbieten. Gerade Besucher, die über einen externen, indexstarken Backlink ankommen, lassen sich dadurch häufig noch im Shop halten.
2Woher stammen die Begriffe für die Suchvorschläge?
Die wichtigste Quelle ist der angefragte, nicht gefundene URL-Pfad selbst, der durch Zerlegen an Bindestrichen und Entfernen generischer Füllwörter durchsuchbare Begriffe liefert. Andere Signale wie Referrer oder Suchverlauf sind auf der 404-Seite meist nicht zuverlässig genug verfügbar.
3Muss für die Fuzzy-Suche eine eigene Suchlogik entwickelt werden?
Nein, die Standard-GraphQL-products-Query mit dem search-Argument nutzt bereits die vorhandene Fuzzy-Matching-Logik von Elasticsearch oder OpenSearch. Tippfehler in den extrahierten Begriffen finden dadurch trotzdem passende Treffer, ohne dass eine zusätzliche Suchimplementierung nötig wäre.
4Was passiert, wenn die Suche für einen stark verstümmelten Pfad keine Treffer findet?
In diesem Fall sollte die Komponente nicht leer bleiben, sondern auf eine allgemeinere Ebene ausweichen, etwa auf die meistbesuchten Kategorien des Shops. So bekommt der Besucher immer eine sinnvolle nächste Handlungsmöglichkeit angeboten.
5Warum lohnt sich die zusätzliche Anzeige ähnlicher Suchbegriffe neben Produktvorschlägen?
Produktvorschläge helfen dem Besucher, der genau weiß, was er sucht, während Suchbegriff-Vorschläge dem Besucher helfen, der seine eigene Suche erst noch verfeinern möchte. Beide Wege zusammen decken ein breiteres Spektrum an Besucherabsichten ab.
6Warum sollte die Vorschlagslogik als eigenständige Alpine-Komponente gekapselt werden?
Eine getrennte Komponente sorgt dafür, dass ein Fehler in der Vorschlagslogik niemals die restliche 404-Seite mit ihrem eigentlichen Fehlerhinweis beeinträchtigt. Zudem lässt sich die Komponente unabhängig testen und bei Bedarf gezielt anpassen.
7Warum wird die 404-Seite mit dynamischen Vorschlägen nicht einfach vom Full Page Cache abgedeckt?
Jede defekte URL stellt einen eigenen, individuellen Seitenaufruf dar, wodurch klassisches Full-Page-Caching wenig Wirkung zeigt. Ein gezielter, kurzlebiger Cache der Vorschlagsergebnisse selbst federt die dadurch entstehende Zusatzlast auf den Suchcluster ab.
8Wie lässt sich verhindern, dass Crawler den Suchcluster mit 404-Anfragen überlasten?
Ein einfacher Filter, der bekannte Crawler-User-Agents von der Vorschlagsgenerierung ausnimmt, verhindert unnötige Suchanfragen, da Bots von personalisierten Produktvorschlägen ohnehin nicht profitieren. Kombiniert mit einem kurzlebigen Ergebnis-Cache lässt sich die Zusatzlast auf ein unkritisches Maß begrenzen.
9Wie misst man, ob Suchvorschläge auf der 404-Seite tatsächlich Conversions retten?
Ein dediziertes Klick-Event auf jede vorgeschlagene Produktkarte und jeden vorgeschlagenen Suchbegriff macht sichtbar, wie viele Besucher die Vorschläge tatsächlich nutzen. Der Vergleich der Absprungrate der 404-Seite vor und nach Einführung der Funktion liefert den aussagekräftigsten Gesamtwert.
10Ersetzen Suchvorschläge die Pflege von Weiterleitungen für bekannte defekte URLs?
Nein, Suchvorschläge sind eine Ergänzung für den unvorhersehbaren Rest an defekten Links, ersetzen aber nicht die systematische Pflege von Weiterleitungen für bekannte, wiederkehrende Muster. Ein regelmäßiger Blick ins 404-Log deckt auf, welche Fälle eine echte Weiterleitung verdienen.