Jump to content
FWR Media

KissMT Dynamic SEO Meta & Canonical Header Tags

Recommended Posts

FYI, longest dutch stopword lists i could find. longer than the one on ranks.nl that is shown in multiple places

[stopwords]
stopword[] = "de"
stopword[] = "en"
stopword[] = "van"
stopword[] = "ik"
stopword[] = "te"
stopword[] = "dat"
stopword[] = "die"
stopword[] = "in"
stopword[] = "een"
stopword[] = "hij"
stopword[] = "het"
stopword[] = "niet"
stopword[] = "zijn"
stopword[] = "is"
stopword[] = "was"
stopword[] = "op"
stopword[] = "aan"
stopword[] = "met"
stopword[] = "als"
stopword[] = "voor"
stopword[] = "had"
stopword[] = "er"
stopword[] = "maar"
stopword[] = "om"
stopword[] = "hem"
stopword[] = "dan"
stopword[] = "zou"
stopword[] = "of"
stopword[] = "wat"
stopword[] = "mijn"
stopword[] = "men"
stopword[] = "dit"
stopword[] = "zo"
stopword[] = "door"
stopword[] = "over"
stopword[] = "ze"
stopword[] = "zich"
stopword[] = "bij"
stopword[] = "ook"
stopword[] = "tot"
stopword[] = "je"
stopword[] = "mij"
stopword[] = "uit"
stopword[] = "der"
stopword[] = "daar"
stopword[] = "haar"
stopword[] = "naar"
stopword[] = "heb"
stopword[] = "hoe"
stopword[] = "heeft"
stopword[] = "hebben"
stopword[] = "deze"
stopword[] = "u"
stopword[] = "want"
stopword[] = "nog"
stopword[] = "zal"
stopword[] = "me"
stopword[] = "zij"
stopword[] = "nu"
stopword[] = "ge"
stopword[] = "geen"
stopword[] = "omdat"
stopword[] = "iets"
stopword[] = "worden"
stopword[] = "toch"
stopword[] = "al"
stopword[] = "waren"
stopword[] = "veel"
stopword[] = "meer"
stopword[] = "doen"
stopword[] = "toen"
stopword[] = "moet"
stopword[] = "ben"
stopword[] = "zonder"
stopword[] = "kan"
stopword[] = "hun"
stopword[] = "dus"
stopword[] = "alles"
stopword[] = "onder"
stopword[] = "ja"
stopword[] = "eens"
stopword[] = "hier"
stopword[] = "wie"
stopword[] = "werd"
stopword[] = "altijd"
stopword[] = "doch"
stopword[] = "wordt"
stopword[] = "wezen"
stopword[] = "kunnen"
stopword[] = "ons"
stopword[] = "zelf"
stopword[] = "tegen"
stopword[] = "na"
stopword[] = "reeds"
stopword[] = "wil"
stopword[] = "kon"
stopword[] = "niets"
stopword[] = "uw"
stopword[] = "iemand"
stopword[] = "geweest"
stopword[] = "andere"


KEEP CALM AND CARRY ON

I do not use the responsive bootstrap version since i coded my responsive version earlier, but i have bought every 28d of code package to support burts effort and keep this forum alive (albeit more like on life support).

So if you are still here ? What are you waiting for ?!

 

Find the most frequent unique errors to fix:

grep "PHP" php_error_log.txt | sed "s/^.* PHP/PHP/g" |grep "line" |sort | uniq -c | sort -r > counterrors.txt

Share this post


Link to post
Share on other sites

got it, he needs to fix the way his site generates the $breadcrumb and then everything falls into place

 

How difficult might this be?

Share this post


Link to post
Share on other sites

How difficult might this be?

 

I haven't put any thought into this at the build stage simply because duplicating products into multiple categories is creating duplicate content, something to be avoided.

Share this post


Link to post
Share on other sites

FYI, longest dutch stopword lists i could find. longer than the one on ranks.nl that is shown in multiple places

[stopwords]
stopword[] = "de"
stopword[] = "en"
stopword[] = "van"
stopword[] = "ik"
stopword[] = "te"
stopword[] = "dat"
stopword[] = "die"
stopword[] = "in"
stopword[] = "een"
stopword[] = "hij"
stopword[] = "het"
stopword[] = "niet"
stopword[] = "zijn"
stopword[] = "is"
stopword[] = "was"
stopword[] = "op"
stopword[] = "aan"
stopword[] = "met"
stopword[] = "als"
stopword[] = "voor"
stopword[] = "had"
stopword[] = "er"
stopword[] = "maar"
stopword[] = "om"
stopword[] = "hem"
stopword[] = "dan"
stopword[] = "zou"
stopword[] = "of"
stopword[] = "wat"
stopword[] = "mijn"
stopword[] = "men"
stopword[] = "dit"
stopword[] = "zo"
stopword[] = "door"
stopword[] = "over"
stopword[] = "ze"
stopword[] = "zich"
stopword[] = "bij"
stopword[] = "ook"
stopword[] = "tot"
stopword[] = "je"
stopword[] = "mij"
stopword[] = "uit"
stopword[] = "der"
stopword[] = "daar"
stopword[] = "haar"
stopword[] = "naar"
stopword[] = "heb"
stopword[] = "hoe"
stopword[] = "heeft"
stopword[] = "hebben"
stopword[] = "deze"
stopword[] = "u"
stopword[] = "want"
stopword[] = "nog"
stopword[] = "zal"
stopword[] = "me"
stopword[] = "zij"
stopword[] = "nu"
stopword[] = "ge"
stopword[] = "geen"
stopword[] = "omdat"
stopword[] = "iets"
stopword[] = "worden"
stopword[] = "toch"
stopword[] = "al"
stopword[] = "waren"
stopword[] = "veel"
stopword[] = "meer"
stopword[] = "doen"
stopword[] = "toen"
stopword[] = "moet"
stopword[] = "ben"
stopword[] = "zonder"
stopword[] = "kan"
stopword[] = "hun"
stopword[] = "dus"
stopword[] = "alles"
stopword[] = "onder"
stopword[] = "ja"
stopword[] = "eens"
stopword[] = "hier"
stopword[] = "wie"
stopword[] = "werd"
stopword[] = "altijd"
stopword[] = "doch"
stopword[] = "wordt"
stopword[] = "wezen"
stopword[] = "kunnen"
stopword[] = "ons"
stopword[] = "zelf"
stopword[] = "tegen"
stopword[] = "na"
stopword[] = "reeds"
stopword[] = "wil"
stopword[] = "kon"
stopword[] = "niets"
stopword[] = "uw"
stopword[] = "iemand"
stopword[] = "geweest"
stopword[] = "andere"

 

Thanks for taking the time to post this :thumbsup:

Share this post


Link to post
Share on other sites

Excellent thought out contribution !

 

I noticed one small issue, when e.g. the title is completed with product names from a category, the oldest ones are taken, while I think it would be better to take the latest as it will have more 'fresh' content and less stale entries. I generally have my product lists sorted by products_id desc.

 

Yes, you could simply modify the $cPath_products_query adding an ORDER BY in modules/index.php

Share this post


Link to post
Share on other sites

I haven't put any thought into this at the build stage simply because duplicating products into multiple categories is creating duplicate content, something to be avoided.

 

Yes duplicating products is creating multiple instances of the same product, this is what I want to avoid as it would not only clutter up the manufacturers specific section but also search results would return multiple instances of the same product confusing customers.

 

I am using the link product function which is putting the same product in a different category but it uses the same product id. The problem is the KissMT module is taking the META and Header Tag information from the original section the product was created in rather than using the data from the section the product is being viewed in at the time. In my specific instance this means the customer could be looking in the section for a 2004-2005 vehicle but because the initial creation of the product was in the 1998-2001 section the Header tags display 1998-2001 instead of 2004-2005 as does the META Tag.

Share this post


Link to post
Share on other sites

Yes duplicating products is creating multiple instances of the same product, this is what I want to avoid as it would not only clutter up the manufacturers specific section but also search results would return multiple instances of the same product confusing customers.

 

I am using the link product function which is putting the same product in a different category but it uses the same product id. The problem is the KissMT module is taking the META and Header Tag information from the original section the product was created in rather than using the data from the section the product is being viewed in at the time. In my specific instance this means the customer could be looking in the section for a 2004-2005 vehicle but because the initial creation of the product was in the 1998-2001 section the Header tags display 1998-2001 instead of 2004-2005 as does the META Tag.

 

This I imagine is because the info is cached into a file named like ..

 

kissmt_1_product_info_products_id_20.cache

 

So a product id of 20 would always return the same meta info.

 

A possible solution would be to use a different naming structure so that the file is saved and retrieved based not only the products id but also on the category path to product.

 

E.g. a product id of 20 reached by a category path of 2_5_37 might be named ..

 

kissmt_1_product_info_cpath_2_5_37_products_id_20.cache

 

I should add thought that I still see this as a very bad idea as it is a duplicated page with different meta data.

Edited by FWR Media

Share this post


Link to post
Share on other sites

Remove Manufactors from Titel on products how can i do that ?

And is it possible to change to exempel 5 keywords now it is 10 keywords

 

/Best Regards Marcus

Share this post


Link to post
Share on other sites

This I imagine is because the info is cached into a file named like ..

 

kissmt_1_product_info_products_id_20.cache

 

So a product id of 20 would always return the same meta info.

 

A possible solution would be to use a different naming structure so that the file is saved and retrieved based not only the products id but also on the category path to product.

 

E.g. a product id of 20 reached by a category path of 2_5_37 might be named ..

 

kissmt_1_product_info_cpath_2_5_37_products_id_20.cache

 

I should add thought that I still see this as a very bad idea as it is a duplicated page with different meta data.

 

That makes sense, how could I have the cache files names changed to be like that? This should be part of the contribution as I am sure I am not the only one who uses the link product function. There is no other way to do this, making a duplicate product with a slightly different name would make the same product show up multiple times in the manufacturers and search and would confuse customers (ie. adding the model year for each section to the product name). I break my sections down to specific vehicle models as I target specific customers and this makes it easier for them to navigate to the parts for there car rather than navigating based on a category.

 

I would have to completely change the store logic to do things any other way. It would require putting products into categories and then having drop downs that a customer would use to select there specific car and eliminate the products that don't work on there specific car. This is alot more work than it should be and IMO would turn customers away from wanting to purchase if it takes 10 clicks to find what your looking for.

 

If you have an idea of how to fix this please let me know and I can test it out on my test site and get it working.

Share this post


Link to post
Share on other sites

Hi Robert,

 

I consider installing KissMT but I’m concerned by the products cache problem I had with USU5.

Did you test it with large stores (50000 products or more)? Is there a way to disable the cache function if needed?

 

Thanks.

Andybird

Share this post


Link to post
Share on other sites

Hi Robert,

 

I consider installing KissMT but I’m concerned by the products cache problem I had with USU5.

Did you test it with large stores (50000 products or more)? Is there a way to disable the cache function if needed?

 

Thanks.

Andybird

 

KissMT doesn't care how many products you have .. the cache loads on a page by page basis so shop size doesn't matter.

Share this post


Link to post
Share on other sites

KissMT doesn't care how many products you have .. the cache loads on a page by page basis so shop size doesn't matter.

Fine. I have it perfectly working already. Great work, Rob, thanks very much!

Andybird

Share this post


Link to post
Share on other sites

Hi Robert

 

I intend to do the 2 minute test on my site.

 

My index.php where I think I need to replace for KissMT looks like this:

 

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<?php include(DIR_WS_INCLUDES . 'easy_meta_tags.php'); ?>

<base href="<?php echo (($request_type == 'SSL') ? 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 //-->

 

 

While the product.php looks like this:

 

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<?php include(DIR_WS_INCLUDES . 'easy_meta_tags.php'); ?>

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" />

<script type="text/javascript" src="js/prototype.js"></script>

<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>

<script type="text/javascript" src="js/lightbox.js"></script>

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

<!-- header //-->

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->

 

 

Please advise if and where should remove to do the 2 minute test, or I should just leave this as is?

 

Thanks in advance

 

Felix

Share this post


Link to post
Share on other sites

Hi Robert

 

I intend to do the 2 minute test on my site.

 

My index.php where I think I need to replace for KissMT looks like this:

 

require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_DEFAULT);

?>

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">

<html <?php echo HTML_PARAMS; ?>>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<?php include(DIR_WS_INCLUDES . 'easy_meta_tags.php'); ?>

<base href="<?php echo (($request_type == 'SSL') ? 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 //-->

 

 

While the product.php looks like this:

 

<head>

<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">

<?php include(DIR_WS_INCLUDES . 'easy_meta_tags.php'); ?>

<base href="<?php echo (($request_type == 'SSL') ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">

<link rel="stylesheet" type="text/css" href="stylesheet.css">

<link rel="stylesheet" href="lightbox.css" type="text/css" media="screen" />

<script type="text/javascript" src="js/prototype.js"></script>

<script type="text/javascript" src="js/scriptaculous.js?load=effects,builder"></script>

<script type="text/javascript" src="js/lightbox.js"></script>

</head>

<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">

<!-- header //-->

<?php require(DIR_WS_INCLUDES . 'header.php'); ?>

<!-- header_eof //-->

 

 

Please advise if and where should remove to do the 2 minute test, or I should just leave this as is?

 

Thanks in advance

 

Felix

 

 

Replace ..

 

<?php include(DIR_WS_INCLUDES . 'easy_meta_tags.php'); ?>

 

With ...

 

<?php include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php'; ?>

Share this post


Link to post
Share on other sites

Replace ..

 

<?php include(DIR_WS_INCLUDES . 'easy_meta_tags.php'); ?>

 

With ...

 

<?php include_once DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php'; ?>

 

 

Thanks, looking forward to effecting the changes.

 

Regards

 

Felix

Share this post


Link to post
Share on other sites

Google is now reporting duplicate Meta and Title tags for the linked products, the issue of where the info is pulled should be fixed. It is basically removing a function of the stock OScommerce as you can no longer use it properly with KissMT installed.

Share this post


Link to post
Share on other sites

Google is now reporting duplicate Meta and Title tags for the linked products, the issue of where the info is pulled should be fixed. It is basically removing a function of the stock OScommerce as you can no longer use it properly with KissMT installed.

 

I'll possibly look at it but not as a priority because duplicating identical content in multiple categories is a fundamental bad seo practice whether it be a stock osCommerce function or not.

Share this post


Link to post
Share on other sites

I'll possibly look at it but not as a priority because duplicating identical content in multiple categories is a fundamental bad seo practice whether it be a stock osCommerce function or not.

 

Please Do

 

It is necessary for these products to be linked in multiple sections, there is no way around this. If there was I would use it.

Share this post


Link to post
Share on other sites

hey,

 

first of all thanks for the great add-ons.

 

I am wondering if it's possible to manually enter the title, description and keyword data for the main page, category pages and product pages?

 

Please advise.

 

thanks

 

The whole power of KissMT is that it is dynamic so the answer is .. of course not.

 

You can manually create meta data for individual pages and the index page but other than that it it fully dynamic.

 

Let's face it .. if you want to manually add the data you don't need KissMT or any other contribution .. you add a few fields to the database, some code in admin to enter the data and some code at the front end to display it .. done.

Share this post


Link to post
Share on other sites

Hi Robert,

 

Another great contrbution yet again and was very easy to install. One thing i would like is to only have the category name and product name as the title tag. Can you point me in the right direction as to where i can make this modification please?

 

Regards,

 

Rick

Share this post


Link to post
Share on other sites

Hi Robert,

 

Another great contrbution yet again and was very easy to install. One thing i would like is to only have the category name and product name as the title tag. Can you point me in the right direction as to where i can make this modification please?

 

Regards,

 

Rick

 

Hi Rick

 

Look in ..

 

catalog/includes/modules/kiss_meta_tags/modules/product_info.php

 

Within the process() method $leading_values contains what will be the title.

Share this post


Link to post
Share on other sites

Hi,

I have been using on my site KissMT_1.0_r72_RC version. UTF-8 charset of my site and Turkish. The script works fine. Characters are letters in the address line problems. KissMT_1.0_r72_RC files from where the characters can handle the problem.

 

Problems related to sample pictures below:

 

 

3934.jpg

3942.jpg

 

 

 

thanks

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×