This is based on the AllProds 2.3
I found that I have better luck in search engines with my category pages than individual product pages - probably due to all the alt and title text so I wanted something that listed all categories and subcategories on a page - with keyword loaded links... for spiders, not visitors. Just as the AllProds contribution displays a list, it also creates links for the spiders to follow... links which have keywords within them which are produced from your product info and in my case... produced from your category/subcategory names.
This contribution produces one page with a list of your categories and subcategories. You then link to this page on all possible pages essentially allowing any spider to crawl your site through keyword-loaded links/URLs.
This is my first contribution as I'm a rookie at php, so please be kind. This is based on the AllProds contribution which I also run simulataneously and thank the contributors for!
Legend: 
Download

Report
I've updated allcategories.php so that now it works with multilingual stores.
Also, added Continue button to the bottom of allcategories.php.
There is also a definition was missing from filenames.php.
Complete package with Lee's [misterbling] support for HTC contribution, Martin Gluckman's [martingluckman] support for category images and Irina's [Irina] support for multilingual stores.
The very popular header tags controller mod integrated with category descriptions a while back. So if your descriptions are off change in allcategories.php
all occurances of
categories_description
to
categories_htc_description
File attached
I've updated allcategories.php so that it shows the category image and also it formats the URLS in a way that is friendly with the Ulitmate SEO for URLS's add on.
You can view a demo of this here:
http://www.vedicbooks.net/allcategories.php
seperator bitween results
box around results
ps - I got this from a much earlier mod and just altered it a bit so it had less crap and more straight links, but I *think* if you submit this its better than the original.. dont quote me.
Make this into a php file...
<?php
/*
$Id: allcategories.php,v 1.0 2003/30/04
osCommerce, Open Source E-Commerce Solutions
http://www.oscommerce.com
Copyright (c) 2003 osCommerce
Copyright (c) 2003 HMCservices
Released under the GNU General Public License
*/
require('includes/application_top.php');
include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CATEGORIES);
// Set number of columns in listing
define ('NR_COLUMNS', 1);
//
$breadcrumb->add(HEADING_TITLE, tep_href_link(FILENAME_CATEGORIES, '', 'NONSSL'));
?>
<!doctype html public "-//W3C//DTD HTML 4.01 Transitional//EN">
<html <?php echo HTML_PARAMS; ?>>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<?php echo CHARSET; ?>">
<?php
// BOF: WebMakers.com Changed: Header Tag Controller v1.0
// Replaced by header_tags.php
if ( file_exists(DIR_WS_INCLUDES . 'header_tags.php') ) {
require(DIR_WS_INCLUDES . 'header_tags.php');
} else {
?>
<title>DIY, HAND TOOLS, POWER TOOLS, SECURITY, ACCESSORIES AND MORE</title>
<?php
}
// EOF: WebMakers.com Changed: Header Tag Controller v1.0
?>
<base href="<?php echo (getenv('HTTPS') == 'on' ? HTTPS_SERVER : HTTP_SERVER) . DIR_WS_CATALOG; ?>">
<link rel="stylesheet" type="text/css" href="stylesheet.css">
</head>
<body marginwidth="0" marginheight="0" topmargin="0" bottommargin="0" leftmargin="0" rightmargin="0">
<?php
$languages_query = tep_db_query("select languages_id, name, code, image, directory from " . TABLE_LANGUAGES . " order by sort_order");
while ($languages = tep_db_fetch_array($languages_query)) {
$languages_array[] = array('id' => $languages['languages_id'],
'name' => $languages['name'],
'code' => $languages['code'],
'image' => $languages['image'],
'directory' => $languages['directory']);
}
for ($i=0; $i<sizeof($languages_array); $i++) {
$this_language_id = $languages_array[$i]['id'];
$this_language_name = $languages_array[$i]['name'];
$this_language_code = $languages_array[$i]['code'];
$this_language_image = $languages_array[$i]['image'];
$this_language_directory = $languages_array[$i]['directory'];
echo " <tr>n";
$categories_query = tep_db_query("SELECT categories_id, categories_name FROM " . TABLE_CATEGORIES_DESCRIPTION . " WHERE language_id = $this_language_id ORDER BY categories_name");
$categories_array = array();
while($categories = tep_db_fetch_array($categories_query)) {
$categories_array[] = array('id' => $categories['categories_id'],
'name' => $categories['categories_name']);
}
for ($j=0; $j<NR_COLUMNS; $j++) {
echo " <td class=main valign="top">n";
for ($k=$j; $k<sizeof($categories_array); $k+=NR_COLUMNS) {
$this_categories_id = $categories_array[$k]['id'];
$this_categories_name = $categories_array[$k]['name'];
echo " <a href="" . tep_href_link('index.php', '' . "cPath=" . $categories_id . $this_categories_id . (($this_language_code == DEFAULT_LANGUAGE) ? '' : ('&language=' . $this_language_code)), 'NONSSL', false) . "">" . $this_categories_name . "</a>n";
}
echo " </td>n";
}
echo " </tr>n";
}
?>
</body>
</html>
and it should be a nice links page for google etc.
All files here are the same except the README where I updated the instructions for a forgotten file definition in application_top.php
default.php is utilized for this contribution so you can assign default.php to FILENAME_CATEGORIES_INFO or simply edit the catalog/allcategories.php file on line 97 to change FILENAME_CATEGORIES_INFO to FILENAME_DEFAULT which is already part of osc. Your choice. Just noting that in the README to reduce confusion.
This is based on the AllProds 2.3
I found that I have better luck in search engines with my category pages than individual product pages - probably due to all the alt and title text so I wanted something that listed all categories and subcategories on a page - with keyword loaded links... for spiders, not visitors. Just as the AllProds contribution displays a list, it also creates links for the spiders to follow... links which have keywords within them which are produced from your product info and in my case... produced from your category/subcategory names.
This contribution produces one page with a list of your categories and subcategories. You then link to this page on all possible pages essentially allowing any spider to crawl your site through keyword-loaded links/URLs.
This is my first contribution as I'm a rookie at php, so please be kind. This is based on the AllProds contribution which I also run simulataneously and thank the contributors for!