Jump to content
Jack_mcs

Header Tags SEO

Recommended Posts

Ah... well I do not use that version, and this thread is related to the 2.2d version so it really didn't belong here. sorry Jack

 

Have you tested any of this with the seo url 2.2 version??


-Dave

Share this post


Link to post
Share on other sites

I have successfully, in the past used this Header tags SEO and it worked great. Recently i upgraded OSC to 2.3.3 and had to update header tags too. Sadly i get this error... i am about ready to give up on osc all together now because osc stores get no hits or traffic without SEO optimization... its got me really depressed and i am wondering if anyone has same issue or could help me figure out the proglem.

I have new store installed for simplicity

i have osc 2.3.3

i install header tags seo for new store only

and i still get the error..

 

"Warning: call_user_func() expects parameter 1 to be a valid callback, function 'header_tags_reset_cache' not found or invalid function name in /home/sacredor/public_html/om/includes/functions/general.php on line 1281"

 

ScreenShot: www.sacredorigin.com/error.jpg

Suggestions?

Share this post


Link to post
Share on other sites

"Warning: call_user_func() expects parameter 1 to be a valid callback, function 'header_tags_reset_cache' not found or invalid function name in /home/sacredor/public_html/om/includes/functions/general.php on line 1281"

That error is usually caused by not uploading the included header tags files.

 

By the way, the lack of traffic isn't because it is an oscommerce shop, necessairly. All shops, regardless of the type, have to be SEO'ed. Some may come with a little more code that allows that but in 2.3 there is basic title and meta tags code that will do that. So if a sites pages aren't listing well, it's usually because they have not been optimized properly and there's no getting around putting in the effort to have that happen.

Share this post


Link to post
Share on other sites

Hi,

 

What do I need to do if my OSCommerce installation has product.php instead of product_info.php?

 

I've tried selecting Automatically Add Pages or even manually adding the page to the database, but it never appears in the page_control select file list.

 

Any help much appreciated.

Share this post


Link to post
Share on other sites

If product.php has the same code as product_info.php, then you make the same changes to it as in the instructions. Otherwise, the changes to the <head> section may be all that is needed.

Share this post


Link to post
Share on other sites

Re pasted the code for the breadcrumb trail in to application_top.php

and the warning went away :)

 

BlackCap

 

had same problem, dunno why my previous code was :

 

/*** Begin Header Tags SEO ***/

// add category names or the manufacturer name to the breadcrumb trail

if (isset($cPath_array)) {

for ($i=0, $n=sizeof($cPath_array); $i<$n; $i++) {

$categories_query = tep_db_query("select categories_htc_title_tag from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$cPath_array[$i] . "' and language_id = '" . (int)$languages_id . "' LIMIT 1");

if (tep_db_num_rows($categories_query) > 0) {

$categories = tep_db_fetch_array($categories_query);

$breadcrumb->add($categories['categories_htc_title_tag'], tep_href_link(FILENAME_DEFAULT, 'cPath=' . implode('_', array_slice($cPath_array, 0, ($i+1)))));

} else {

break;

}

}

} elseif (isset($HTTP_GET_VARS['manufacturers_id'])) {

$manufacturers_query = tep_db_query("select manufacturers_htc_title_tag from " . TABLE_MANUFACTURERS_INFO . " where manufacturers_id = '" . (int)$_GET['manufacturers_id'] . "' AND languages_id = '" . (int)$languages_id . "' LIMIT 1");

if (tep_db_num_rows($manufacturers_query)) {

$manufacturers = tep_db_fetch_array($manufacturers_query);

$breadcrumb->add($manufacturers['manufacturers_htc_title_tag'], tep_href_link(FILENAME_DEFAULT, 'manufacturers_id=' . $_GET['manufacturers_id']));

}

}

 

// add the products model to the breadcrumb trail

if (isset($HTTP_GET_VARS['products_id'])) {

$products_query = tep_db_query("select pd.products_head_title_tag from " . TABLE_PRODUCTS . " p left join " . TABLE_PRODUCTS_DESCRIPTION . " pd on p.products_id = pd.products_id where p.products_id = '" . (int)$_GET['products_id'] . "' and pd.language_id ='" . (int)$languages_id . "' LIMIT 1");

if (tep_db_num_rows($model_query)) {

$model = tep_db_fetch_array($model_query);

$breadcrumb->add($products['products_head_title_tag'], tep_href_link(FILENAME_PRODUCT_INFO, 'cPath=' . $cPath . '&products_id=' . $_GET['products_id']));

}

}

/*** End Header Tags SEO ***/

 

still don't know from where it came from, anyway, repaste and now its ok !

Share this post


Link to post
Share on other sites

Hi Jack,

 

Have you ever considered adding the ability to add the Products Price to the Title tag?

 

Let's say I know that I have the lowest price out there. I would like Google to display the price in the SERP's. My product pages rank well (top 5 usually), and displaying the low price should encourage the user to click my link. Especially now considering that Google has turned Google Base/Shopping into a paid Adwords campaign. While my products are listed in the organic results, some users might just click an Adwords listing that displays a listing of a product with an image and price.

 

I'm Interested in your thoughts.

Share this post


Link to post
Share on other sites

It's not against the rules to do that, as far as I know, though I doubt that it would do any good. I don't think they would allow the currency symbol but even if they did, it's not something someone would search for. So you would just be relying on the links to show up where someone can see them due to some other search. At that point, if you are already in the top 5, I can't see it making much difference. Also keep in mind that there is no guarantee as to when they look at your site. For higher ranked sites, they do frequent more often but they may not. So let's say you put an item on sale for $10 and it shows up in the listings but then the sale ends and the price reverts to $20. The listing will still say $10 until they revisit the page so you could end up with angry customers.

Share this post


Link to post
Share on other sites

It's not against the rules to do that, as far as I know, though I doubt that it would do any good. I don't think they would allow the currency symbol but even if they did, it's not something someone would search for. So you would just be relying on the links to show up where someone can see them due to some other search. At that point, if you are already in the top 5, I can't see it making much difference. Also keep in mind that there is no guarantee as to when they look at your site. For higher ranked sites, they do frequent more often but they may not. So let's say you put an item on sale for $10 and it shows up in the listings but then the sale ends and the price reverts to $20. The listing will still say $10 until they revisit the page so you could end up with angry customers.

 

Thanks for the reply. The main strategy that I'm shooting for is to let potential customer know what my price is on the product, without having to click on my listing in the organic results. They may see 10 other stores with the same product, but not know who has the lowest price.

Share this post


Link to post
Share on other sites

Hi Jack

 

I have installed this contribution a few times without any problems but this time around when I installed it, my Admin left side menus are all over the place. They have lost the headings and formatting. What have I done wrong and where possibly should I look to fix it.

 

It is for a brand new V2.3.3 with no other modules installed. This was the very first one.

 

Thanks

Share this post


Link to post
Share on other sites

You've made a mistake somewhere. If you used the pre-2.3 version it would do that.

Edited by Jack_mcs

Share this post


Link to post
Share on other sites

Hi, sorry bad english

I'm not a pro, I made a modification in includes/header_tags.php, I added this code

// filter name
 if (isset($HTTP_GET_VARS['filter_id']) && tep_not_null($HTTP_GET_VARS['filter_id'])) {
if (isset($HTTP_GET_VARS['manufacturers_id']) && !empty($HTTP_GET_VARS['manufacturers_id'])) {
  $db_query = tep_db_query("select categories_name as filter_name from " . TABLE_CATEGORIES_DESCRIPTION . " where categories_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'");
} elseif ($current_category_id) {
  $db_query = tep_db_query("select manufacturers_name as filter_name from " . TABLE_MANUFACTURERS . " where manufacturers_id = '" . (int)$HTTP_GET_VARS['filter_id'] . "'");
}
   $filter = tep_db_fetch_array($db_query);
}

 

under Canonical URL add-on and before the break;

and in the end I modified this

<title>' . $header_tags_array['title'] . ' ' . $filter['filter_name'] . '</title>

to put the filter name after the category or manufacturer name, it's work but to be sure if If somebody could look and tel me if it's ok

thinks

Share this post


Link to post
Share on other sites

Hello everybody, hi jack, I've just installed the contribution on my shop www.solerjoyeros.es, some features are working correctly but in some places it's not showing title, meta description and meta keywords.

 

Categories and subcategories are working fine (http://www.solerjoyeros.es/relojes-modernos-mujer-c-58_66_70.html), but in the other hand, at manufacturers is not showing anything, (http://www.solerjoyeros.es/tommy-hilfiger-relojes-m-23.html)

 

In specials products some products are correct (http://www.solerjoyeros.es/relojes-modernos-mujer/reloj-mark-maddox-mm3006-05-p-537.html)

 

and others don't (http://www.solerjoyeros.es/relojes-clasicos-mujer/reloj-racer-211580-p-488.html).

 

I've run the test at index and it shows:

 

languages in the Header Tags table are: 2 ( Espanol ). languages in the Header Tags table are: 3 ( English ). Title and Meta Tag results for index.php explain Espanol From Site: Title -> Meta Description -> Meta Keywords -> From Settings: Title -> Joyeria Meta Description -> Joyeria SOLER JOYEROS Meta Keywords -> joyeria Results of scan: index.php is missing Header Tags code or it is not installed correctly. Verify that Fill Tags has been ran and that the root checkbox or the default checkboxes have been checked in Page Control.

 

I've checked the code and verify running fill tag, and can't find a solution.

Share this post


Link to post
Share on other sites

@@sarutobi There's a problem with your database and/or files with regards to the type of charset is being used. Those ? in the category box indicates that. That may, or may not, be causing your problems with Header Tags but they should be taken care of first. You can post in the general forum for help with that since it is not a Header Tags issue. As for the Header Tags problems, without seeing the admin and files I can't say what is wrong. There is a fix for the manufacturers posted here not too long ago.

Share this post


Link to post
Share on other sites

Right,

 

Please can you tell me STEP BY STEP what I need to do to get this to work!

 

I do not have a product_info.php page, it is product.php

 

All my pages have the default description/keywords.

 

What I want is the individual product pages e.g. http://www.bringingitalltogether.co.uk/product.php?products_id=262 to pull the meta title, meta keywords and meta description from the database fields I have just painstakingly edited (1800+ products).

Share this post


Link to post
Share on other sites

I can't offer individual support here for changed shops since there would be request after request posted. There are instructions and completed files included in the package. If they don't match your shop, it is up to you to figure it out or to pay someone to install it for you.

Share this post


Link to post
Share on other sites

hello,

 

oscommerce 2.3.3

header tags seo 3.8

 

I am not sure if I am in the right spot.

 

in the admin section HT Seo> Keywords.

I noticed that some keywords being searched for were not being found.

 

so doing some testing on our homepage in the header.php section I have:

 

 

  <div id="searchbar">
<form action="advanced_search_result.php" method="GET">
<input type="text" name="keywords">
<input type="submit" value="Product Search">
</form>
</div>

 

 

when I use this for let's say search for "9000"

 

advanced_search_results.php

 

comes up stating there are no products to be found.

 

now if I hit the search button again

advanced_search.php

comes up and if I reenter that same product"9000"

10 products or so come up as results.

 

ideally we would not want the customer to search twice for this, I tried to

replacing advanced_search_result.php with advanced_search.php

in header.php

 

but the customers will have to search twice..

 

 

thanks,

craig

Share this post


Link to post
Share on other sites

@@sarutobi There's a problem with your database and/or files with regards to the type of charset is being used. Those ? in the category box indicates that. That may, or may not, be causing your problems with Header Tags but they should be taken care of first. You can post in the general forum for help with that since it is not a Header Tags issue. As for the Header Tags problems, without seeing the admin and files I can't say what is wrong. There is a fix for the manufacturers posted here not too long ago.

 

Hi Jack, thanks for answering so quick, sorry but I don't know what you mean with "Those ? in the category box indicates that", I wonder why the type of charset is producing errors in some files and it doesn't in others, thanks in advance

Share this post


Link to post
Share on other sites

@@zpupster The Header Tags code shouldn't cause that problem. You can replace the advanced-search file with the original to see if it still exists. If it does, then the problem is in your shop and you should post your question in the general suppost forum. If the problem is still there and the only difference between the two files is the Header Tags code, then there must be a mistake in the changed you made. If you used the included one, which it sounds like you did, then that should work. If not, then the problem is elsewhere in the shop.

Share this post


Link to post
Share on other sites

Hi Jack, thanks for answering so quick, sorry but I don't know what you mean with "Those ? in the category box indicates that", I wonder why the type of charset is producing errors in some files and it doesn't in others, thanks in advance

When I view your site there are question marks in the category box and elsewhere on the page. For example, one category reads as Relojes Cl?sicos Mujer.

Share this post


Link to post
Share on other sites

When I view your site there are question marks in the category box and elsewhere on the page. For example, one category reads as Relojes Cl?sicos Mujer.

 

I see, I suppose it's because of the language, I don't see any question mark, I figured out where is the real problem but now I have to wonder why does it happen, the includes/application_top.php file has a part of the code like this:

 

// calculate category path
if (isset($HTTP_GET_VARS['cPath'])) {
$cPath = $HTTP_GET_VARS['cPath'];
} elseif (isset($HTTP_GET_VARS['products_id']) && !isset($HTTP_GET_VARS['manufacturers_id'])) {
$cPath = tep_get_product_path($HTTP_GET_VARS['products_id']);
} else {
$cPath = '100';
}

 

If I delete the value, those page which had errors start to work correctly but the homepage of my site and left menu get different,

Edited by sarutobi

Share this post


Link to post
Share on other sites

Someone has altered your code to work a certain way. Using actual category ID's like that in the code is typical of many template designers, and not good by the way. But that isn't anything to do with Header Tags. It will affect the Header Tags code but you would have to alter one or the other to get it to work correctly.

Share this post


Link to post
Share on other sites

Howdy,

Jack I'd like to ask for a bit of input before testing this. I'm tweaking header tags to sort out a known bug when iOSC Mobile is installed. On mobile_product_reviews.php and mobile_product_reviews_info.php I am not seeing header tags with product specifics in the description and keywords (like on the desktop side). Could you tell me if the following is correct, and if I am missing anything else? or if this will just break things please say so.

 

/catalog/includes/header_tags.php

1. Make sure the local file matches your remote version, make a safe backup, then

 

FIND

// PRODUCT_INFO.PHP
// PRODUCT_REVIEWS.PHP
// PRODUCT_REVIEWS_INFO.PHP
// PRODUCT_REVIEWS_WRITE.PHP
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_INFO):
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS):
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_INFO):
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_WRITE):
switch (true)
{
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_INFO):		 $filename = FILENAME_PRODUCT_INFO;		 break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS):	 $filename = FILENAME_PRODUCT_REVIEWS;	 break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_INFO): $filename = FILENAME_PRODUCT_REVIEWS_INFO; break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_WRITE): $filename = FILENAME_PRODUCT_REVIEWS_WRITE; break;
 default: $filename = FILENAME_PRODUCT_INFO;
}

 

Replace with

// PRODUCT_INFO.PHP
// PRODUCT_REVIEWS.PHP
// PRODUCT_REVIEWS_INFO.PHP
// PRODUCT_REVIEWS_WRITE.PHP
// MOBILE_PRODUCT_REVIEWS.PHP
// MOBILE_PRODUCT_REVIEWS_INFO.PHP
// MOBILE_PRODUCT_REVIEWS_WRITE.PHP
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_INFO):
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS):
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_INFO):
case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_WRITE):
// Begin iOSC
case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS):
case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS_INFO):
case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS_WRITE):
// End iOSC
switch (true)
{
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_INFO):		 $filename = FILENAME_PRODUCT_INFO;		 break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS):	 $filename = FILENAME_PRODUCT_REVIEWS;	 break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_INFO): $filename = FILENAME_PRODUCT_REVIEWS_INFO; break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_PRODUCT_REVIEWS_WRITE): $filename = FILENAME_PRODUCT_REVIEWS_WRITE; break;
// Begin iOSC
 case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS):	 $filename = FILENAME_MOBILE_PRODUCT_REVIEWS;	 break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS_INFO): $filename = FILENAME_MOBILE_PRODUCT_REVIEWS_INFO; break;
 case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS_WRITE): $filename = FILENAME_MOBILE_PRODUCT_REVIEWS_WRITE; break;
// Begin iOSC
 default: $filename = FILENAME_PRODUCT_INFO;
}

 

Then, if exists, delete or comment out the following 3 bits

 

// mobile_product_reviews_write.php
case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS_WRITE):
if (! ReadCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']), '')) {
 $header_tags_array = tep_header_tag_page(FILENAME_MOBILE_PRODUCT_REVIEWS_WRITE);
 WriteCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']), '');
}
break;

 

// mobile_product_reviews.php
case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS):
if (! ReadCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']), '')) {
 $header_tags_array = tep_header_tag_page(FILENAME_MOBILE_PRODUCT_REVIEWS);
 WriteCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']), '');
}
break;

 

// mobile_product_reviews_info.php
case (basename($_SERVER['PHP_SELF']) === FILENAME_MOBILE_PRODUCT_REVIEWS_INFO):
if (! ReadCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']), '')) {
 $header_tags_array = tep_header_tag_page(FILENAME_MOBILE_PRODUCT_REVIEWS_INFO);
 WriteCacheHeaderTags($header_tags_array, basename($_SERVER['PHP_SELF']), '');
}
break;

 

Does a change need to be made here as well?

/admin/includes/functions/header_tags.php

 

function GetBaseFiles()
{
$baseFiles = array();
$baseFiles = array(0 => 'index.php',
				 1 => 'product_info.php',
				 2 => 'product_reviews.php',
				 3 => 'product_reviews_info.php',
				 4 => 'product_reviews_write.php',
				 5 => 'specials.php');
return $baseFiles;
}

 

Upload the admin file, then the other...

 

 

Thank you for any feedback!

Edited by Roaddoctor

-Dave

Share this post


Link to post
Share on other sites

The first two look OK. The last is as you say. You'll have to add them as base files or when you visit Page Control, the code will add them back into the inlcudes/header_tags.php file. I don't know if adding them that way will actually work since there is code in the function file that may need changing but it is a good start, I think.

Share this post


Link to post
Share on other sites

@@Jack_mcs already have ultimate_SEO_urls_5 installed, wil this be a problem if header tags is installed also?

 

Timmy C

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

×