Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Header Tags SEO


Jack_mcs

Recommended Posts

Hi, I have an issue with HTSEO 3.2.8 and Articles Manager V 1.57_7. Article pages appear in the "Select an Option" drop down and I can add the custom details, save etc but the description and Keywords always revert to the default. HTSEO works fine for products etc.

 

Here's an example: http://www.festivalbang.com/uk-festival-awards-2012-winners-a-24.html You can see the page title defaults to Festival Bang -it should say "UK Festival Awards 2012 Winners"

 

Does it have anything to do with this elusive "Header Tags code" which is in the install_Catalog.txt file? I've looked through that file and I can't see it -if it's obvious can someone just paste it here and indicate where it needs to be inserted in the article_info.php file because for the life of me I can't seem to do it.

 

Thank you.

Link to comment
Share on other sites

Hi, I have an issue with HTSEO 3.2.8 and Articles Manager V 1.57_7. Article pages appear in the "Select an Option" drop down and I can add the custom details, save etc but the description and Keywords always revert to the default. HTSEO works fine for products etc.

Are you editing the actual article from the dropdown in Page Control (the id of the page matches the articles id)? Do you have text entered into the boxes for it? Is the root checkbox checked?

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Are you editing the actual article from the dropdown in Page Control (the id of the page matches the articles id)? Do you have text entered into the boxes for it? Is the root checkbox checked?

Articles require special code in the includes/header-tags.php file. If that file isn't writeable in your shop, then it would not be setup correctly. Look in that file and search for article_info. If it is only six or so lines, it is incorrect. It should be closer to 20 or 30. In that case you will need to delete that entry, or just replace the file, and add a new article page in Page Control. It doesn't have to be an actual article and you can delete it afterwards. Doing that will create the needed code.

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Look in that file and search for article_info. If it is only six or so lines, it is incorrect. It should be closer to 20 or 30. In that case you will need to delete that entry.

 

That nailed it, I looked through the file and found the entry, it had trails of duplicate code in for the articles.php code entry - don't know how, don't care now its sorted.

 

Thanks for the help it is much appreciated.

 

I do have another quick question: why does the breadcrumb not show deeper category links other than "article"?

Link to comment
Share on other sites

I don't understand what you mean by "deeper category" links. Header Tags will display a name for the category in the breadcrumb but doesn't control the article. If you are askig a question about Article Manager, it belongs in the support thread for that contribution. If you are asking a question about the breadcrumb and Header Tags, I can't understand the question.

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Jack, a quick double check before I add header tags to iOSC mobile_ side of the shop... Rather that the <head> being present in every fiile, like default on the 2.2rc2a classic shop, the mobile_ side has the <head> in its own file /mobile/header.php, witch is then required into each mobile_ file.

 

Will there be any surprises or should everything work as normal? anything special to do? just checking before I break something :)

 

Thank you

-Dave

Link to comment
Share on other sites

That should be fine. It is how it is done in 2.3, CRE and some other shops. There may be a problem in admin in editing those pages. It depends upon how the code is detected.

Edited by Jack_mcs

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

That should be fine. It is how it is done in 2.3, CRE and some other shops. There may be a problem in admin in editing those pages. It depends upon how the code is detected.

 

yep - did a test with just one file, mobile_privacy.php. The good news is the basic headertags seem to work, at least the default entries are showing, and canonical worked. Bad news is on admin, the file is not being detected so theres no way to modify the tags.

 

I'm looking at /admin/inculdes/functions/header_tags.php and sort of understand the basic flow of what the code is doing... I believe the first problem is that the mobile filenames.php file is seperate from the main file, (and is in the /catalog/mobile/ directory).

 

Would a change here to $path be correct? to point where the mobile filenames are

 

function AddedToHeaderTagsIncludesFile($file, &$fp, $languages_id) //add a new entry to the includes/header_tags.php file if not present
{  
  if (! $fp)
  {
  echo sprintf(ERROR_FAILED_FILE_OPEN, $file);
  return false;	 //needed for testing failure - bool won't work
  }	
  if (NotDuplicatePage($fp, $file))
  {
  $insertPoint = 0;
  $markPoint = count($fp) - 1;
  $path = DIR_FS_CATALOG . 'includes/filenames.php';
  $lines = array();
  $lines = @file($path);  //load in the filenames file

-Dave

Link to comment
Share on other sites

IOSC uses a filter to change the existing names to have mobile in them so I'm not sure they will show up. But the first thing you may need to do is find this in the functions file you are in

function IsTemplate() //return if BTS or STS is enabled, or not
{

and add after it

return true;

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Woah - that sure did it... Now EVERY file in catalog/ is listed in page control regardless of the header tag code being present.. Should I have modified the $excludeFilesList = array(); before creating all those entries? Will it harm anything to leave all those filename entries, especially for the files without HT code?

 

I also noticed the Description meta is now blank (was default) on the mobile_privacy.php test file, but I havvent yet tried editing in page control. The keyword meta is now adding the page name....so good.

 

fun fun

Thanks Jack

-Dave

Link to comment
Share on other sites

If I had added more excluded files first, before modifying function IsTemplate(), would it have been preferred? ie less cluttered detection?

 

such as

// Begin iOSC Mobile
 $excludeFilesList[] = 'mobile_account.php';
 $excludeFilesList[] = 'mobile_account_edit.php';
 $excludeFilesList[] = 'mobile_account_history.php';
 $excludeFilesList[] = 'mobile_account_history_info.php';
 $excludeFilesList[] = 'mobile_account_newsletters.php';
 $excludeFilesList[] = 'mobile_account_notifications.php';
 $excludeFilesList[] = 'mobile_account_password.php';
 $excludeFilesList[] = 'mobile_address_book.php';
 $excludeFilesList[] = 'mobile_address_book_process.php';
 $excludeFilesList[] = 'mobile_checkout_confirmation.php';
 $excludeFilesList[] = 'mobile_checkout_payment.php';
 $excludeFilesList[] = 'mobile_checkout_payment_address.php';
 $excludeFilesList[] = 'mobile_checkout_process.php'; 
 $excludeFilesList[] = 'mobile_checkout_shipping.php';
 $excludeFilesList[] = 'mobile_checkout_shipping_address.php';
 $excludeFilesList[] = 'mobile_checkout_success.php';
 $excludeFilesList[] = 'mobile_create_account.php';
 $excludeFilesList[] = 'mobile_create_account_success.php';
 $excludeFilesList[] = 'mobile_headertags_seo_install.php'; 
 $excludeFilesList[] = 'mobile_headertags_seo_uninstall.php'; 
 $excludeFilesList[] = 'mobile_login.php';
 $excludeFilesList[] = 'mobile_logoff.php';
 $excludeFilesList[] = 'mobile_password_forgotten.php';
 $excludeFilesList[] = 'mobile_popup_images.php'; 
 $excludeFilesList[] = 'mobile_popup_search_help.php';
 $excludeFilesList[] = 'mobile_product_reviews_info.php';
 $excludeFilesList[] = 'mobile_ssl_check.php';
// End iOSC Mobile

 

Can I add the exclusions, revert includes/header_tags.php, let it redetect and be ok? or will that break the db?

 

Thank you

-Dave

Link to comment
Share on other sites

Good morning Jack,

Happy to report that I have Ht SEO mostly working with iOSC. The only major part not working perfectly is the mobile_catalogue.php. To resolve I've added to /includes/header_tags.php ...

 

Given that iOSC has /mobile/includes/configure.php containing:

 

define ('FILENAME_DEFAULT', 'mobile_index.php');
define ('FILENAME_CATALOG', 'mobile_catalogue.php');

 

where 'mobile_index.php' is basically just a cover page/static mobile home page

and where 'mobile_catalogue.php' is like the classic index.php where categories and manufacturers etc reside

 

// Define specific settings per page:
switch (true) {
 // MOBILE_CATALOGUE.PHP
 case (basename($_SERVER['PHP_SELF']) === FILENAME_CATALOG):
   $id = ($current_category_id ? 'c_' . (int)$current_category_id : (($_GET['manufacturers_id'] ? 'm_' . (int)$_GET['manufacturers_id'] : '')));
   if (! ReadCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']),  $id)) {
   $pageTags_query = tep_db_query("select * from " . TABLE_HEADERTAGS . " where page_name like '" . FILENAME_CATALOG . "' and language_id = '" . (int)$languages_id . "'");
   $pageTags = tep_db_fetch_array($pageTags_query);
   $catStr = "select categories_htc_title_tag as htc_title_tag, categories_htc_desc_tag as htc_desc_tag, categories_htc_keywords_tag as htc_keywords_tag from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$current_category_id . "' and language_id = '" . (int)$languages_id . "' limit 1";
   $manStr = '';
   if (isset($_GET['manufacturers_id']) && $category_depth == 'top')
	 $manStr = "select mi.manufacturers_htc_title_tag as htc_title_tag, mi.manufacturers_htc_desc_tag as htc_desc_tag, mi.manufacturers_htc_keywords_tag as htc_keywords_tag from " . TABLE_MANUFACTURERS . " m LEFT JOIN " . TABLE_MANUFACTURERS_INFO . " mi on m.manufacturers_id = mi.manufacturers_id where m.manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' and mi.languages_id = '" . (int)$languages_id . "' limit 1";
   if ($pageTags['append_root'] || $category_depth == 'top' && ! isset($_GET['manufacturers_id']) )
   {
	 $sortOrder['title'][$pageTags['sortorder_root']] = $pageTags['page_title'];
	 $sortOrder['description'][$pageTags['sortorder_root']] = $pageTags['page_description'];
	 $sortOrder['keywords'][$pageTags['sortorder_root']] = $pageTags['page_keywords'];
	 $sortOrder['logo'][$pageTags['sortorder_root']] = $pageTags['page_logo'];
	 $sortOrder['logo_1'][$pageTags['sortorder_root_1']] = $pageTags['page_logo_1'];
	 $sortOrder['logo_2'][$pageTags['sortorder_root_2']] = $pageTags['page_logo_2'];
	 $sortOrder['logo_3'][$pageTags['sortorder_root_3']] = $pageTags['page_logo_3'];
	 $sortOrder['logo_4'][$pageTags['sortorder_root_4']] = $pageTags['page_logo_4'];
   }
   $sortOrder = GetCategoryAndManufacturer($sortOrder, $pageTags, $defaultTags, $catStr, $manStr);
   if ($pageTags['append_default_title'] && tep_not_null($tmpTags['def_title'])) $sortOrder['title'][$pageTags['sortorder_title']] = $tmpTags['def_title'];
   if ($pageTags['append_default_description'] && tep_not_null($tmpTags['def_desc'])) $sortOrder['description'][$pageTags['sortorder_description']] = $tmpTags['def_desc'];
   if ($pageTags['append_default_keywords'] && tep_not_null($tmpTags['def_keywords'])) $sortOrder['keywords'][$pageTags['sortorder_keywords']] = $tmpTags['def_keywords'];
   if ($pageTags['append_default_logo'] && tep_not_null($tmpTags['def_logo_text']))  $sortOrder['logo'][$pageTags['sortorder_logo']] = $tmpTags['def_logo_text'];
   FillHeaderTagsArray($header_tags_array, $sortOrder); 
   // Canonical URL add-on
   if (tep_not_null($cPath) || (isset($_GET['manufacturers_id']) && $category_depth == 'top'))
   {
	  $args = tep_get_all_get_params(array('action','currency', tep_session_name(),'sort','page'));
	  $canonical_url = StripSID(tep_href_link(FILENAME_CATALOG, $args, 'NONSSL', false) );
   }
   WriteCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']),  $id);
   }  
   break;

 // INDEX.PHP
...

 

But there is no description or keywords on the main mobile_catalogue.php page. Once I click on a category it works correctly; If the category is empty of products, with subcategories, its not working.... click on the subcategory or product, its fine.

 

If you give me kick in the right direction I will try to figure it out.

 

 

The other minor issue - mobile_index.php is working as it should, but I would like to change the canonical to http://www.domain.com/mobile_index.php. I tried a few different things but couldnt figure it out.

 

Any feedback greatly appreciated.

Dave

-Dave

Link to comment
Share on other sites

What you did looks like it should work. Unfortunately, I don't have any ideas as to why it isn't. If I were working on this, after the "pageTags = tep_db_fetch_array($pageTags_query); " line, I would display the results of that array to see if it is being read in correctly. If so, you know the page is being detected, the admin section is working and the problem is after that line. Otherwise it is before it.

 

There isn't anything in Header Tags to allow you to alter the canonical tag for one page. You could manually edit the "$canonical_url = StripSID(tep_href_link(FILENAME_CATALOG, $args, 'NONSSL', false) );" line as you like though.

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Hi, all

 

I just installed the Header Tags (converted from HTC).

For some reason, categories do not show right title and meta data is not being filled in. Canonical links are present, so something is working.

Product info is OK.

I checked the category and tags are filled in.

 

Any idea why category data is not being displayed?

 

Thanks,

Rudolf

Link to comment
Share on other sites

  • 2 weeks later...

i have just run W3 validating on my site and it got some errors with closing tags related to HT SEO Meta tags..

Would like to have cleaned out this errors, and have tried to search in the files where it is genereted from.

 

Is it just to add selfclosing tag to the generated tags?

 

Any quick info on witch file they are generated from or how to change?

 

 

Thanks.

 

 

 

 

Validation Output: 6 Errors

 

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

<meta name="Description" content="Allmedia - oscommerce-solution.com" >

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

 

Line 6, Column 2: start tag was here

<meta name="Description" content="Allmedia - oscommerce-solution.com" >

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

<meta name="Keywords" content="Allmedia - oscommerce-solution.com" >

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

 

Line 7, Column 2: start tag was here

<meta name="Keywords" content="Allmedia - oscommerce-solution.com" >

Line 8, Column 39: end tag for "meta" omitted, but OMITTAG NO was specified

<meta name="robots" content="noodp" >

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

 

Line 8, Column 2: start tag was here

<meta name="robots" content="noodp" >

Line 9, Column 39: end tag for "meta" omitted, but OMITTAG NO was specified

<meta name="slurp" content="noydir" >

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

 

Line 9, Column 2: start tag was here

<meta name="slurp" content="noydir" >

Line 10, Column 56: end tag for "link" omitted, but OMITTAG NO was specified

<link rel="canonical" href="http://xxxxxx/" >

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

 

Edited by www.in.no
Link to comment
Share on other sites

Validation has nothing to do with SEO so I never look at it. But it looks like the warnings could be fixed in the includes/header_tags.php file. So a line like

echo ' <meta name="Description" content="' . $header_tags_array['desc'] . '" >' . "\n";

would be changed to

echo ' <meta name="Description" content="' . $header_tags_array['desc'] . '" />' . "\n";

Support Links:

For Hire: Contact me for anything you need help with for your shop: upgrading, hosting, repairs, code written, etc.

Get the latest versions of my addons

Recommended SEO Addons

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...