Magento Catalog URL Rewrites Slow or Stuck in Processing

It is possible you suffer from the Magento Catalog URL rewrite bug where a store with 7k products would see 300k rows in the core_url_rewrite table.  The patch to apply is detailed here: https://gist.github.com/edannenberg/5310008

And copied below in case that original page disappears (some of my Magento related bookmarks have unfortunately become obsolete).

diff -rupN mage_org/app/code/core/Mage/Catalog/Model/Url.php src_shop/app/code/core/Mage/Catalog/Model/Url.php
--- mage_org/app/code/core/Mage/Catalog/Model/Url.php 2013-11-19 00:48:25.679009391 +0100
+++ src_shop/app/code/core/Mage/Catalog/Model/Url.php 2013-11-19 00:49:24.188005601 +0100
@@ -643,13 +643,24 @@ class Mage_Catalog_Model_Url
$this->_rewrite = $rewrite;
return $requestPath;
}
+
+ // avoid unnecessary creation of new url_keys for duplicate url keys
+ $noSuffixPath = substr($requestPath, 0, -(strlen($suffix)));
+ $regEx = '#^('.preg_quote($noSuffixPath).')(-([0-9]+))?('.preg_quote($suffix).')#i';
+ $currentRewrite = $this->getResource()->getRewriteByIdPath($idPath, $storeId);
+ if ($currentRewrite && preg_match($regEx, $currentRewrite->getRequestPath(), $match)) {
+ $this->_rewrite = $currentRewrite;
+ return $currentRewrite->getRequestPath();
+ }
+
// match request_url abcdef1234(-12)(.html) pattern
$match = array();
$regularExpression = '#^([0-9a-z/-]+?)(-([0-9]+))?('.preg_quote($suffix).')?$#i';
if (!preg_match($regularExpression, $requestPath, $match)) {
return $this->getUnusedPath($storeId, '-', $idPath);
}
- $match[1] = $match[1] . '-';
+ $match[1] = $noSuffixPath . '-'; // always use full prefix of url_key
+ unset($match[3]); // don't start counting with a possible number in the url_key
$match[4] = isset($match[4]) ? $match[4] : '';

$lastRequestPath = $this->getResource()

One thought on “Magento Catalog URL Rewrites Slow or Stuck in Processing”

  • Damon Moats

    A very informative article, enabling URL rewrite's really contributes in improving search engine optimization of Magento store, there's another really good tutorial for this on magenticians. I found it really helpful and to the point, do have a look at it too. Thanks

    Reply

1 Item(s)

Leave a Reply

About NVNCBL

Quick Support