Making this private conversation with BlessIsaacola public for the benefit/feedback of all:
Correct me if I'm wrong, but it seems that when you have a product in multiple categories, MSEO always uses the MASTER category for the product URL, rather than the current category. For example, in this category on your site:
http://www.clevershoppers.com/music-9/classical-16/
Most of these products listed are in multiple categories, and when you click on them, you end up in a completely different category, at least according to the URL, e.g.:
clevershoppers.com/####################s-12/music-video-concerts-186/symphonies-the-volume-1-dvd-audio-55078.html
clevershoppers.com/featured-brands-227/so-smart-348/so-smart-musical-cd-3-pack-sleepytime-cartime-playtime-1401.html
clevershoppers.com/music-9/instrumental-26/inspired-joy-2-8126.html
But the breadcrumbs for each product show the original path (music / classical).
Even more interesting, say you were browsing the Instrumental Music category instead and clicked on the Inspired Joy CD product from there:
clevershoppers.com/music-9/instrumental-26/inspired-joy-2-8126.html
The URL now agrees with how you got there, but the breadcrumb shows a completely different category (music / classical)...and it's NOT the master category. Either way, it seems the breadcrumb and the URL are NOT related in MSEO. (They are when MSEO is not installed; Zen of course determines the current category for the breadcrumb via the cPath query string var.)
This is probably good thing in terms of not having duplicate content/pages, but it's confusing to not have the URL and the breadcrumb agree, nor to have the breadcrumb actually reflect the path you took to get a product.
BTW, which version of MSEO are you running? 1.0, or 1.1?

Originally Posted by
BlessIsaacola
Yes! We've noticed the behavior you described and for the sake of SEO actually prefers that behavior because a product only has one url no matter how it is accessed. The way Zen Cart behaves is not desirable (although it may be user friendly). Without MSU, Zen Cart gives two ways to access any given product, i.e product_info&product_id= and cpath&product_id= which leads to one product having two url.
When a product is linked (not copied) that even present a different problems because a linked product has a master category. Depending on how you get to the product, Zen Cart decides whether to display the master category or linked category (but this is dependent on did you navigate to the product using categories or search function). You will be surprised to see different scenarios in the url depending on how you get to the product.
I am not sure what the best way is but from experience and use google analytic data, we do not see our customers finding products using categories. So we do not worry much about this and choose to do what's better for SEO which is avoid duplicate urls for same products. Most of our customers either come direct via a search result in search engines, pay per click link and once on our site most of them use the search function rather than navigating using categories, breadcrumb.
We are using MSU 1.1.
Thanks...wanted to make sure I was understanding things correctly.
I agree that the single URL approach is probably better for search engines (and that of course is the stated point of MSEO); but if MSEO is going to include the category names in th URL, I think they should be the categories that reflect how you got to a product, or they shouldn't be included at all. Same goes for the breadcrumbs; there's no point in having them there, I think, if they're not an accurate reflection of how you found something (and doubly so if they're not going to agree with the URL).

Originally Posted by
BlessIsaacola
The only problem is if you reflect how a customer accesses a product now you're back to the original problem with duplicate url. If there are three ways to get to a product and you generate 3 urls for how the customer gets there it defeats the purpose.
I actually think Zen Cart is not treating product category right. A product should have a master category id (which they all do). No matter how a customer navigatives to a product, if a category is displayed it should always be the master category. This should be the behavior with or without MSU.
Currently when a product is linked, ZC uses the last linked category as the category in the breadcrumb (which may not be the category with the master id). This is not right.
I am not sure that most customers are comparing breadcrumb to the url.
For us we haven't seen any data to suggest this affects our sales or customers negatively so we try not dwell too much on it. MSU's way of treating url is an improvement from search engine and customer perspective (even though it's not perfect).
Yes, multiple URLs + accurate navigation path vs. single URL + incorrect navigation path...that's the conundrum here. ZC w/o MSEO chooses the former; MSEO chooses the latter. The latter is better for SEO, of course.
Of course, breadcrumbs are a different story, because they have nothing to do with multiple content. Breadcrumbs are generally used in two ways: to show the navigation path the visitor took to get to the current page; or to show all the "parent" pages (the ancestry, if you will) of the current page in your site hierarchy...which often is the same thing. But in this case of ZC and multiple product categories, these are not necessarily the same thing, and so which is the correct method?
The term "breadcrumbs" (as I understand it) originates from the story of Hansel and Gretel. I think for most users, like Hansel, breadcrumbs are most useful and intuitive when they show you how you got somewhere, rather than showing some arbitrary site hierarchy.
I agree that ZC isn't retrieving the categories correctly. When ZC doesn't know the category you want—because no category is defined in the URL (cPath)—then init_category_path.php runs zen_get_product_path() to determine and set it. zen_get_product_path() (in functions_categories.php) does a general query of the products_to_categories table to find all product/category associations. However, this query has a limit=1, so it only gets the first record it finds there. For products in only one category, this is fine; but if a product is in multiple categories, then the category it returns is essentially random. Which defeats the purpose of a "master" category. If a category is going to be determined automatically by ZenCart, it should be the master category for the product, not a random one.
This change to functions_categories.php fixes this (additions to original code in red):
Code:
// first, try to get master category id
$category_query = "select p2c.categories_id
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
where p.products_id = '" . (int)$products_id . "'
and p.products_status = '1'
and p.products_id = p2c.products_id and p.master_categories_id = p2c.categories_id";
// in case the master category is invalid, fall back on getting first product/category association instead
$category_query .= " union distinct select p2c.categories_id
from " . TABLE_PRODUCTS . " p, " . TABLE_PRODUCTS_TO_CATEGORIES . " p2c
where p.products_id = '" . (int)$products_id . "'
and p.products_status = '1'
and p.products_id = p2c.products_id limit 1";
With this change, at least the URLs and the breadcrumbs should now agree with MSEO installed.
Regarding whether customers actually pay any attention to the URL and/or breadcrumbs...most probably don't. Which is why I think that the breadcrumb should probably just be eliminated if it's not going to show the correct navigation path. Why waste the space to show it? On our site, it's even more moot because we're using the CSS click-show-hide menu, and (at least for categories with subcategories), it "remembers" which submenu (subcategory) you just came from and automatically opens it. So the breadcrumb is just redundant (if it matches the menu) or confusing (if it doesn't).
I just upgraded from MSEO 1.015 to 1.1 yesterday. Strange that the new version suddenly dropped the categories from all my URLs (as described in my previous post). It's not doing it on your store. Wonder what the difference is? Anybody else experiencing this? Which version of Zen are you running? We're on 1.37 still...wonder if that makes any difference.
Oh well...I think I actually prefer it without the category; as with the breadcrumbs, why include it if it doesn't necessarily match the navigation path? Seems better to just omit it and keep things clean, uncomplicated and unconfusing.
Bookmarks