Since deploying a Magento 2 website we’ve had trouble with URL rewrites. The default URL used by our products is (example)
mysite/catalog/product/view/id/50146/s/my_product/my_category/2/
This is not what I want to see and does not match the URL Key set in admin for the product. I have canonicals set to ‘yes’ for both products and categories.
I have the ‘Create Permanent Redirect For Old URL’ option selected by default but if I import new product URL keys using a 3rd party extension rewrites are not created.
If I use a third party module to regenerate the rewrites (elgentos) the url keys are ignored. The result is that the product URLs are long and unfriendly, as in the above example.
If I manually change the URL key and save the product then URL rewrites are added to the table but most of the rewrites have type set to ‘No’ where I would expect 301.
Oddly this doesn’t apply to all products but I can’t find a valid reason. The main problem is that previously indexed urls are no longer accessible to Google and site visitors unless I change each one manually (there are over 40K products). The other issue is that Google is attempting to index the long, non canonical URL, including pattern /catalog/, this path blocked by our robots.txt. I could remove /catalog/ from robots but I don’t want this URL to be indexed, I want it to be corrected and friendly for Google and site visitors.
- Any ideas why my import of new URL keys is not creating rewrites for the old URL?
- Why are manual url key changes resulting in rewrites with type ‘No’ surely these are of no use?
- Why isn’t Magento using URL keys to create canonical URLs?
- Why are URL keys ignored when recreating the rewrites table?
Thanks