Jump to content
FWR Media

KissMT Dynamic SEO Meta & Canonical Header Tags

Recommended Posts

Thanks for this great mod! I have installed the main portion, as well as the optional extras without any errors or issues. KISS ROCKS!

 

Everything seems to be working ok with one exception. Since installing this, one product (that I've discovered so far) takes exceptionally long to load (20 secs). It is consistent in that load time while every other product loads almost immediately. The only difference between this product and several other almost identical items is that it has 20 reviews and has been a number one selling product for me. Obviously, as a best seller in a live store, I don't need it to be dogging!

 

I have reset the KissMT cache - didn't help. I repaired, analyzed, optimized the database from phpMyAdmin, without error and that didn't help. I edited a small part of the item description and the updated version didn't load any faster. I'm not certain how it would be this contrib, but other than your Security Pro, nothing else has changed on this store. The product is here: Slow Item

 

Thanks for your help!

Nevermind - it seems to have been my server. I should have known better, but it was weirdly coincidental with the installation of the mod. I would delete the post, but this forum won't let me. Thanks again!

Share this post


Link to post
Share on other sites

I have been fidgeting with the kissmt.php language file but I am not sure if it works properly yet... Or it is not behaving as I would expect it to be - any insight would be largely appreciated... (My previous questions were mainly result of these problems)

 

 

The main problem I am having is with:

 /**
 * General
 * Default text to add to meta titles that are too short. Leave blank if not needed. you can inlude %s to place your shop name in there.
 */
 define( 'KISSMT_TITLE_PADDING', 'buy from %s' );

 /**
 * Homepage
 * Note: The %s is where your shop name will go in the text
 */
 define( 'KISSMT_HOMEPAGE_TITLE', 'My Great Product Range' );
 define( 'KISSMT_HOMEPAGE_DESCRIPTION', 'Full Range of Wiggets' );

 

First problem is the title padding does not seem to work - it never adds it after the title. I put a 12 character shortened store name there. It does not add it there even if "max meta title length" is not reached. It instead takes first few words from the KISSMT_HOMEPAGE_DESCRIPTION and adds it there. It does the same thing for products pages, categories pages, etc... Is there a way to change this behavior? is it normal?

 

On another note - is it possible to add a feature to add a number of keywords to the dynamically created list of key words?

 

It has been mentioned in a later release you will be able to manually enter meta data if you don't want the dynamic meta tags, on an individual page/category basis I believe

Share this post


Link to post
Share on other sites

Yes KissMT deals correctly with special characters.

 

That is exactly why such characters are represented as html special characters in the source code.

 

That may be the case but the issue with that is you can enter your full quota of keywords because 1 character é is represented by 8 character é

 

 

Same issue applies for title and description

 

 

 

 

It's obviously an enconding issue, something should be in UTF-8 and is not. Could be the contribution, the install of osC, the host etc ............

Share this post


Link to post
Share on other sites

That may be the case but the issue with that is you can enter your full quota of keywords because 1 character é is represented by 8 character é

 

Same issue applies for title and description

 

This is a good point. The text should be converted to html entities AFTER the length is stripped back.

 

Try the attached file: -

 

includes/modules/kiss_meta_tags/abstracts/kiss_modules.php

 

then reset the cache.

 

kiss_modules.php

Share this post


Link to post
Share on other sites

No I didn't and I still haven't. Obviously if you put search result links on the site then they will be followed and indexed.

 

 

You don't need to put in links for Googlebot to be able find the advanced search result page. Googlebot will carry out it's own queries using the search box

 

http://googlewebmast...html-forms.html

Share this post


Link to post
Share on other sites

KissMT is dynamic .. it generally does a good job in the majority of cases but in other cases the output may not be what you deem to be ideal.

 

This is simply because the code has no way of knowing exactly how you want it to be output, it does remove duplicates but yours aren't exact duplicates.

 

Could you post the EXACT contents of ..

 

products_name

 

products_model

 

First 100 characters of the description.

 

hi FWR,

 

Yes agreed this is a great contribution, really clever how it works...congrats!

 

 

The exact contents of the fields requested are:

 

products_name = Axel

 

products_model = CH A20

 

the description field is empty

 

we actually display a field called "catalog_number" in the breadcrumb and on the product page, we do not display the "products_model" field.

 

catalog_number field = CHA20

 

 

 

The breadcrumb we use works like this:

 

Home / Main Cat / Sub Cat / Product Name [catalog number]

 

 

so this products sits in the Furniture Main Cat and in the Chairs sub cat, with the product name "Axel" and Catalog Number "CHA20", displaying as:

 

Home / Furniture / Chairs / Axel [CHA20]

 

 

 

Any help to modify the code to avoid displaying details twice would be much appreciated.

 

 

Thanks!

Edited by sigspace

Share this post


Link to post
Share on other sites

I recently moved my site out of 'catalog' to the root. I am wondering if this add-on (and almost all of the FWR add-ons, as I have several ) will need modification(s) with this move?

 

Thanks


Web Developer, Firebug, and Notepad++ are powerful free tools for web design.

Share this post


Link to post
Share on other sites

I recently moved my site out of 'catalog' to the root. I am wondering if this add-on (and almost all of the FWR add-ons, as I have several ) will need modification(s) with this move?

 

Thanks

 

No addons of mine will require alteration.

 

Just ensure that you make all the "cache" directories writeable.

 

Some are sensitive to correct configure.php settings so ensure you get those right.

 

If you do come across an issue then post in the relevant support topic.

Share this post


Link to post
Share on other sites

hi FWR,

 

Yes agreed this is a great contribution, really clever how it works...congrats!

 

 

The exact contents of the fields requested are:

 

products_name = Axel

 

products_model = CH A20

 

the description field is empty

 

we actually display a field called "catalog_number" in the breadcrumb and on the product page, we do not display the "products_model" field.

 

catalog_number field = CHA20

 

 

 

The breadcrumb we use works like this:

 

Home / Main Cat / Sub Cat / Product Name [catalog number]

 

 

so this products sits in the Furniture Main Cat and in the Chairs sub cat, with the product name "Axel" and Catalog Number "CHA20", displaying as:

 

Home / Furniture / Chairs / Axel [CHA20]

 

 

 

Any help to modify the code to avoid displaying details twice would be much appreciated.

 

 

Thanks!

 

hi FWR Media,

sorry to ask again but still stuck with this issue. i just wondered if you are able to help with this?

 

it would be really great if you could please.

 

thank you in advance!

Share this post


Link to post
Share on other sites

hi FWRmedia,

your help with this issue shown in my previous posts would be really appreciated when you can please.

 

thank you!

Share this post


Link to post
Share on other sites

Hi.

 

I use all-products contribution.

 

After installing KissMT I get these lines:

 

Warning: KissMT could not find a valid base filename, please inform the developer. in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 141

 

Warning: include_once(/home2/israelde/public_html/includes/modules/kiss_meta_tags/modules/) [function.include-once]: failed to open stream: No such file or directory in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 186

 

Warning: include_once() [function.include]: Failed opening '/mysite/public_html/includes/modules/kiss_meta_tags/modules/' for inclusion (include_path='.:/usr/lib64/php:/usr/lib/php') in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 186

 

Fatal error: Class 'KissMT_Module' not found in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 187

 

 

What can I do in order to enable this pade to load correctly ?

 

Thank you

Share this post


Link to post
Share on other sites

Hi.

 

I use all-products contribution.

 

After installing KissMT I get these lines:

 

Warning: KissMT could not find a valid base filename, please inform the developer. in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 141

 

Warning: include_once(/home2/israelde/public_html/includes/modules/kiss_meta_tags/modules/) [function.include-once]: failed to open stream: No such file or directory in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 186

 

Warning: include_once() [function.include]: Failed opening '/mysite/public_html/includes/modules/kiss_meta_tags/modules/' for inclusion (include_path='.:/usr/lib64/php:/usr/lib/php') in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 186

 

Fatal error: Class 'KissMT_Module' not found in /mysite/public_html/includes/modules/kiss_meta_tags/classes/kiss_meta_tags_class.php on line 187

 

 

What can I do in order to enable this pade to load correctly ?

 

Thank you

 

Correct the contribution, this is covered in this support thread.

 

KissMT expects contributions to name the files correctly all-products.php ( hyphen ) is not a valid osCommerce file name.

 

Change the filename to the oscommerce standard .. all_products.php ( underscore not hyphen ) and make sure you change the entry in includes/filenames.php.

Edited by FWR Media

Share this post


Link to post
Share on other sites

Correct the contribution, this is covered in this support thread.

 

KissMT expects contributions to name the files correctly all-products.php ( hyphen ) is not a valid osCommerce file name.

 

Change the filename to the oscommerce standard .. all_products.php ( underscore not hyphen ) and make sure you change the entry in includes/filenames.php.

 

Robert , it helped.

Thanks you very much !!

Share this post


Link to post
Share on other sites

Hi,

 

It is really great contrib, but I do not understand that sometimes the cache never updates or expire,

I mean for example the cache for specials.php is 2 months old, it shows the 2 months old old meta tags,

and never changes if I change the products on special... :(

 

Do you have any idea what to do, or Am I wrong something?

Share this post


Link to post
Share on other sites

Hi,

 

It is really great contrib, but I do not understand that sometimes the cache never updates or expire,

I mean for example the cache for specials.php is 2 months old, it shows the 2 months old old meta tags,

and never changes if I change the products on special... :(

 

Do you have any idea what to do, or Am I wrong something?

I think you have the option to reset the cache in the admin

Share this post


Link to post
Share on other sites

I think you have the option to reset the cache in the admin

 

Yes I have...but everything is automatic, so it i very strange that expiration is not automatic,

so every time I change a product, category, manufacturer, products on special I have to reset manually... :(

Share this post


Link to post
Share on other sites

Hi again Robert,

i need help again.

 

Ref:

    * Output the final meta tags
   */
   public function output() {
     echo '<title>' . $this->title . '</title>' . PHP_EOL .
     '<meta name="description" content="' . $this->description . '"' . $this->html_end . PHP_EOL .
     '<meta name="keywords" content="' . $this->keywords . '"' . $this->html_end . PHP_EOL;
     $this->canonical();
   } // end method

 

This example is that I get:

<title>New 3D Notebooks On Sale - On may there will be new units </title>

<meta name="description" content="NEW 3D NOTEBOOKS ON SALE, On may ther will be new units of these noteboks.. for bla .. bla...">

<meta name="keywords" content="notebooks,sale,may">

 

And this that I want:

<title>NEWS - New 3D Notebooks On Sale</title>

<meta name="description" content="On may ther will be new units of these noteboks.. for bla .. bla...">

<meta name="keywords" content="notebooks,sale,may">

 

Im deleting header tags seo v.3 for static pages because the USU5 issue.

Also I have an issue with the articles contribution(when creating the pseudo_tags), for that I use now this contribution. Is very , very EASY to install.

 

But I dont know how to manage the code above. Where is the text I must modify?? what archive??

I looked and see add extra descriptions for categories and manufacturers, but what about ARTICLES contrib?? I dont want the extra description.

 

This is the article_info.php inside Kissmt module (modified to take other fields):

<?php 
 final class KissMT_Module extends KissMT_Modules {

   private $article_query;
   protected $noindex_follow = array();

   public function __construct() {
     $this->article_query = "SELECT articles_head_title_tag as name, articles_head_desc_tag as description FROM " . TABLE_ARTICLES_DESCRIPTION . "  WHERE articles_id = :articles_id AND language_id = :languages_id LIMIT 1";
   } // end constructor

   public function process() {

     $this->get_value = $this->parsePath( $_GET['articles_id'] );
     $this->original_get = (int)$_GET['articles_id'];
     $this->cache_name = $this->setCacheString( __FILE__, 'article_info', $this->original_get );
     if ( false !== $this->retrieve( $this->cache_name ) ) {  
       KissMT::init()->setCanonical( $this->checkCanonical( 'articles_id' ) );
       return;
     } 
     $query_replacements = array( ':articles_id' => (int)$this->get_value, ':languages_id' => (int)KissMT::init()->retrieve( 'languages_id' ) );
     $query = str_replace( array_keys( $query_replacements ), array_values( $query_replacements ), $this->article_query );
     $result = KissMT::init()->query( $query );
     $article_details = tep_db_fetch_array( $result );
     tep_db_free_result( $result );
     $name = trim( $article_details['name'] );
     $description = trim( $article_details['description'] );
     $breadcrumb = array_flip( KissMT::init()->retrieve( 'breadcrumb' ) ); 
     if ( array_key_exists( $name, $breadcrumb ) ) {
       unset( $breadcrumb[$name] );
     }
     $breadcrumb = array_flip( $breadcrumb );
     $leading_values = $name . ( !empty( $breadcrumb ) ? '[-separator-]' . implode( '[-separator-]', $breadcrumb ) : '' );
     KissMT::init()->setCanonical( $this->checkCanonical( 'articles_id' ) );
     $this->parse( KissMT::init()->entities( $leading_values, $decode  = true ), KissMT::init()->entities( $description, $decode = true ) );
   } // end method

 } // End class
?>

 

 

 

 

In other hands the breadcumb trail didnt worked for me:

My archive working with Header Tags Seo3 and SPPC for products ..products_info.php:

catalog/includes/classes/breadcrumb.php

<?php
/*
 $Id: breadcrumb.php 1739 2007-12-20 00:52:16Z hpdl $
*/

 class breadcrumb {
   var $_trail;

   function breadcrumb() {
     $this->reset();
   }

   function reset() {
     $this->_trail = array();
   }

   function add($title, $link = '') {
     $this->_trail[] = array('title' => $title, 'link' => $link);
   }

   function trail($separator = ' - ') {
     $trail_string = '';

     for ($i=0, $n=sizeof($this->_trail); $i<$n; $i++) {
       if (isset($this->_trail[$i]['link']) && tep_not_null($this->_trail[$i]['link'])) {
         $trail_string .= '<a href="' . $this->_trail[$i]['link'] . '" class="headerNavigation">' . $this->_trail[$i]['title'] . '</a>';
       } else {
         $trail_string .= $this->_trail[$i]['title'];
       }

       if (($i+1) < $n) $trail_string .= $separator;
     }

     return $trail_string;
   }
 }
?>

 

 

 

 

 

Thanks in advance.

Edited by bhbilbao

Share this post


Link to post
Share on other sites

Hi again Robert,

i need help again.

 

 

This example is that I get:

<title>New 3D Notebooks On Sale - On may there will be new units </title>

<meta name="description" content="NEW 3D NOTEBOOKS ON SALE, On may ther will be new units of these noteboks.. for bla .. bla...">

<meta name="keywords" content="notebooks,sale,may">

 

And this that I want:

<title>NEWS - New 3D Notebooks On Sale</title>

<meta name="description" content="On may ther will be new units of these noteboks.. for bla .. bla...">

<meta name="keywords" content="notebooks,sale,may">

 

KissMT is dynamic .. the benefit is that you get meaningful meta tags with no effort .. the downside is that you can't specifically edit.

 

You can edit to change the way the dynamic aspects work but you cannot make specific changes to a specific item ( unless it a non dynamically created page ).

Share this post


Link to post
Share on other sites

OK. Thanks.

I need a solution for the USU5 + HEADER TAGS SEO V.3

For that I started to use USU5 + HEADER TAGS SEO V.3 + KISS DINAMIC META TAGS

 

Im thinking on change the header tags manager based on the language of the page (or maybe the browser language):

 

But this fix dont work for me, if anyone could help me , i´ll be very apreciated:

<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<?php
// if ( $langue_user = "en" ) {    // define tu lenguaje por defecto
if ($_SESSION["ch_langue"] = "en")  { 
 require(DIR_WS_INCLUDES . 'header_tags.php');
} else {
?>
require(DIR_WS_MODULES . 'kiss_meta_tags/kiss_meta_tags.php');
<?php
}
?>

Share this post


Link to post
Share on other sites

thanks for this module. I have installed on my site at http://www.insidertrips.com

 

My issue is that my homepage, and all of the product pages have the same title. Could you take a look? Also, if there is any way for me to add the subtitle, i'd like to know how..for example on this page:

 

http://www.insidertrips.com/index.php/todays-trips-c-1?pid=7

 

I'd actually like it to say Today's Trips--JW Marriott Guanacaste, Santa Cruz, Costa Rica

 

I just think it would be better for my SEO benefits. Thanks!

Share this post


Link to post
Share on other sites

thanks for this module. I have installed on my site at http://www.insidertrips.com

 

My issue is that my homepage, and all of the product pages have the same title. Could you take a look? Also, if there is any way for me to add the subtitle, i'd like to know how..for example on this page:

 

http://www.insidertrips.com/index.php/todays-trips-c-1?pid=7

 

I'd actually like it to say Today's Trips--JW Marriott Guanacaste, Santa Cruz, Costa Rica

 

I just think it would be better for my SEO benefits. Thanks!

 

Anyone on this one?? Driving me crazy! Thanks!

Share this post


Link to post
Share on other sites

Share this post


Link to post
Share on other sites

I would like to start off by saying thank you very much for this contribution. I do have one issue and it probably is a very quick fix. I have verified my site with W3C Validator and it states that I have get the following errors:

 

Validation Output: 3 Errors

 

Error Line 6, Column 95: end tag for "meta" omitted, but OMITTAG NO was specified

…cription" content="GORDON IMPORTS, INC., Largest Selection of Amphicar Parts.">

 

You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".

 

Info Line 6, Column 1: start tag was here

<meta name="description" content="GORDON IMPORTS, INC., Largest Selection of Am…

 

Error Line 7, Column 81: end tag for "meta" omitted, but OMITTAG NO was specified

<meta name="keywords" content="gordon,imports,largest,selection,amphicar,parts">

 

You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".

 

Info Line 7, Column 1: start tag was here

<meta name="keywords" content="gordon,imports,largest,selection,amphicar,parts">

 

Error Line 8, Column 62: end tag for "link" omitted, but OMITTAG NO was specified

<link rel="canonical" href="http://gordonimports.com/store/">

 

You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".

 

Info Line 8, Column 1: start tag was here

<link rel="canonical" href="http://gordonimports.com/store/">

 

This happens when I made the following change on step 2 - File modifications:

 

catalog/includes/template_top.php

 

Find ..

<title><?php echo tep_output_string_protected($oscTemplate->getTitle()); ?></title>

 

Replace with ...

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

 

Is there a fix for this?

 

Thank you in advance.

 

Mike


Do or Do Not, there is no try.

Share this post


Link to post
Share on other sites

Hello!!

 

I'm thinking to change from Header Tags SEO to KissMT, but I have some questions.

 

Can I define manually description for the products that I want?

 

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

×