[ic] Rewriting URLs for SEO purposes - help!

Mike Heins mike at perusion.com
Mon Apr 11 23:34:59 EDT 2005


Quoting Cameron G (ritontor at icenet.com.au):
>  
> 
> > -----Original Message-----
> > Quoting Cameron G (ritontor at icenet.com.au):
> > > Hi guys,
> > > 
> > > I'm certain I'm not the first person in the history of IC 
> > to want to 
> > > do this, and right now I'm pulling my hair out in 
> > frustration. Here's the deal.
> > > 
> > > 
> > > We've all seen /scan/ URLs in IC, right?
> > > 
> > http://www.store.com/scan/st=db/co=yes/sf=prod_group/se=product_to_fin
> > > d, or whatever it needs to be for your specific search. 
> > Well, that URL 
> > > is all well and fine, and it works perfectly, but it's 
> > terrible for search engines.
> > 
> > Explain why this is terrible for search engines? As far as I 
> > know, they work fine for that purpose.
> 
> It's not that they don't work in search engines, google will happily index
> them, they're just not optimized. One little SEO tip is that search engines
> love a keyword that has its own html page, and keyword density helps too,
> meaning http://www.hammerstore.com/hammers/hammers.htm is going to rank
> higher than
> http://www.hammerstore.com/scan/st=db/co=yes/sf=prod_group/se=hammers. 
> 
> http://www.hammerstore.com/hammers.htm is probably just about ideal. Google
> seems to really like the (htm|html) extension. 
> 

Then you might consider using

   http://www.hammerstore.com/scan/st=db/co=yes/sf=prod_group/se=hammers.html

which will work fine.

That is not to say that you might not do (5.3 or higher, I think):

## Map a subroutine to happen if the page is not there
SpecialSub  missing  ncheck_category

## Subroutine that looks for a specially mapped page name
## or searches for the string in the page name
Sub ncheck_category <<EOS
sub {
    my ($name) = @_;
    return unless $name =~ m{^\w};
    $name = lc $name;
    my %map = (
	hammers => 'hammer_page',
	rulers => 'ruler_page',
    );

    if($map{$name}) {
	return (1, $map{$name});
    }

    $CGI->{mv_searchspec} = $name;
    $CGI->{mv_todo} = 'search';
    $Tag->update('process');
    return (1, 'results');
}
EOS

You can get very, very sophisticated with what you do. I have one
site which automatically switches between static HTML pages
and dynamic ones based on whether they are found or not, and
does searches and case regularization tries if neither side
finds the page.

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

Few blame themselves until they have exhausted all other possibilities.
 -- anonymous


More information about the interchange-users mailing list