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
- Static URLs
- Dynamic title and meta description tags on static URLs
- ALT information
- Category identifiers
- Product name for product detail dynamic pages
- Product name in <h1> tags
- Further reading
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:
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,"""",""")%>">
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,"""",""")%>">
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.
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('"','"',$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('"','"',$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.
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.
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.
![]()
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="-"
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.
![]()
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='-';
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.
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.
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.
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.
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.
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.

