Strane righe non di sistema aggiunte a core_url_rewrite


8

La nostra core_url_rewritetabella sembra crescere eccessivamente (attualmente 21 milioni di righe). So che ci sono state altre domande al riguardo, ma nessuna di queste sembra menzionare questa stranezza particolare: molte delle nuove righe aggiunte hanno is_system = 0, ed id_pathè qualcosa del tipo " 97704000_1422557940" . Il numero dopo il carattere di sottolineatura sembra essere il timestamp in cui è stata aggiunta la riga, ma non sono sicuro di quale sia il primo numero.

Il consiglio per i core_url_rewriteproblemi sembra sempre essere quello di troncare la tabella e reindicizzare, e potrebbe arrivare a quello, ma abbiamo molte riscritture personalizzate nella tabella, quindi doverle aggiungere di nuovo costantemente sarà una vera seccatura e preferirei molto arrivare alla radice del problema.

Abbiamo appena aggiornato a 1.9.1.0, ma ci sono righe nella tabella che risale a quasi due anni (!).

Qualche idea?

Risposte:


6

Questo è un problema classico con le riscritture. La causa principale non ha chiavi URL univoche. Generalmente causato dall'avere prodotti semplici parte di configurabili con lo stesso nome.

Per ovvi motivi, un percorso di richiesta (URL) deve corrispondere a un'azione in Magento. Pertanto, tutti i percorsi di richiesta devono essere univoci. I percorsi URL dei prodotti e delle categorie vengono creati dalle loro chiavi URL e in genere quando si dispone di prodotti configurabili, i proprietari dei negozi / i lavoratori backend non si prendono il tempo per assicurarsi che i prodotti semplici sotto un configurabile abbiano chiavi URL diverse. Questo fa sì che Magento inserisca un trattino e un numero progressivo. Dato un prodotto configurabile con 4 semplici, ciò significa che ogni iterazione vengono aggiunti almeno 4 URL con una sequenza (poiché Magento non riesce / non riesce a distinguere tra le esecuzioni che una sequenza è già stata creata). Questo si aggiunge rapidamente in un grande catalogo.

Il flusso di lavoro da ripristinare è il seguente:

  1. Assicurati che tutte le chiavi URL siano univoche, fissando il tuo input e eseguendo un altro reindice di riscritture.
  2. Rimuovi tutte le riscritture corrispondenti 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. Per le rimanenti corrispondenze riscrive WHERE id_path LIKE "%_%" AND options="RP" AND (catalog_id IS NOT NULL OR product_id IS NOT NULL)impostare request_path su target_path e impostare target_path su request_path che corrisponde alla combinazione category_id-product_id e dove le opzioni sono NULL.
  4. Installa questa estensione e abilita tutte le ottimizzazioni
  5. Reindex riscrive almeno due volte, verificando che il conteggio delle righe sia coerente (senza modifiche ai prodotti o alle categorie).
  6. Monitora gli Strumenti per i Webmaster e i 404 per ulteriori URL non aggiornati che sono ancora presenti negli spider e devono essere reindirizzati. Preferibilmente implementa il 301 nel tuo server web per mantenerlo core_url_rewritepulito.

Note: questo script aiuta a creare chiavi URL univoche, ripetendo i valori degli attributi e aggiungendoli fino a quando non viene generata una chiave univoca. Si noti che questo script non verifica i conflitti tra una categoria e un prodotto. In genere questo non è un problema, poiché le categorie sono naturalmente denominate al plurale, ma se vendi ad esempio pecore o pesci questo può ancora essere un problema. Un altro caso angolare è uno scontro tra gli URL del catalogo e le pagine CMS. Questo script non lo controlla, ma non ha alcun impatto sulle riscritture poiché gli identificatori di pagina CMS non sono presenti. Ciò comporterà semplicemente la pagina CMS o la pagina categoria / prodotto mostrata dove uno si aspetterebbe di vedere l'altro.

La tabella delle temp menzionata deve essere riempita con URL che si trovano in tutte le sitemap. Ciò mitiga parte dell'impatto SEO mantenendo in vita la variante corrente di trattino e numero progressivo e nel passaggio 3 questo viene quindi riscritto nell'URL corretto. L'estensione nel passaggio 4 impedisce a una serie di URL di immettere la tabella core_url_rewrite, in particolare i prodotti che non sono impostati sulla visibilità "catalog / search". Quando si dispone di prodotti semplici che fanno parte di un elemento configurabile e non elencati separatamente, questi dovrebbero essere contrassegnati "non visibili individualmente" e questa estensione impedisce loro di immettere riscritture. Questa è una preziosa ottimizzazione per i negozi con prodotti configurabili, indipendentemente dal fatto che abbiano questo problema di riscrittura degli URL. Per quanto riguarda il passaggio 5, se non vengono apportate modifiche alle chiavi url di prodotti e categorie, quindi ogni indicizzazione genererà la stessa quantità di riscritture. In caso contrario, hai ancora un conflitto da qualche parte e dovresti cercarlo.

Spero che questo chiarisca un po 'le cose.


bella risposta e +1 per quello. Ma sarebbe bello se si aggiungessero ulteriori dettagli come come affrontare questo problema fondamentale, eventuali collegamenti erc.
Rajeev K Tomy,

Andrà bene. Stavo uscendo.
Melvyn,

0

Ritengo che si tratti in genere di reindirizzamenti generati a livello di codice quando si cambiano prodotti e categorie nel catalogo. Hanno lo scopo di mantenere i vecchi collegamenti per inviare i clienti alle nuove posizioni, ma è possibile eliminarli dopo un po 'poiché tendono ad accumularsi nel tempo, soprattutto se si dispone di più siti Web / negozi / visualizzazioni e molti prodotti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.