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
ALT information
Further reading
Printer friendly version | |
View as PDF document | |
Send this page to a friend |
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/includes.asp"-->
<!--#include file="vsadmin/inc/languagefile.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.
If your template uses a DHTML pop-out menu or Mini Cart there is no need to delete the line < !--#include file="vsadmin/db_conn_open.asp"--> Just open vsadmin/db_conn_open.asp in Notepad and make sure you don't have a line DIM sDSN If you have that, just delete that line. You can then follow the instructions below as normal. |
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,"""",""")%>">
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/includes.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<!--#include file="vsadmin/inc/metainfo.asp"-->
...making sure they are not duplicated later in the code.
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/includes.php"?>
<?php include "vsadmin/inc/languagefile.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.
If your template uses a DHTML pop-out menu or Mini Cart there is no need to delete the line <?php include "vsadmin/db_conn_open.php"?> You can now follow the instructions below as normal |
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();
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)?>">
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/includes.php" ?>
<?php include "vsadmin/inc/languagefile.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.
- ASP version
- PHP version
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/includes.asp"-->
<!--#include file="vsadmin/inc/languagefile.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/includes.asp"-->
<!--#include file="vsadmin/inc/languagefile.asp"-->
<!--#include file="vsadmin/inc/incfunctions.asp"-->
<%
explicitid=2
%>
<!--#include file="vsadmin/inc/incproducts.asp"-->
If your template uses a DHTML pop-out menu or Mini Cart then you will only find one of the ASP includes in the main body of your site. The explicitid will still need to precede the include line eg. <%
explicitid=8
%>
<!--#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="-"
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/includes.php"?>
<?php include "vsadmin/inc/languagefile.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/includes.php"?>
<?php include "vsadmin/inc/languagefile.php"?>
<?php include "vsadmin/inc/incfunctions.php"?>
<?php
$explicitid=2;
?>
<?php include "vsadmin/inc/incproducts.php"?>
If your template uses a DHTML pop-out menu or Mini Cart then you will only find one of the PHP includes in the main body of your site. The explicitid will still need to precede the include line eg. <?php
$explicitid=8;
?>
<?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='-';
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.
Further reading on Search Engine and SEO
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.