Shopping cart software for: Wordpress · Dreamweaver · CSS · Expression Web · Generic Version · Responsive Design · Developer License · Shopping Cart · Mobile

Call sales now USA sales 1-718-887-7598 UK sales 0141 416 3414
Find us on FacebookFollow us on TwitterJoin us on LinkedinView ECT YouTube channelEcommerce Templates Google Plus
Connect with us on:
Home | Overview | Features | Buy Now | Live Stores | Support | Affiliates | Testimonials | Free Downloads | News | Hosting | Demo Store | Contact

Ecommerce Templates > General Help > Search engine friendly options

Search engine friendly features

We believe we have most angles covered when it comes to offering search engine friendly shopping cart software. Ecommerce templates offers the ability to use static pages which are easy to spider by visiting search engines as well as unique titles and meta tags for category, product and product detail pages and ALT information for all the product images. To fully benefit from all our search engine features, you will need a minimum version of 4.1.1 and the updater is available here if necessary.


Dynamic title and meta description tags

From version 4.1.1 it is possible to dynamically generate the title and meta description tags for your categories, product and product detail pages. Not only are they dynamically generated but you can also add you own unique information such as company name to the title tag. They are used on dynamic pages, for static pages you can add your own meta and title tags page by page. The set up details are outlined below:

ASP Version

The pages you are going to want to change are...
categories.asp
products.asp
proddetail.asp

Open each of these in turn and go to HTML view. About halfway down the page you should see a bunch of "include" files, something like this...

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<!--#include file="vsadmin/inc/incproducts.asp"-->

You will want to delete the first one, the db_conn_open.asp line.

Then, at the very top of the file before the first <html> tag add that db_conn_open line along with the metainfo.asp include line like this...

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->
<html>

Now repeat this with each of the 3 files categories.asp, products.asp and proddetail.asp

Now, on your categories.asp AND the products.asp pages you can change the page title tag to something like this...

<title>Bob's widget store: <%
if topsection<>"" then response.write topsection & ", "
response.write sectionname%></title>

Also on the categories page, if you use a category description you might want to set the meta description tag to this...

<meta name="Description" content="<%=Replace(sectiondescription,"""","&quot;")%>">

The information available to the proddetail.asp page is slightly different. On that page you can change your page title to...

<title>Bob's widget store: <%= productname & ", " & sectionname & ", " & productid %></title>

You might not want to include the product ID, in which case you can use...

<title>Bob's widget store: <%= productname & ", " & sectionname %></title>

For the meta description on the proddetail.asp page you can use...

<meta name="Description" content="<%=Replace(productdescription,"""","&quot;")%>">

Note If you are using the category identifier feature you will also need to place the includes.asp line at the top of the code like this

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->

Multiple language set up
If you are using the multiple language set up then you will need these include lines before the <html> tag:

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->

...making sure they are not duplicated later in the code.

Top of page

PHP Version

The pages you are going to want to change are...

categories.php
products.php
proddetail.php

Open each of these in turn and go to HTML view. About halfway down the page you should see a bunch of "include" files, something like this...

<?php include "vsadmin/db_conn_open.php"?>
<?php include "vsadmin/inc/languagefile.php"?>
<?php include "vsadmin/includes.php"?>
<?php include "vsadmin/inc/incfunctions.php"?>
<?php include "vsadmin/inc/incproducts.php"?>

You will want to delete the first one, the db_conn_open.php line.

Then, at the very top of the file before the first <html> tag you should already have a couple of lines of code. Now add the db_conn_open line along with the metainfo.php include line like this...

<?php
session_cache_limiter('none');
session_start();
ob_start();
include "vsadmin/db_conn_open.php";
include "vsadmin/inc/metainfo.php";?><html>

Now repeat this with each of the 3 files categories.php, products.php and proddetail.php

Now, on your categories.php AND the products.php pages you can change the page title tag to something like this...

<title>Bob's widget store: <?php
if($topsection != "") print $topsection . ", ";
print $sectionname?></title>

Also on the categories page, if you use a category description you might want to set the meta description tag to this...

<meta name="Description" content="<?php print str_replace('"','&quot;',$sectiondescription)?>">

The information available to the proddetail.php page is slightly different. On that page you can change your page title to...

<title>Bob's widget store: <?php
print $productname . ", " . $sectionname . ", " . $productid;
?></title>

You might not want to include the product ID, in which case you can use...

<title>Bob's widget store: <?php
print $productname . ", " . $sectionname;
?></title>

For the meta description on the proddetail.php page you can use...

<meta name="Description" content="<?php print str_replace('"','&quot;',$productdescription)?>">

Note If you are using the category identifier feature you will also need to place the includes.asp line at the top of the code like this

<?php
session_cache_limiter('none');
session_start();
ob_start();
include "vsadmin/db_conn_open.php";
include "vsadmin/includes.php";
include "vsadmin/inc/metainfo.php";?><html>

Multiple language set up
If you are using the multiple language set up then you will need these include lines before the <html> tag:

<?php include "vsadmin/db_conn_open.php" ?>
<?php include "vsadmin/inc/languagefile.php"?>
<?php include "vsadmin/includes.php" ?>
<?php include "vsadmin/inc/incfunctions.php" ?>
<?php include "vsadmin/inc/metainfo.php" ?>

...making sure they are not duplicated later in the code.

Top of page

Converting dynamic to static URLs

The default URL for a products page would be something like www.yoursite.com/products.asp?id=2 but it is possible to change this to something even more search engine friendly like www.yoursite.com/productname.asp. You can also do the same for the category pages and the product detail, the information is outlined below.

ASP version

Make a copy of products.asp and call it say bobswidgets.asp
Now, open this page in notepad or your web editor and go to HTML view. Now, you should see a set of include files like this:

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<!--#include file="vsadmin/inc/incproducts.asp"-->

Now just add the variable to specify the category before the incproducts include like this for ASP

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/inc/includes.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<%
explicitid=2
%>
<!--#include file="vsadmin/inc/incproducts.asp"-->

You can now do the same for categories.asp and proddetail.asp by adding the explicitid before:

<!--#include file="vsadmin/inc/inccategories.asp"-->

and

<!--#include file="vsadmin/inc/incproddetail.asp"-->

As the explicit id for a product detail page is a product reference, you have to enclose this in quotes like this:
explicitid="yourprodref"

You can get the variable you need by browsing your site and checking the particular page URL. For example if your URL for a widget looks like this:

www.yoursite.com/products.asp?id=14

...then you would want to set

<%
explicitid=14
%>

If you don't want to change all your pages to static URLs then the URL can be in the form of http://www.yoursite.com/products.asp?cat=14 due to the fact that Google may not give as much weight to links which contain this generic "id" parameter.

In version 4.8.4 we added the possibility to define the static URL in the categories admin page after following the instructions above. This is an optional feature and if you want to use it just place the name of the static page you have created.

Static categories

This now means that your menu system won't pick up on the dynamic URLs as the store is browsed. It also works with the DHTML menu and avoids duplicate URLs / content on the store.

In version 4.9.6 we added linked product detail static pages where there is now an option in the product admin page "Has static page" which if checked will cause the product detail page link to take the form. . .
the_product_name.asp
. . . where the page name will be made of the product name, in lower case with spaces replaced by underscores and non alphanumeric characters removed. It will be your responsibility to create the static detail page of that name using the method above.

In version 5.1 we added the ability to change the underscore to the character of you choice so if you prefer the layout of the-product-name.asp then you will need to add this to includes.asp

urlfillerchar="-"

Top of page

PHP version

Make a copy of products.php and call it say bobswidgets.php
Now, open this page in notepad or your web editor and go to HTML view. Now, you should see a set of include files like this:

<?php include "vsadmin/db_conn_open.php"?>
<?php include "vsadmin/inc/languagefile.php"?>
<?php include "vsadmin/includes.php"?>
<?php include "vsadmin/inc/incfunctions.php"?>
<?php include "vsadmin/inc/incproducts.php"?>

Now just add the variable to specify the category before the incproducts include like this for PHP

<?php include "vsadmin/db_conn_open.php"?>
<?php include "vsadmin/inc/languagefile.php"?>
<?php include "vsadmin/includes.php"?>
<?php include "vsadmin/inc/incfunctions.php"?>
<?php
$explicitid=2;
?>
<?php include "vsadmin/inc/incproducts.php"?>

You can now do the same for categories.php and proddetail.php by adding the explicitid before:

<?php include "vsadmin/inc/inccategories.php"?>

and

<?php include "vsadmin/inc/incproddetail.php"?>

As the explicit id for a product detail page is a product reference, you have to enclose this in quotes like this:
$explicitid="yourprodref";

You can get the variable you need by browsing your site and checking the particular page URL. For example if your URL for a widget looks like this:

www.yoursite.com/products.php?id=14

...then you would want to set

<?php
$explicitid=14;
?>

If you don't want to change all your pages to static URLs then the URL can be in the form of http://www.yoursite.com/products.php?cat=14 due to the fact that Google may not give as much weight to links which contain this generic "id" parameter.

In version 4.8.4 we added the possibility to define the static URL in the categories admin page after following the instructions above. This is an optional feature and if you want to use it just place the name of the static page you have created.

Static categories

This now means that your menu system won't pick up on the dynamic URLs as the store is browsed. It also works with the DHTML menu and avoids duplicate URLs / content on the store.

In version 4.9.6 we added linked product detail static pages where there is now an option in the product admin page "Has static page" which if checked will cause the product detail page link to take the form. . .
the_product_name.php
. . . where the page name will be made of the product name, in lower case with spaces replaced by underscores and non alphanumeric characters removed. It will be your responsibility to create the static detail page of that name using the method above.

In version 5.1 we added the ability to change the underscore to the character of you choice so if you prefer the layout of the-product-name.php then you will need to add this to includes.php

$urlfillerchar='-';

Top of page

Dynamic title and meta description tags on static pages

One of the advantages of setting up static pages is that you can add your own meta and title tags manually page by page. It is however possible to use dynamic title and meta description tags if you prefer. The method is the same as described above but with a couple of small differences. You will need to define the explicitid, catid or prodid somewhere before the metainfo include line so for the ASP version the top of the code would look something like this

<%
explicitid="prodref"
prodid="prodref"
%>
<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->

For the PHP version like this

<?php
session_cache_limiter('none');
session_start();
ob_start();
include "vsadmin/db_conn_open.php";
include "vsadmin/inc/languagefile.php";
include "vsadmin/includes.php";
include "vsadmin/inc/incfunctions.php";
$explicitid="prodref";
$prodid="prodref";
include "vsadmin/inc/metainfo.php";?>

If you are setting this up on a categories page, you'd want to use catid rather than prodid. For the manufacturers page that would be manid.

Top of page

ALT Information

By default all the product pictures and product detail pictures will have the ALT information dynamically generated by the value you have added for the product name. So if your product name is "Blue Widget" then when your mouse passes over the picture the name "Blue Widget" will appear.

Top of page

Category identifiers

In Version 5.7.0 it is possible to change the category identifier from a number to text, for example from products.asp?cat=29 to products.asp?cat=Laser+Printers

To add this feature you will need the following in vsadmin/includes.asp

usecategoryname=TRUE

or in vsadmin/includes.php for the PHP version

$usecategoryname=TRUE;

If you are using the dynamic title and meta tags feature you will need to make sure that the includes.asp / includes.php line comes before the metainfo.asp / metainfo.php line at the top of the code, like this

ASP Version

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->

PHP Version

<?php
session_cache_limiter('none');
session_start();
ob_start();
include "vsadmin/db_conn_open.php";
include "vsadmin/includes.php";
include "vsadmin/inc/metainfo.php";?><html>

...and then make sure you have removed the includes line from further down the code.

Top of page

Product name in product detail dynamic pages

If you are not using static pages and want to include the product name in the URL of the detail page such as

/proddetail.asp?prod=My-Product-Name

rather than

/proddetail.asp?prod=prodid

add the following to vsadmin/includes.asp

usepnamefordetaillinks=TRUE

When using this parameter you can set an optional replacement character for spaces. For instance if you set...

detlinkspacechar="-"

Then the product name "My Test Product" would result in "My-Test-Product"

or to vsadmin/includes.php

$usepnamefordetaillinks=TRUE;

When using this parameter you can set an optional replacement character for spaces. For instance if you set...

$detlinkspacechar="-";

Then the product name "My Test Product" would result in "My-Test-Product"

For the ASP version you will need to move the ASP include lines to the top of the code before the opening HTML tag like this

<!--#include file="vsadmin/db_conn_open.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/includes.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->
<html>

... and make sure they are not duplicated later in the code.

For the PHP version you will only need these include lines at the top

<?php
session_cache_limiter('none');
session_start();
ob_start();
include "vsadmin/db_conn_open.php";
include "vsadmin/inc/languagefile.php";
include "vsadmin/includes.php";
include "vsadmin/inc/metainfo.php";?>

...again making sure they are not duplicated later on.

Important Note: When using this system, all product names must be unique or it will be impossible to view some of your products. Also, when using the optional space replacement character, you cannot then use that character in product names as again it will make it impossible to find those products in the database - eg you cannot have hyphens in your product names if you choose to use detlinkspacechar="-"
Version 6.2.4 minimum required.

Top of page

Product name in <h1> tags

If you are using dynamic product detail pages you can add the product name on your page between <h1> tags. You will need the metainfo include line at the top of the code as in the examples above and then where you want the heading to appear, add this for the ASP version

<h1><%= productname%></h1>

or for the PHP version

<h1><?php print $productname;?></h1>

Unless you want huge black lettering on your page, you'll probably want to add a css class eg

<h1 class="proddet"><?php print $productname;?></h1>

and then in your css file your formatting, here's a very simple example

h1.proddet{
font-size:1.2em;
}

We have set up an example on our demo store to show how it can look.

Top of page

Further reading

We also have some tips about search engine optimization (SEO) and an overview on how the search engines work. This is only very general information and we do recommend reading up on the subject. A great place to start would be on Webmaster World.

Top of page