Jump to content



Latest News: (loading..)

- - - - -

Google Duplicate Content Manager version 1.0a


  • Please log in to reply
75 replies to this topic

#21   john2323

john2323
  • Members
  • 69 posts
  • Real Name:Jamie

Posted 08 September 2008 - 07:59 AM

View PostFWR Media, on Sep 8 2008, 12:54 AM, said:

I'd rather you didn't post at all after this experience.

Are you a help vampire



You requested a feature, that is fine and it is noted. What you don't seem able to accept is that I am not willing to do something immediately specifically for john2323.


You could have just said that from the begging?  This is a support forum and I was asking for help??  I don't get the problem your having?  If you don't want me to post thats fine.  If I get it changed I will post another contribution then.  Thats ok with me to.  Just trying to help and make suggestions its weird how your getting defensive about it.

Edited by john2323, 08 September 2008 - 08:01 AM.


#22   sLaV-

sLaV-
  • Members
  • 861 posts
  • Real Name:dÒ¸Ób
  • Gender:Male
  • Location:Melbourne, Australia

Posted 08 September 2008 - 12:40 PM

Hi Robert,

Great of you to make a contribution for this, nice work :D

Just wanted to ask on your opinion on whether I should use this contribution or your solution in another thread (which basically flagged the tags "sort", "page", etc and put a <meta name="robots" content="noindex, follow"> tag if these tags were detected) which I was following ... and must say has been working ... but would this contribution do a better job in your opinion or should I stick to the solution you had previously?


Thanks again

Edited by sLaV-, 08 September 2008 - 12:41 PM.


#23   ollyno1uk2

ollyno1uk2
  • Members
  • 325 posts
  • Real Name:olly
  • Location:UK

Posted 08 September 2008 - 01:22 PM

FWR - I think this contribution is exactly what we need and once again you have managed to resolve potential weaknesses of OSc - so thanks for all your hard work.

I am wondering if it would be an idea to have the option to change the names of what is being put in the header - rather than "page_2" I would like it it read "Page 2" and maybe have the option to rename the sort to a more relevant name.

Perhaps there is a simple way of doing this or perhaps you may think it's pointless to do, either way, it seems like a great contrib!

#24   FWR Media

FWR Media
  • Community Sponsor
  • 6,836 posts
  • Real Name:Robert Fisher
  • Gender:Male
  • Location:Stowmarket - Suffolk - UK

Posted 08 September 2008 - 01:43 PM

View Postollyno1uk2, on Sep 8 2008, 02:22 PM, said:

FWR - I think this contribution is exactly what we need and once again you have managed to resolve potential weaknesses of OSc - so thanks for all your hard work.

I am wondering if it would be an idea to have the option to change the names of what is being put in the header - rather than "page_2" I would like it it read "Page 2" and maybe have the option to rename the sort to a more relevant name.

Perhaps there is a simple way of doing this or perhaps you may think it's pointless to do, either way, it seems like a great contrib!

Beautifying the tags is something I have thought about (Jan called the existing ones "butt ugly") and I may well offer some method to do this in a newer version.

In the mean time the following line sets the look of the title tag ..

$replace[]   = '<title>' . str_replace('-', ' | ', $this->addedMeta);

Changing it to ..

$replace[]   = '<title>' . str_replace(array('-', '_'), ' ', ucfirst($this->addedMeta));

May help you in the short term.

Edited by FWR Media, 08 September 2008 - 01:44 PM.


#25   ollyno1uk2

ollyno1uk2
  • Members
  • 325 posts
  • Real Name:olly
  • Location:UK

Posted 08 September 2008 - 03:05 PM

Thanks for the quick reply - I assume this way it would remove the pipe as well which I think does clearly mark out the  different sections

Being a quite new to php, I read the above as replacing any '-' or '_' with a ' ' - so this method does away with the pipe separator?

#26   marcinmf

marcinmf
  • Members
  • 37 posts
  • Real Name:Martin Filipowicz
  • Gender:Male
  • Location:New York

Posted 08 September 2008 - 04:06 PM

I would say it is recommended to have some kind of sitemap installed with this contribution so crawlers can index all of your main categories and product pages.

In my case my URLs have some additional information for tool tip functions so actually it will be impossible for regular crawler to find normal page.
All my products url’s look like this:

18x13-mm-oval-golden-citrine-aaa-grade-p-26399.html?prodID=26399

where prodID=26399 is for tool tip and recently I found Google indexed over 3000 duplicated pages because of my tool tip so I hope this contrib will be very helpful.

Thanks a lot for your work! I made a lot of changes to my own store and I know how much effort it takes to create a contribution that will work for everybody.

I think the concern will be duplicated content and not in only my case.

For example page:
My-categoty-c-21.html
Will have the same content as:
My-categoty-c-21.html?page=1

Solution for that will be more difficult because no one know (to the best of my knowledge) how Google finds duplicated content.
If adding one paragraph of text would make new content we could add text like “You are on page_xx of category_xxx and searching by_xxx, let us know how we can help…..”

Or add some random text that will change every time you will reload page.
Does anyone have any ideas or different thoughts about this?

Edited by marcinmf, 08 September 2008 - 04:12 PM.


#27   John Wisdom

John Wisdom
  • Members
  • 54 posts
  • Real Name:John Wisdom

Posted 09 September 2008 - 03:14 AM

Here's some food for thought quoted form Google on robots.txt

"To block access to all URLs that include a question mark (?), you could use the following entry:"

User-agent: *
Disallow: /*?

Unfortunately, I only recently found this as I had a lot of duplicates too but since I've added that in they are dropping daily.
I hope I don't offend anyone by posting this here but it might be an easy answer for some.
John Wisdom

#28   FWR Media

FWR Media
  • Community Sponsor
  • 6,836 posts
  • Real Name:Robert Fisher
  • Gender:Male
  • Location:Stowmarket - Suffolk - UK

Posted 09 September 2008 - 06:12 AM

View PostJohn Wisdom, on Sep 9 2008, 04:14 AM, said:

Here's some food for thought quoted form Google on robots.txt

"To block access to all URLs that include a question mark (?), you could use the following entry:"

User-agent: *
Disallow: /*?

Unfortunately, I only recently found this as I had a lot of duplicates too but since I've added that in they are dropping daily.
I hope I don't offend anyone by posting this here but it might be an easy answer for some.

You would block all dynamic urls basically not a good idea at all.

#29   ollyno1uk2

ollyno1uk2
  • Members
  • 325 posts
  • Real Name:olly
  • Location:UK

Posted 09 September 2008 - 07:50 AM

Yes I considered this and you would end up blocking page 2, page 3 etc etc which would be a disaster.

#30   Brian-Bear

Brian-Bear
  • Members
  • 202 posts
  • Real Name:Brian
  • Gender:Male
  • Location:Northern Ireland

Posted 09 September 2008 - 09:04 AM

one quick question. will this work ok with STS and header tag controller?

#31   FWR Media

FWR Media
  • Community Sponsor
  • 6,836 posts
  • Real Name:Robert Fisher
  • Gender:Male
  • Location:Stowmarket - Suffolk - UK

Posted 09 September 2008 - 10:23 AM

View PostBrian-Bear, on Sep 9 2008, 10:04 AM, said:

one quick question. will this work ok with STS and header tag controller?

not got a clue about STS never used it (and never will) but it would just be a case of finding out what prints out the meta.

Re: Header tags and header tags SEO I have included the relevant code in the instructions but it is untested.

#32   marcinmf

marcinmf
  • Members
  • 37 posts
  • Real Name:Martin Filipowicz
  • Gender:Male
  • Location:New York

Posted 09 September 2008 - 04:01 PM

View PostFWR Media, on Sep 9 2008, 04:23 AM, said:

not got a clue about STS never used it (and never will) but it would just be a case of finding out what prints out the meta.

Re: Header tags and header tags SEO I have included the relevant code in the instructions but it is untested.

I use template system and there are no problems.
It would depend on the version and contribution but most likely you will do modification in: /templates/templatename/main_page.tpl.php

#33   webbydeb

webbydeb
  • Members
  • 674 posts
  • Real Name:Debora
  • Gender:Female
  • Location:Denver, CO

Posted 10 September 2008 - 03:20 PM

I just installed this, and it's working like a charm.  Thanks so much Robert!  It should help immensely with my dups.
Debora
Breaking code....  one website at a time.
Vibrators:  like cute little puppies without the puppy breath.  Who can't like a vibrator?
Life Tip: Taking yourself too seriously? Put on a penis hat and look in the mirror every 5 minutes.  That should fix it.
"Finally found the ball gag for those damn voices. Now to pull out the whip....
" - Me
Member of the CODE BREAKERS CLUB - WE RULE!

#34   discxpress

discxpress
  • Members
  • 301 posts
  • Real Name:Lecarl Butler
  • Gender:Male

Posted 15 September 2008 - 08:38 AM

Has anyone seen any success with this contribution? I'm wondering if this will help with page ranking and thus help avoid being sandboxed by Google. I know when you're in the sandbox your organic results visitors will suffer. This sounds like a great solution to SEO headaches. What about performance in organic search results? Any improvements? Thanks for your comments.

#35   roxanacaz

roxanacaz
  • Members
  • 545 posts
  • Real Name:Roxana
  • Gender:Female
  • Location:Romania, Bucharest

Posted 17 September 2008 - 04:08 PM

Hi. I installed this contrib, it looks great, it works I think  - the number of duplicate pages in google webmasters tools actually dropped a bit, but... the ite loads much slower. Look here: SITE. What could be wrong? Same thing happened a while ago when I added some code .htaccess and it got back to normal after removing it. I have no clue what could be the problem now, but surely it started immediatly after installing Google Duplicate...

Thank you.
My Tiny Contribution - Romanian Buttons

#36   FWR Media

FWR Media
  • Community Sponsor
  • 6,836 posts
  • Real Name:Robert Fisher
  • Gender:Male
  • Location:Stowmarket - Suffolk - UK

Posted 17 September 2008 - 05:44 PM

View Postroxanacaz, on Sep 17 2008, 05:08 PM, said:

Hi. I installed this contrib, it looks great, it works I think  - the number of duplicate pages in google webmasters tools actually dropped a bit, but... the ite loads much slower. Look here: SITE. What could be wrong? Same thing happened a while ago when I added some code .htaccess and it got back to normal after removing it. I have no clue what could be the problem now, but surely it started immediatly after installing Google Duplicate...

Thank you.

This is not going to effect your site loading speed. Turn it off in the file includes/classes/preventDuplicates.php
var $turnServiceOn = true;

Set to

var $turnServiceOn = false;


If your problems remain (and they will) then it is not this contribution causing your issues..

#37   roxanacaz

roxanacaz
  • Members
  • 545 posts
  • Real Name:Roxana
  • Gender:Female
  • Location:Romania, Bucharest

Posted 17 September 2008 - 07:29 PM

Thank you for the fast reply. Indeed, turning it off doesn't help. I'll try unistalling and see what happens, just to be sure, but probably you're right.

And just wondering if you may have an idea... where can I ask for help to fix this loading problem? Just to find out what's the problem at least. Thanks.

Edited by roxanacaz, 17 September 2008 - 07:37 PM.

My Tiny Contribution - Romanian Buttons

#38   discxpress

discxpress
  • Members
  • 301 posts
  • Real Name:Lecarl Butler
  • Gender:Male

Posted 21 September 2008 - 12:11 PM

First, I would like to say great work! I know this will help with our duplicate content issues.

I have two requests. I will wait on an update.

(1)  Whenever you have time, could you adjust the code so the page numbers could appear after the title?

ALSO

(2)  Take a look at the All Products contribution, the duplicate content issue is partially solved there.

What I mean is there are A through Z links that are at the top of allprods.php. All products group products alphabetically.

Here is the code for allprods.php:
<?php 
/* 
 $Id: allprods.php,v 4.4 2006/09/18 20:28:47 Mgx Co. Exp $


 All Products v4.3 MS 2.2 with Images http://www.oscommerce.com/community/contributions,1501

 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com

 Copyright (c) 2004 osCommerce

 Released under the GNU General Public License
 
*/ 

 require('includes/application_top.php'); 
 include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_ALLPRODS); 

 $breadcrumb->add(HEADING_TITLE, tep_href_link(FILENAME_ALLPRODS, '', 'NONSSL')); 

$firstletter=$HTTP_GET_VARS['fl'];
 if (!$HTTP_GET_VARS['page']){
  $where="where pd.products_name like '$firstletter%' AND p.products_status='1' ";
 }else {
  $where="where pd.products_name like '$firstletter%' AND p.products_status='1' ";
 } 


?> 
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html <?php echo HTML_PARAMS; ?>> 
<head>
<?php
	  if (!isset($lng) || (isset($lng) && !is_object($lng))) {
		include(DIR_WS_CLASSES . 'language.php');
		$lng = new language;
	  }

	  reset($lng->catalog_languages);
	  while (list($key, $value) = each($lng->catalog_languages)) {
	?>
	<link rel="alternate" type="application/rss+xml" title="<?php echo STORE_NAME . ' - ' . BOX_INFORMATION_RSS; ?>" href="<?php echo FILENAME_RSS, '?language=' . $key; ?>">
	<?php
	  }
	?> 
<?php
// BOF: WebMakers.com Changed: Header Tag Controller v2.55 
// Replaced by header_tags.php 
if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) {
ob_start(); 
  require(DIR_WS_INCLUDES . 'header_tags.php');
  $preventDuplicates->checkTarget(ob_get_clean());
echo $preventDuplicates->finalMeta . "\n"; 
} else { 
?> 
  <title><?php echo TITLE ?></title> 
<?php 
} 
// EOF: WebMakers.com Changed: Header Tag Controller v1.0
?> 

<base href="<?php echo (getenv('HTTPS') == 'on' ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>"> 
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head> 
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0"> 
<!-- header //--> 
<?php require(DIR_WS_INCLUDES . 'header.php'); ?> 

<!-- header_eof //--> 

<!-- body //--> 
<table border="0" width="100%" cellspacing="3" cellpadding="3"> 
 <tr> 
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2"> 
<td class="col_left">
<!-- left_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_left.php'); ?>
<!-- left_navigation_eof //-->
	</td> 
   </table></td> 
<!-- body_text //--> 
   <td width="100%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="0">
	 <tr>
	   <td><table border="0" width="100%" cellspacing="0" cellpadding="0">
		 <tr>
		  <?php if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) {?> 
		   <td><h1><?php echo HEADING_TITLE; ?></h1></td>
		  <?php } else { ?>		   
		   <td class="pageHeading"><?php echo HEADING_TITLE; ?></td>
		  <?php } ?>
		   <td class="pageHeading" align="right"><?php echo tep_image(DIR_WS_IMAGES . 'table_background_products_new.gif', HEADING_TITLE, HEADING_IMAGE_WIDTH, HEADING_IMAGE_HEIGHT); ?></td>
		 </tr>
		 <tr>
		   <td class="main"><?php echo HEADING_SUB_TEXT; ?></td>
		 </tr>		   
		 <tr>
		  <td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
		 </tr>
	   </table></td>
	 </tr>
	 <tr>
	   <td align="center" class="smallText"><?php $firstletter_nav=
		'<a href="' . tep_href_link("allprods.php",  'fl=A', 'NONSSL') . '"> A |</A>' . 
		'<a href="' . tep_href_link("allprods.php",  'fl=B', 'NONSSL') . '"> B |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=C', 'NONSSL') . '"> C |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=D', 'NONSSL') . '"> D |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=E', 'NONSSL') . '"> E |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=F', 'NONSSL') . '"> F |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=G', 'NONSSL') . '"> G |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=H', 'NONSSL') . '"> H |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=I', 'NONSSL') . '"> I |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=J', 'NONSSL') . '"> J |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=K', 'NONSSL') . '"> K |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=L', 'NONSSL') . '"> L |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=M', 'NONSSL') . '"> M |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=N', 'NONSSL') . '"> N |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=O', 'NONSSL') . '"> O |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=P', 'NONSSL') . '"> P |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=Q', 'NONSSL') . '"> Q |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=R', 'NONSSL') . '"> R |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=S', 'NONSSL') . '"> S |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=T', 'NONSSL') . '"> T |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=U', 'NONSSL') . '"> U |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=V', 'NONSSL') . '"> V |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=W', 'NONSSL') . '"> W |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=X', 'NONSSL') . '"> X |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=Y', 'NONSSL') . '"> Y |</A>' .
		'<a href="' . tep_href_link("allprods.php",  'fl=Z', 'NONSSL') . '"> Z</A>&nbsp;&nbsp;'   .
		'<a href="' . tep_href_link("allprods.php",  '',	 'NONSSL') . '"> FULL</A>';
		
		echo $firstletter_nav; ?></td>
	 </tr>
	<tr>
	<td><?php echo tep_draw_separator('pixel_trans.gif', '100%', '10'); ?></td>
	</tr>
	 <tr>
	   <td>
<?php
 // create column list
 $define_list = array('PRODUCT_LIST_MODEL' => PRODUCT_LIST_MODEL,
					  'PRODUCT_LIST_NAME' => PRODUCT_LIST_NAME,
					  'PRODUCT_LIST_MANUFACTURER' => PRODUCT_LIST_MANUFACTURER, 
					  'PRODUCT_LIST_PRICE' => PRODUCT_LIST_PRICE,
					  'PRODUCT_LIST_QUANTITY' => PRODUCT_LIST_QUANTITY,
					  'PRODUCT_LIST_WEIGHT' => PRODUCT_LIST_WEIGHT,
					  'PRODUCT_LIST_IMAGE' => PRODUCT_LIST_IMAGE,
					  'PRODUCT_LIST_BUY_NOW' => PRODUCT_LIST_BUY_NOW);
 asort($define_list);

 $column_list = array();
 reset($define_list);
 while (list($column, $value) = each($define_list)) {
   if ($value) $column_list[] = $column; 
 }

 $select_column_list = '';

 for ($col=0, $n=sizeof($column_list); $col<$n; $col++) {
   if ( ($column_list[$col] == 'PRODUCT_LIST_BUY_NOW') || ($column_list[$col] == 'PRODUCT_LIST_NAME') || ($column_list[$col] == 'PRODUCT_LIST_PRICE') ) {
	 continue;
   }
 }
 
// listing all products
$listing_sql = "select p.products_id, p.products_model, pd.products_name, pd.products_description, p.products_image, p.products_price, p.products_tax_class_id, IF(s.status, s.specials_new_products_price, NULL) as specials_new_products_price, p.products_date_added, m.manufacturers_name from " . TABLE_PRODUCTS . " p left join " . TABLE_MANUFACTURERS . " m on p.manufacturers_id = m.manufacturers_id left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id and pd.language_id = '" . $languages_id . "' left join " . TABLE_SPECIALS . " s on p.products_id = s.products_id  $where order by pd.products_name";

if (ALL_PRODUCTS_DISPLAY_MODE == 'true')
 include(DIR_WS_MODULES . 'product_listing.php'); //display in standard format
else
 include(DIR_WS_MODULES . 'allprods.php');
?>
	   </td>
	 </tr>
   </table></td>
<!-- body_text_eof //-->
   <td width="<?php echo BOX_WIDTH; ?>" valign="top"><table border="0" width="<?php echo BOX_WIDTH; ?>" cellspacing="0" cellpadding="2">
<!-- right_navigation //-->
<?php require(DIR_WS_INCLUDES . 'column_right.php'); ?>
<!-- right_navigation_eof //-->
   </table></td>
 </tr>
</table>
<!-- body_eof //-->

<!-- footer //-->
<?php require(DIR_WS_INCLUDES . 'footer.php'); ?>
<!-- footer_eof //-->
<br>
</body>
</html>
<?php require(DIR_WS_INCLUDES . 'application_bottom.php'); ?>

Thanks for reading.

#39   jody00

jody00
  • Members
  • 35 posts
  • Real Name:Jody
  • Location:Manchester, UK

Posted 28 September 2008 - 03:26 PM

Any idea how to make work with easy meta tags contribution, do i need to add to the easy_meta_tag.php file or just the individual pages? thanks

#40   FWR Media

FWR Media
  • Community Sponsor
  • 6,836 posts
  • Real Name:Robert Fisher
  • Gender:Male
  • Location:Stowmarket - Suffolk - UK

Posted 28 September 2008 - 03:43 PM

View Postjody00, on Sep 28 2008, 04:26 PM, said:

Any idea how to make work with easy meta tags contribution, do i need to add to the easy_meta_tag.php file or just the individual pages? thanks

In the individual pages you should just need to make the changes as per the instructions around the code that generates the meta, I've never even seen the code for easy meta tags however.