Seltsame Nicht-Systemzeilen werden zu core_url_rewrite hinzugefügt

8

Unsere core_url_rewriteTabelle scheint übermäßig zu wachsen (derzeit 21 Millionen Zeilen) - ich weiß, dass es andere Fragen dazu gab, aber keine von ihnen scheint diese besondere Kuriosität zu erwähnen: Viele der neu hinzugefügten Zeilen haben is_system = 0, und das id_pathist so etwas wie " 97704000_1422557940 ". Die Zahl nach dem Unterstrich scheint der Zeitstempel zu sein, mit dem die Zeile hinzugefügt wurde, aber ich bin mir nicht sicher, wie die erste Zahl lautet.

Der Rat für core_url_rewriteProbleme scheint immer darin zu bestehen, die Tabelle abzuschneiden und neu zu indizieren, und es kann dazu kommen, aber wir haben viele benutzerdefinierte Umschreibungen in der Tabelle, so dass es ein echtes Problem sein wird, sie ständig neu hinzuzufügen und ich würde viel lieber an die Wurzel des Problems gehen.

Wir haben gerade ein Upgrade auf 1.9.1.0 durchgeführt, aber es gibt Zeilen in der Tabelle, die fast zwei Jahre (!) Zurückreichen.

Irgendwelche Ideen?

Ben Slinger
quelle

Antworten:

6

Dies ist ein klassisches Problem beim Umschreiben. Die Hauptursache sind keine eindeutigen URL-Schlüssel. In der Regel dadurch verursacht, dass einfache Produkte mit demselben Namen konfiguriert werden können.

Aus offensichtlichen Gründen muss ein Anforderungspfad (URL) mit einer Aktion in Magento übereinstimmen. Daher müssen alle Anforderungspfade eindeutig sein. Produkt- und Kategorie-URL-Pfade werden aus ihren URL-Schlüsseln erstellt. Wenn Sie über konfigurierbare Produkte verfügen, nehmen sich Ladenbesitzer / Backend-Mitarbeiter normalerweise nicht die Zeit, um sicherzustellen, dass die einfachen Produkte unter einem konfigurierbaren Produkt unterschiedliche URL-Schlüssel haben. Dadurch fügt Magento einen Bindestrich und eine Sequenznummer ein. Bei einem konfigurierbaren Produkt mit 4 Simples bedeutet dies, dass mindestens 4 URLs mit einer Sequenz pro Iteration hinzugefügt werden (da Magento nicht zwischen Läufen unterscheidet, bei denen bereits eine Sequenz erstellt wurde). Dies summiert sich schnell in einem großen Katalog.

Der wiederherzustellende Workflow lautet wie folgt:

  1. Stellen Sie sicher, dass alle URL-Schlüssel eindeutig sind, um Ihre Eingabe zu korrigieren, und führen Sie eine weitere Neuindizierung der Umschreibungen durch.
  2. Entfernen Sie alle übereinstimmenden Umschreibungen WHERE id_path LIKE "%_%" AND options="RP" AND (catalog_id IS NOT NULL OR product_id IS NOT NULL) AND target_path NOT IN (temp_table).
  3. WHERE id_path LIKE "%_%" AND options="RP" AND (catalog_id IS NOT NULL OR product_id IS NOT NULL)Setzen Sie für die verbleibenden Übereinstimmungen beim Umschreiben den Anforderungspfad auf den Zielpfad und den Zielpfad auf den Anforderungspfad, der der Kombination aus Kategorie_ID-Produkt_ID entspricht und bei der die Optionen NULL sind.
  4. Installieren Sie diese Erweiterung und aktivieren Sie alle Optimierungen
  5. Reindex schreibt mindestens zweimal neu und überprüft, ob die Zeilenanzahl konsistent ist (sofern keine Änderungen an Produkten oder Kategorien vorgenommen wurden).
  6. Überwachen Sie die Webmaster-Tools und 404 auf zusätzliche veraltete URLs, die sich noch in Spider befinden und umgeleitet werden sollten. Implementieren Sie den 301 vorzugsweise in Ihrem Webserver, um ihn core_url_rewritesauber zu halten .

Hinweise: Dieses Skript hilft beim Erstellen eindeutiger URL-Schlüssel, indem Attributwerte iteriert und angehängt werden, bis ein eindeutiger Schlüssel generiert wird. Beachten Sie, dass dieses Skript keine Konflikte zwischen einer Kategorie und einem Produkt überprüft. In der Regel ist dies kein Problem, da Kategorien natürlich im Plural benannt werden. Wenn Sie jedoch beispielsweise Schafe oder Fische verkaufen, kann dies dennoch ein Problem sein. Ein weiterer Eckfall ist ein Konflikt zwischen Katalog-URLs und CMS-Seiten. Dieses Skript überprüft es nicht, wirkt sich jedoch auch nicht auf das Umschreiben aus, da die CMS-Seitenkennungen nicht vorhanden sind. Dies führt einfach dazu, dass entweder die CMS-Seite oder die Kategorie- / Produktseite dort angezeigt wird, wo einer den anderen erwarten würde.

Die erwähnte temp_table sollte mit URLs gefüllt sein, die in allen Sitemaps enthalten sind. Dies verringert einige der SEO-Auswirkungen, indem die aktuelle Variante von Bindestrich und Sequenznummer am Leben erhalten wird. In Schritt 3 wird diese dann auf die richtige URL umgeschrieben. Die Erweiterung in Schritt 4 verhindert, dass eine Reihe von URLs in die Tabelle core_url_rewrite eingegeben werden, insbesondere Produkte, die nicht auf die Sichtbarkeit "Katalog / Suche" eingestellt sind. Wenn Sie einfache Produkte haben, die Teil eines konfigurierbaren Produkts sind und nicht separat aufgeführt sind, sollten diese als "nicht einzeln sichtbar" gekennzeichnet sein. Diese Erweiterung verhindert dann, dass sie neu geschrieben werden. Dies ist eine wertvolle Optimierung für Geschäfte mit konfigurierbaren Produkten, unabhängig davon, ob sie dieses Problem beim Umschreiben von URLs haben. Wenn in Bezug auf Schritt 5 keine Änderungen an den URL-Schlüsseln der Produkte und Kategorien vorgenommen werden, dann muss jede Indexierung die gleiche Anzahl von Umschreibungen erzeugen. Wenn dies nicht der Fall ist, haben Sie immer noch irgendwo einen Konflikt und sollten ihn aufspüren.

Hoffe das klärt die Dinge ein bisschen.

Melvyn
quelle
nette Antwort und +1 dafür. Aber es wäre schön, wenn Sie weitere Details hinzufügen, wie Sie dieses Kernproblem angehen können, etwaige Links usw.
Rajeev K Tomy
Wird besorgt. War auf dem Weg nach draußen.
Melvyn
0

Ich glaube, dies sind normalerweise programmgesteuert generierte Weiterleitungen, wenn Sie Produkte und Kategorien im Katalog ändern. Sie sollen alte Links beibehalten, um Kunden an die neuen Standorte zu senden. Sie können sie jedoch wahrscheinlich nach einer Weile löschen, da sie sich im Laufe der Zeit aufbauen - insbesondere, wenn Sie mehrere Websites / Geschäfte / Ansichten und viele Produkte haben.

fantastischer Reis
quelle