Indexing Pages For E-commerce Site
Printed From: ProductCart E-Commerce Solutions
Category: ProductCart
Forum Name: Search Engine Optimization
Forum Description: Talk about ways to optimize your ProductCart store for search engines
URL: https://forum.productcart.com/forum_posts.asp?TID=5039
Printed Date: 23-November-2024 at 5:14pm Software Version: Web Wiz Forums 12.04 - http://www.webwizforums.com
Topic: Indexing Pages For E-commerce Site
Posted By: johnnyo11
Subject: Indexing Pages For E-commerce Site
Date Posted: 10-March-2012 at 7:25pm
I am not sure if this is in the realm of your expertise but I will ask any way...
My client babyblingstreet.com is using ProductCart for her site. She sells baby and toddler clothing. Now a lot of the links on her site contain the same the products. For instance: if you go to "What's new" you can find those same products in let's say her "Sale Items" link category.
From an SEO perspective this is bad and considered duplicate content. What happens is that the spiders index both of these categories. Then it sees the exact same products in both categories and as a result, does not know which page to give authority to. So what happens is that the authority is split between all categories that have the exact same products. This greatly decreases the chances for any category to get ranked high in search engines since the spider does not know which category to give authority to.
I was playing around with the idea of possibly doing a <meta name="robots" content="nofollow" /> but the way ProductCart built out their cart, there doesn't seem to be a way to isolate each category page. Usually, I can just do this in the <Head> section of each category page. However, this doesn't seem to be an option. Therefore, I went to the "inc_catsmenu.asp" page and tagged each link that I do not want indexed by search engines with rel=nofollow tag. So it would like something similar to this. <a href="http://www.example.com/" rel="nofollow">Link text</a> The only issue with this type of tag is that now when anyone links from their blog, social media site, website, etc... to one of these links that has the above tag, my client will not receive what is called the "link juice." Link juice is extremely important when it comes to SEO cause each unique IP address that links to a certain page on your site essentially is a vote of confidence that this page is good and worth ranking for on search engines. The reason this is a big issue is that I have no control over how a user browses the site. Even though I would not have the spiders index certain categories on her site, that still doesn't mean they can't go to these categories and then use the URL in these categories to create a link from their site, blog, social media site, etc.. which again, my client wouldn't get the link juice for if a person does this.
So with all this said, I want to know if anyone here has any experience indexing e-commerce sites that have the same products in multiple categories on their site and what they did to resolve this issue from an SEO standpoint.
I hope this makes sense. Thanks for your time.
|
Replies:
Posted By: Hamish
Date Posted: 10-March-2012 at 8:32pm
Hi, What you need is a dose of canonical url's : http://wiki.earlyimpact.com/productcart/seo-canonical" rel="nofollow - http://wiki.earlyimpact.com/productcart/seo-canonical By the way - Google do not punish or dilute page ranking due to duplicate content. http://www.spottedpanda.com/2011/seo-news/confirmed-seo-facts-matt-cutts/" rel="nofollow - http://www.spottedpanda.com/2011/seo-news/confirmed-seo-facts-matt-cutts/ Regarding external links to the site, adding the nofollow would surely do more harm than good as it would negate the value of any link to a page you have got nofollow on completely without adding any "link juice" to your preferred page(s)?!
------------- Editing ProductCart Code?
See http://wiki.earlyimpact.com/developers/editcode" rel="nofollow - WIKI Guidelines for Editing ProductCart's ASP Source Code
|
Posted By: johnnyo11
Date Posted: 10-March-2012 at 10:36pm
Right, I wasn't sure of you knowledge base when it came to SEO so I tried to be as general as possible. The real problem is that let's say my client sells a green dress and someone accesses it through the "baby and toddler dresses" category. And let's say this URL has 10 links pointing to it. Now, let's say someone else accesses this same green dress through the "What's new" category. And let's say this particular URL has 10 links pointing to it. Instead of having 20 links pointing to one URL about the green dress, I now have 10 URLs pointing to one URL and 10 pointing to another URL even though both URLs feature the exact same green dress with the exact same copy.
So now my issue here is that I need to figure out how to access every individual product page through ProductCart so that I can put a canonical tag on every instance of the green dress product page that so that I maximize all my incoming links. The way productCart is setup, I am unsure how to individually access every productpage through dreamweaver so that I can set a canonical tag on every product page that contains green dress. In this instance, I would want the canconical for the green dress to be the URL that is contained within "baby and toddler dresses" category because that particular keyword phrase receives the most search volume as oppose to a keyword "what's new".... Does that make sense?
|
Posted By: Greg Dinger
Date Posted: 11-March-2012 at 12:01pm
<<<how to access every individual product page through ProductCart so that I can put a canonical tag on every instance of the green dress product page >>>
You might recall my mentioning yesterday (by e-mail) that you have the wrong includes-metatags.asp in the application. I believe that you will see significant changes once this is resolved. The correct file should result in canonical URLs appearing in the site.
------------- GreyBeard Design Group
Certified ProductCart Developer
Web Design/Development/Hosting
http://tinyurl.com/5c8t4t" rel="nofollow - Add-Ons & Custom Code |
|
Posted By: Hamish
Date Posted: 11-March-2012 at 1:28pm
Hi Greg is right, the correct Canonical URL's do not have any reference to the category in the url, or the odd characters that appear at the end of your URL's.
------------- Editing ProductCart Code?
See http://wiki.earlyimpact.com/developers/editcode" rel="nofollow - WIKI Guidelines for Editing ProductCart's ASP Source Code
|
Posted By: Hamish
Date Posted: 11-March-2012 at 1:39pm
... That is the URL's that appear on the address bar for customers will contain an indicator of the category still, but the canonical URL should not (view source your product pages).
------------- Editing ProductCart Code?
See http://wiki.earlyimpact.com/developers/editcode" rel="nofollow - WIKI Guidelines for Editing ProductCart's ASP Source Code
|
Posted By: Guests
Date Posted: 13-March-2012 at 1:31am
I'd like to add some fuel to the fire here:
I've got clients, including those up to 4.5 SP 1 using PC to generate site maps to feed to Google, et. al that include the categorID in the URL when the canonical URL option does otherwise. The two features seem to be out of sync with each other. That is the site map creates a URL that is then trumped by the canonical URL on page. This results in significant numbers of pages being submitted, but not indexed. This issue has been on my list since at least 4.1 release.
|
Posted By: Hamish
Date Posted: 13-March-2012 at 4:47am
Hi Sean, I'm on my phone right now, but I believe there is a fix available for this. It seems like something that should be on the 'just in' page, if not please raise a support ticket.
------------- Editing ProductCart Code?
See http://wiki.earlyimpact.com/developers/editcode" rel="nofollow - WIKI Guidelines for Editing ProductCart's ASP Source Code
|
Posted By: whizzinpc
Date Posted: 19-March-2012 at 5:20pm
Only problem I see with all of this is the Canonical URL that is generated doesn't really exist. The only page that will link to the canonical URL is the sitemap. The rest of the site includes a category ID in the URL string. PC should ditch the Category ID from the URL and all will be perfect. Maybe have a default category in the Control Panel for each product...so the breadcrumbs will show up correctly because if you use a canonical URL of a product the breadcrumb that is generated is based on the first category that you added the product to. Also, in regards to Link Juice, if someone links to a product usually they will copy paste the URL.. so if the URL has the category id then you get a link to that page instead of the canonical version and 1 product can be in multiple categories so it gets all mixed up.
|
Posted By: Guests
Date Posted: 20-March-2012 at 12:32am
Sean@WMS wrote:
I'd like to add some fuel to the fire here:
I've got clients, including those up to 4.5 SP 1 using PC to generate site maps to feed to Google, et. al that include the categorID in the URL when the canonical URL option does otherwise. The two features seem to be out of sync with each other. That is the site map creates a URL that is then trumped by the canonical URL on page. This results in significant numbers of pages being submitted, but not indexed. This issue has been on my list since at least 4.1 release. |
I recant: canonical URLs in the XML site maps were addressed.
I crossed wires with it not having been addressed at the "store" map feature ... but then one might want product URLs there to be tagged with the category they were nested under there if they weren't looking at it as ANOTHER"site" map (in HTML rather than XML) for search engines to eat up.
Seems to me it would be ideal if a store owner could have the option of whether or not to use canonical URLs for product links on the "store" map.
That being said, the UL layout in the "store" map has some serious issues if one opts to include products on it AND has subcategories with-in the same parent category level. The problem is that in each nested UL, the sub-category pages are on the same hierarchical level as the products assigned to the category above. So, the organization gets really funky when one uses several nested categories AND has products assigned to various category levels. Here's live example: http://pc45a-otb-net.3060.wmsmerchantservices.com/productcart/pc/StoreMap.asp" rel="nofollow - http://pc45a-otb-net.3060.wmsmerchantservices.com/productcart/pc/StoreMap.asp
The layout gets a bit worse if one opts to use Heading tags.
It's an interesting issue to solve, but for now, I'd recommend store owners NOT opt to include products in their "store map" (web page), as opposed to their "site map" (XML document). This is more of a "logic" issue than something that may be an actual problem for real users.
|
Posted By: EarlJ
Date Posted: 20-March-2012 at 8:53pm
Sean, Can you point me to the where is the xml issue addressed? On the Just In page the Canonical URL - Removal of category ID fix hasn't been updated since it was released on 10/12/10 as far as I can see. These files generate an xml sitemap that includes the category number on the URL. Thanks, Earl
|
Posted By: Guests
Date Posted: 20-March-2012 at 10:08pm
whizzinpc wrote:
Only problem I see with all of this is the Canonical URL that is generated doesn't really exist. The only page that will link to the canonical URL is the sitemap. The rest of the site includes a category ID in the URL string. PC should ditch the Category ID from the URL and all will be perfect. Maybe have a default category in the Control Panel for each product...so the breadcrumbs will show up correctly because if you use a canonical URL of a product the breadcrumb that is generated is based on the first category that you added the product to. Also, in regards to Link Juice, if someone links to a product usually they will copy paste the URL.. so if the URL has the category id then you get a link to that page instead of the canonical version and 1 product can be in multiple categories so it gets all mixed up. |
It's complicated.
I'm thinking it would be nice if the the category ID were not included when a category is not the context. However, when the category is the context, the current execution makes sense.
I just finished a mod that uses the meta title tags on category and product pages to trump the otherwise generated URLs through a couple of functions and light edit on just a few PC pages ... but while doing that, saw that more thinking needs to be done on how tidy to be about URLs produced vs how much to just lean on canonical URL declarations.
Obviously, the canonical declarations are there for this very reason -- that dynamic applications will produce various URLs for the same page. However, being tidy about how and where the application generates these URLs in proper context would be elegant if the contextual situations could be handled relatively easily enough to do this.
For example: It makes sense to include the category ID on product URLs when browsing by category (pretty important for the way the application handles context here, actually) as well as on "previous/next" navigation on product pages. It might also make sense (at least as an option) to do so on the store map, if products are included on it.
It probably doesn't make sense (and would be better to use canonical URLs) on pages such as the home page, best sellers, featured products, new arrivals, recently reviewed & specials.
However, what about cross-selling on a product page? Could likely be that cross-sells are in the same category, but certainly can't be assumed. Use a canonical URL or include the category ID ... or, only include the category ID if the cross sell product is in the same category as the product page the user is on? Does it really matter here?
Handling the context for whether to show canonical URLs or include the category ID in the URL could be handled pretty easily by making the default link use a canonical URL and then enhancing the logic to detect whether the page calling for pcGenerateSeoLinks() is a category or product page and if so, then include the category ID. With the exception of maybe the store map generation, it would probably be better to use canonical URLs for product links everywhere else.
So, at the end of thinking this through, I agree with @whizzinpc -- to put it another way -- that it would be tidier not to use canonical URLs as just a stop-gap, but to generate them in most places by default, except for where it makes sense to include the category ID for the continuity of context in the user's browsing experience.
|
Posted By: Guests
Date Posted: 20-March-2012 at 10:51pm
EarlJ wrote:
Sean, Can you point me to the where is the xml issue addressed? On the Just In page the Canonical URL - Removal of category ID fix hasn't been updated since it was released on 10/12/10 as far as I can see. These files generate an xml sitemap that includes the category number on the URL. Thanks, Earl |
Hi Earl,
I'm actually not sure when/where this was addressed. I had it in my mind that it hadn't really been, but because of a recent project and this thread, I do see that on 4.5 SP 1, it's no longer an issue.
If you'd like fix it in your code, here's what you can do: in genGoogleSiteMapA.asp, look for something like
LOCALtmpBody=LOCALtmpBody & "|$|" & removeChars(pcArr(2,i) & "-" & pcArr(0,i) & "p" & pcArr(1,i)) & ".htm|-|"
|
If your site is generating links with category IDs in them, this line will include the array location pcArr(0,i)
Replace the line above with:
LOCALtmpBody=LOCALtmpBody & "|$|" & removeChars(pcArr(2,i) & "-" & "p" & pcArr(1,i)) & ".htm|-|"
|
HOWEVER, I also discovered another issue here on the recent project I mentioned earlier: the search query creating this record set array will return duplicate product instances when products are assigned to multiple categories. Not elegant, and is probably one of the major reasons I get reports that Google doesn't accept all of the pages fed to it through the XML site map.
To address this, the db query needs to be changed as well as the code above.
Here's the query:
query="SELECT DISTINCT categories_products.idcategory,categories_products.idproduct,products.description FROM categories INNER JOIN (categories_products INNER JOIN products ON categories_products.idproduct=products.idproduct) ON (categories.idcategory=categories_products.idcategory AND categories.iBTOHide<>1" & ExcWCatsStr & " AND (NOT (categories.idcategory IN " & tmpCatList & "))) WHERE products.active = -1" & ExcNFSPrds & " ORDER BY categories_products.idcategory ASC,categories_products.idproduct ASC;"
|
That will always return all combinations of category ID & product ID in the look-up table, categories_products, and thus the duplicates.
As there's no need for the category ID anymore, nor to reference any associations between products and categories here anymore, this query can be replaced with the following:
query="SELECT products.description,products.idproduct FROM products WHERE products.active = -1" & ExcNFSPrds & " ORDER BY products.idproduct ASC;"
|
Changing the query here, though, means that the record set array changes also, so that the patch above for the canonical URLs would need to be changed to:
LOCALtmpBody=LOCALtmpBody & "|$|" & removeChars(pcArr(0,i) & "-" & "p" & pcArr(1,i)) & ".htm|-|"
|
|
Posted By: EarlJ
Date Posted: 23-March-2012 at 9:47pm
Wow, thanks for the detailed response and fix.
|
Posted By: whizzinpc
Date Posted: 29-March-2012 at 12:08pm
Thanks so much for that code Sean! I've been using excel to remove the duplicates all this time. Works perfectly now.
|
Posted By: Guests
Date Posted: 30-March-2012 at 12:36am
Glad to be helpful.
I still think there are some unresolved issues still here vis a vis canonical URL in context, and I'm pursuing that issue.
|
|