|
Dynamic URLs vs. Static URLs
The Issue at Hand
Websites that utilize databases which can insert content
into a webpage by way of a dynamic script like PHP or
JavaScript are increasingly popular. This type of site is
considered dynamic. Many websites choose dynamic content
over static content. This is because if a website has
thousands of products or pages, writing or updating each
static by hand is a monumental task.
There are two types of URLs: dynamic and static. A dynamic
URL is a page address that results from the search of a
database-driven web site or the URL of a web site that runs
a script. In contrast to static URLs, in which the contents
of the web page stay the same unless the changes are
hard-coded into the HTML, dynamic URLs are generated from
specific queries to a site's database. The dynamic page is
basically only a template in which to display the results of
the database query. Instead of changing information in the
HTML code, the data is changed in the database.
But there is a risk when using dynamic URLs: search engines
don't like them. For those at most risk of losing search
engine positioning due to dynamic URLs are e-commerce
stores, forums, sites utilizing content management systems
and blogs like Mambo or WordPress, or any other
database-driven website. Many times the URL that is
generated for the content in a dynamic site looks something
like this:
http://www.somesites.com/forums/thread.php?threadid=12345&sort=date
A static URL on the other hand, is a URL that doesn't
change, and doesn't have variable strings. It looks like
this:
http://www.somesites.com/forums/the-challenges-of-dynamic-urls.htm
Static URLs are typically ranked better in search engine
results pages, and they are indexed more quickly than
dynamic URLs, if dynamic URLs get indexed at all. Static
URLs are also easier for the end-user to view and understand
what the page is about. If a user sees a URL in a search
engine query that matches the title and description, they
are more likely to click on that URL than one that doesn't
make sense to them.
A search engine wants to only list pages its index that are
unique. Search engines decide to combat this issue by
cutting off the URLs after a specific number of variable
strings (e.g.: ? & =).
For example, let's look at three URLs:
http://www.somesites.com/forums/thread.php?threadid=12345&sort=date
http://www.somesites.com/forums/thread.php?threadid=67890&sort=date
http://www.somesites.com/forums/thread.php?threadid=13579&sort=date
All three of these URLs point to three different pages. But
if the search engine purges the information after the first
offending character, the question mark (?), now all three
pages look the same:
http://www.somesites.com/forums/thread.php
http://www.somesites.com/forums/thread.php
http://www.somesites.com/forums/thread.php
Now, you don't have unique pages, and consequently, the
duplicate URLs won't be indexed.
Another issue is that dynamic pages generally do not have
any keywords in the URL. It is very important to have
keyword rich URLs. Highly relevant keywords should appear in
the domain name or the page URL. This became clear in a
recent study on how the top three search engines, Google,
Yahoo, and MSN, rank websites.
The study involved taking hundreds of highly competitive
keyword queries, like travel, cars, and computer software,
and comparing factors involving the top ten results. The
statistics show that of those top ten, Google has 40-50% of
those with the keyword either in the URL or the domain;
Yahoo shows 60%; and MSN has an astonishing 85%! What that
means is that to these search engines, having your keywords
in your URL or domain name could mean the difference between
a top ten ranking, and a ranking far down in the results
pages.
The Solution
So what can you do about this difficult problem? You
certainly don't want to have to go back and recode every
single dynamic URL into a static URL. This would be too much
work for any website owner.
If you are hosted on a Linux server, then you will want to
make the most of the Apache Mod Rewrite Rule, which is gives
you the ability to inconspicuously redirect one URL to
another, without the user's (or a search engine's)
knowledge. You will need to have this module installed in
Apache; for more information, you can view the documentation
for this module here. This module saves you from having to
rewrite your static URLs manually.
How does this module work? When a request comes in to a
server for the new static URL, the Apache module redirects
the URL internally to the old, dynamic URL, while still
looking like the new static URL. The web server compares the
URL requested by the client with the search pattern in the
individual rules.
For example, when someone requests this URL:
http://www.somesites.com/forums/the-challenges-of-dynamic-urls.html
The server looks for and compares this static-looking URL to
what information is listed in the .htaccess file, such as:
RewriteEngine on
RewriteRule thread-threadid-(.*)\.htm$
thread.php?threadid=$1
It then converts the static URL to the old dynamic URL that
looks like this, with no one the wiser:
http://www.somesites.com/forums/thread.php?threadid=12345
You now have a URL that only will rank better in the search
engines, but your end-users can definitely understand by
glancing at the URL what the page will be about, while
allowing Apache's Mod Rewrite Rule to handle to conversion
for you, and still keeping the dynamic URL.
If you are not particularly technical, you may not wish to
attempt to figure out the complex Mod Rewrite code and how
to use it, or you simply may not have the time to embark
upon a new learning curve. Therefore, it would be extremely
beneficial to have something to do it for you. This URL
Rewriting Tool can definitely help you. What this tool does
is implement the Mod Rewrite Rule in your .htaccess file to
secretly convert a URL to another, such as with dynamic and
static ones.
With the URL Rewriting Tool, you can opt to rewrite single
pages or entire directories. Simply enter the URL into the
box, press submit, and copy and paste the generated code
into your .htaccess file on the root of your website. You
must remember to place any additional rewrite commands in
your .htaccess file for each dynamic URL you want Apache to
rewrite. Now, you can give out the static URL links on your
website without having to alter all of your dynamic URLs
manually because you are letting the Mod Rewrite Rule do the
conversion for you, without JavaScript, cloaking, or any
sneaky tactics.
Another thing you must remember to do is to change all of
your links in your website to the static URLs in order to
avoid penalties by search engines due to having duplicate
URLs. You could even add your dynamic URLs to your Robots
Exclusion Standard File (robots.txt) to keep the search
engines from spidering the duplicate URLs. Regardless of
your methods, after using the URL Rewrite Tool, you should
ideally have no links pointing to any of your old dynamic
URLs.
You have multiple reasons to utilize static URLs in your
website whenever possible. When it's not possible, and you
need to keep your database-driven content as those old
dynamic URLs, you can still give end-users and search engine
a static URL to navigate, and all the while, they are still
your dynamic URLs in disguise. When a search engine engineer
was asked if this method was considered "cloaking", he
responded that it indeed was not, and that in fact, search
engines prefer you do it this way. The URL Rewrite Tool not
only saves you time and energy by helping you use static
URLs by converting them transparently to your dynamic URLs,
but it will also save your rankings in the search engines.
|