XML Sitemap contains a lot of non-canonical URLs in Magento 2.0.2. It's not good practice from SEO perspective and and worth fixing.
Here is my config:
- Use Categories Path for Product URLs is set to "No"
- Use Canonical Link Meta Tag For Products is set to "Yes"
And few lines from my sitemap:
http://example.com/women/tops-women/tanks-women/erica-evercool-sports-bra.html (category path, Non-Canonical)
http://example.com/nora-practice-tank.html (Canonical)
...
All sitemap links should be equal to canonical links.
Could someone please have a look at it.
Appreciate any help.
Best Answer
I noticed the same thing when I first generated my sitemap. I ended up making a short extension module and tweaking the sitemap query for products.
The class that needs to be extended:
Magento\Sitemap\Model\ResourceModel\Catalog\Product
The function that needs to be overridden:
public function getCollection($storeId)
Change the parameter in the
joinLeft
of the query from:To the following:
This works for me. I'm obviously not doing a check for the canonical configuration setting and just scoping on the meta-data field in the query. This HAS NOT been thoroughly tested, so I make no promises that this won't exclude products for some reason.
I hope this helps. Maybe there will be an official patch for this later, but for now this is my solution.