News:

You may pay someone to create your store, or you visit our seminar and become a professional yourself with the silver certification

Main Menu

Suchmaschienen BUG!!

Started by DEVflorian, January 13, 2013, 13:48:38 PM

Previous topic - Next topic

jjk

Quote from: P2 Peter on January 19, 2013, 16:31:25 PM
@jjk ... also when you're not logged in to your google account?
Yes  :)
Doesn't seem to make a difference for me whether I'm logged in at Google or not. Maybe because my Google account is assigned to a different domain.
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

franzpeter

@jjk,

I agree with P2 Peter. If your google account is linked to your page, google shows different, in my case, better results. So without logged in to google account while doing a search, the results are not so good.

I think you misunderstand the purpose of canonical url. A canonical url is good if products are linked for example from a module or the VM start page to show crawlers the right way to reach a product. Canonical urls are not for showing crawlers the right way for every product, because you can reach it from everywhere by VM default functions. A large amount of canonical url may tell a crawler that you use a lot of misleading links (link farming). It is easily visible because those misleading links use the same meta information, the same name, the same sku a.s.o.. I would say that VM 2 does actually produces 80 % of the links in a wrong way and tries to hide something what is called link farming by adding canonical url. We do not need those 80% of those canonical url. Telling crawlers that a misleading link is wrong with an error page or, like prestashop, showing the page with the correct link is the better way.

jjk

Google definition of canonical url:
http://support.google.com/webmasters/bin/answer.py?hl=en&answer=139394

One problem with many website crawlers probably is, that they follow all links but fail to detect when they enter a loop. If you have a link from product A to product B and also a link from product B to product A, you have an infinite loop. If I understand that correctly, crawlers may generate a lot of wrong links (like described in the first post), but the canonical url for them remains the same. If you change i.e. the category name in your url to 'xxx', VM2 will still display it (I agree that it shouldn't), but the canonical url in the page source code doesn't change.

BTW - since I use generic child variants, which share the description with the parent product, Google recommends me to use differnt meta tag descriptions for the child products, but it certainly doesn't complain about duplicate content, because that NOT duplicate content according to the definition of duplicate content.
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

Peter Pillen

#18
okay jjk ... but read carefully!

QuoteTo specify a canonical link to the page http://www.example.com/product.php?item=swedish-fish, create a <link> element as follows:

<link rel="canonical" href="http://www.example.com/product.php?item=swedish-fish"/>

Copy this link into the <head> section of all non-canonical versions of the page, such as http://www.example.com/product.php?item=swedish-fish&sort=price.

the fact is that VM does not use canonical tag correctly. It shows a canonical tag on every product page ... pointing it to the page itself. This is not proper use of the canonical tag as described by Google, so it gets ignored and even worse... in Bing your page could get rejected.

Quote(1) Google doesn't care if you use the canonical tag on hundreds or thousands of pages, where Bing says they will trust the tag less if you do.

(2) Google doesn't care if you link a canonical tag to the same page (i.e. a redirect back to the redirect), but Bing does and says don't do it.

how is this canonical coded? I'm willing to have a look at it.

franzpeter

#19
@jjk,
first of all, Google is not the only web crawler.
As I can read in the provided link on the Google page they write:
Add a rel="canonical" link to the <head> section of the non-canonical version of each HTML page.

Go to a VM 2 product details page and take a look into the source code. I think the product details page for a specific product is the so called canonical url. So why does VM 2 write a rel=canonical into the head of that page too. As far as I understand what they write on the google page the rel="canonical" should be in the head of every page, which provides a link to the 'canonical page' except of the 'canonical page' itself. VM 2 does write that on every of those pages, even the page, which is the 'canonical page'.

So I only can say that VM 2 from the Google point of view produces link farming by exploiting the canonical element for every page it produces. So we have three misconceptions:
1. allowing to access products and categories from everywhere by just adding the final part of the link to any other link from startpage on
2. abusing the canonical tag for link farming by giving every page a canonical link - even the page with the final url, where the canonical link should direct.
3. the product sorting does not work. It does not work in the category page and it does not work in the product detail pages. Clicking on next or previous does not go to the next or previous product. And if you configure from the BE, that it should sort by product_sku as default sorting criteria, the previous/next links do disappear. It does not matter to activate or deactivate product navigation on the detail page, that only works if the default sorting method is product_name. Else, it disappears. There is no case method implemented for sorting in the default sort order definition, not for category and not for product.

And for all those who think it is a template or theme issue. I can reproduce all those bugs with the default Joomla templates and the default VM 2 theme with VM 2.0.18a on localhost or live server.


jjk

#20
Quote from: franzpeter on January 19, 2013, 18:50:45 PM
@jjk,
first of all, Google is not the only web crawler.
Yes, but here in Germany it has a market share of approximately 90 percent. My own statistics (for my old shop) show that 85 of the search engine traffic are via Google. The only other relevant search engine here is Bing. Yahoo is being fed by Bing for quite a while already.

QuoteAs I can read in the provided link on the Google page they write:
Add a rel="canonical" link to the <head> section of the non-canonical version of each HTML page.

Yes, but you missed the second option:
"Indicate the canonical version of a URL by responding with the Link rel="canonical" HTTP header."

I think this is what VM2 uses. At least with my VM2 shop this works perfectly. Google indexed ONLY those VM2 products (pages) with exactly this type of specifying the canonical url:
<link href="http://mydomain/de/categoryname/productname-detail" rel="canonical" />
All other possible urls (pages) are NOT indexed. So I just suppose it's ok.

Anyway,  the devs are aware of the problem and if they are able to locate the problem(s) and find a solution they will take care of this. However, since they are basically just a two person team, you can not always expect an immediate fix. There might be more important tasks at present. As far as I know, nobody got unlisted or suffered from a deep fall in ranking in the search engine results - looks more like at least Google likes VM2 content.
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

franzpeter

#21
@jjk,

no, I did not miss
Indicate the canonical version of a URL by responding with the Link rel="canonical" HTTP header

Google is clear in what they say:
You can specify a canonical URL in two ways:
Add a rel="canonical" link to the <head> section of the non-canonical version of each HTML page.

or
Indicate the canonical version of a URL by responding with the Link rel="canonical" HTTP header.

So one way is to add the canonical to not canonical url. The second way is to indicate, which page is the canonical version.

It does not say: add canonical to all pages. They use by saying there are two ways an or and not an and!

So the correct way would be to add a canonical link to all non canonical url or add only a canonical link to the canonical page.
VM 2 adds canonical everywhere, even to the canonical url.

The problem is in components>com_virtuemart>views>productdetails/view.html.php

   if ($format == 'html')
  {
       // Set Canonic link
      $document->addHeadLink(JRoute::_($product->canonical, true, -1), 'canonical', 'rel', '');
   }

   $uri = JURI::getInstance();
   //$pathway->addItem(JText::_('COM_VIRTUEMART_PRODUCT_DETAILS'), $uri->toString(array('path', 'query', 'fragment')));
   $pathway->addItem(strip_tags($product->product_name));

Instead of comparing, whether the url is already a canonical url or not it produces by default for everything a canonical url. If VM 2 would compare the url and the canonical url about equality and saying: if both are equal do not set the canonical tag, if both are unequal do set the canonical tag it sets it always.

jjk

#22
Well, it seems like the difference between your and my opinion is that I do want a canonical url for each of my links to a product page. If I have one product assigned to two categories, I do this on purpose, because both different category topics match a product property and give the customer a better chance to find it. The same applies to search engine listings. If a customer searches i.e. for 'category name 2', the search engines will not display it if you have only your canonical url for 'category name 1' being indexed (If you use canonical urls, Google usually only indexes your canonical urls and ommits all others). VM2 does not generate any 'bogus' canonical urls i.e for category names which don't exist, but which you can manually type into the browser to access the product.

However, if you place a product in 50 different categories, that is ihmo more a webdesign bug similar to keyword stuffing.
Non-English Shops: Are your language files up to date?
http://virtuemart.net/community/translations

DEVflorian

That help for small pages with about 100 artikles an 3 categories.
Komponente
AceSEF - Joomla SEO Suite  for  39 $
http://www.joomace.net/joomla-extensions/acesef-joomla-seo-sef-urls
and
Plugin
VirtueMart AceSEF for 15 $
http://www.joomace.net/downloads/acesef/extensions/virtuemart-acesef
But it has the same problem, and i don´t know if google is statisfied with this solution
For our homepage is it not possibly to mange so a lot of pages.
If´e test it an the generator for create SEF pages is overloaded and fails.
Also it show in all categories
But it ist possible to manage all url´s manually. NO WAY FOR LARGE PAGES

I Think it ist mor as important for the virtuemart team to bring a true
connancial solution or to revise the rework the vm core of this problem

Milbo

#24
Quote from: franzpeter on January 20, 2013, 09:52:41 AM
It does not say: add canonical to all pages. They use by saying there are two ways an or and not an and!

Yes, it is OR written by coders, not XOR, what you understand. When I ask you, do you want nutella or ham, and you say yes, it is for a coder, correct! Cause OR is not XOR and in the language we use the "or" often as an "either, or", which is a xor.

First I cannot reproduce the sorting bug, which belongs btw completly not to this thread. Be organized, do not mix topics.

Second, a crawler is only checking the links which are THERE, not any wildcard! So I do not understand why it is a problem if you have endless urls to access one product. That is not a problem. There is only a problem, if we display more than one valid link to a product. and even if we do, we set the canonical.

So the general problem for me here is that this whole thread is much too unprecisely. It is like talking about to optimise a tempomat keeping 70mph+-2, but we can only measure the speed with +-5.

Should I fix your bug, please support the VirtueMart project and become a member
______________________________________
Extensions approved by the core team: http://extensions.virtuemart.net/

franzpeter

Hello Milbo,
thanks for answering. I did find out what could lead to those incorrect paths, which VM accepts and shows as valid paths. It has something to do with VM categories in Joomla menus. Say I have a category structure in VM, which I do want to leave untouched.
An example: There are categories like:
Coffee Machines, Dishes, Kitchenware, Fridges, vaccum cleaners, washing machines, tumblers.
Say I put those categories in a Joomla top menu. So maybe I do not want such a big top menu. So I produce a top menu with coffee machines and kitchenware and laundry machine. I can create an additional menu but do not publish it with those missing categories like vacuum cleaner, washing machines, tumbler and dishes. I would not like to have sef urls like for example kitchenware/dishes and laundry machine/tumbler, laundry machine/washing machines. For short urls I would prefer to keep the root categories as root categories, no matter what I put into the top menu. A way to do so is to create alias links into the top menu which link to the not published other menu, where the true links reside. Using that way would produce a link like /tumber or washing machines instead of laundry machine/washing machines or laundry machine/tumbler. So those categories still remain (for SEF) root categories, even if they reside in top menu as sub categories of laundry machine.
Another example would be if selling printers: color laser, mono laser, inkjet, solid ink, multifunctional devices. So you can create for example a top menu item like printer and put those color laser, mono laser, inkjet, solid ink, multifunctional devices as sub categories into that menu item. But printers need consumables. So there is paper, ink, toner a.s.o. In the VM 2 category structure those items reside in the root category consumables. If you would like to keep those sef urls together with your Printer top menu item, you cannot simply add consumables as subcategory. You would create link structures like /printer/consumables/ink for example. To prevent that, you can create a second menu in Joomla, which is not published and serves only for sef purposes. You can built there the original category structure for the root category consumables and add just an alias to the Joomla top menu (Consumables for example). Doing so allows to call that top menu subcategory with the sef url /consumables/ink or consumables/toner. Without the second menu and without an alias it would display as: printer/consumables/ink for example.
But doing so produces problems with VM 2 SEF. It seems that VM 2 cannot identify a menu alias entry in the correct way. It works somehow but produces reachable links, which should not be reachable. You can call those categories with consumables or with printer/consumables, both work. VM2 does refer to the alias and does refer too to the hidden menu link.

So for now the best thing to prevent those problems is to not use alias links with VM 2 in a Joomla menu.