Optimizing Dynamic Pages - Part II


Optimizing Dynamic Pages - Part II

The Widget Queen Revisited
You have the world's finest collection of widgets. You created the world's best
widget website. You have no traffic.

You checked in the search engines and find that your site does not appear at
all, even though all your competitors' sites do. Perhaps the search engine
robots cannot get to your pages to index them.

Search Engine Robots
Search engine robots are simple creatures. They can "read" text to add to their
databases, and they can follow "normal" linksthose links that are coded to
look like

blue widgets

or the slight variation



That's it. Search engine robots cannot select items from lists; search engine
robots cannot type text into boxes; search engine robots cannot click "submit"
buttons. That means that no matter how important our dynamically-generated page
of blue widgets is, if the only way to access that page is to select it from a
list or click on a button, the robot will never be able to visit it. That, in
turn, means that it will never appear in the search engine results.

So how do you get your dynamic information to show up in non-dynamic ways?

The Painful Solution
One of the reasons that dynamic pages exist is because of the difficulty
involved in constantly updating adding and deleting pages from your site,
based on which widgets you are offering this season. If you have a separate page
for each make and model of widget, each of those pages can be spidered. They can
all be reached through links that look like

blue widgets style 1
blue widgets style 2
red widgets style 1
red widgets style 2
new widgets style 1
new widgets style 2

The bad news here, of course, is that you now have to create all of those pages.
This loses the benefit of drawing the widget information from a database.

A Better Solution
A better solution is to create only a "shell" of each page, and then to
dynamically populate the page from our database. By creating a "real" file, you
can assign a fixed URL, but still use the database to fill-in the page, using
any of various server-side techniques (HTML server-side includes, Perl, Active
Server Pages, Java Server Pages, PHP, etc.). A simple page like this might
suffice:



Blue Widgets style 1< itle><br/></head><br/><body><br/><!#exec cgi"myscript.pl?bluewidget-1"><br/></body><br/></html> <br/><br/>Save this page as "bluewidget-1.html" and you're good to go, assuming that <br/>"myscript.pl" will actually return the content you want for the body of the <br/>page. True, you will have a discrete page for each item in your inventory, but <br/>at least you only need to hard-code the bare-bones of that page.<br/><br/>Another Way To Go<br/>There is yet another way to go. This method does not require creating dozens of <br/>static pages, or of having to include exotic scripts in your web pages. It also <br/>may not work for all search engines!<br/><br/>Some search engine robots just will not follow links that include a <br/>"querystring" as part of the URL. You have seen a querystring if you have ever <br/>looked at the URL of a page of search results in Google. For example, if you <br/>look for "blue widgets" on Google, not only do you get page after page of blue <br/>widgets, you also see that these pages have very complicated-looking addresses<br/><br/>http://www.google.com/search?hlen&lr&ieUTF-8&oeUTF-8&qblue+widgets<br/><br/>In this address, everything after the question mark ("?") is a querystring. This <br/>is used to pass additional information to the web server. While some search <br/>engines can follow a complicated address like this, many simply will not follow <br/>such a link. That means that if you use a URL like<br/><br/>http://www.mycompany.com/catalog.html?itemwidget&colorblue&model1<br/><br/>that the robot may not be able to follow it. This is bad.<br/><br/>On the other hand, an increasing number of search engine robots will follow such <br/>links. Usually, links like this are created "on the fly" by filling-out forms <br/>and clicking a "submit" button, but that doesn't have to be the case. You can <br/>grab that address, querystring and all, and put it into a "normal" link, like <br/>this<br/><br/><a <br/>href"http://www.mycompany.com/catalog.html?itemwidget&colorblue&model1">blue <br/>widgets style 1</a><br/><br/>Put several of these on a page and the search engine robot can now visit your <br/>dynamic pages from links that require no button-clicking. Remember that not all <br/>robots will follow these links, so your mileage may vary.<br/><br/>As long as the link to the page exists in a form that does not require human <br/>intervention to get to it (pulldown menus, search results, form submits, etc) <br/>then a bot will follow it. <br/><br/>Widgets Out The Door<br/>Using any of these methods will help search engine robots to find the dynamic <br/>pages on your site. This means that the important content on those pages is more <br/>likely to be included in the search engine databases, and that people will be <br/>better able to find you. That, of course, means that the Widget Queen will reign <br/>supreme, knowing that widget customers the world over will now be able to find <br/>you and buy your widgets.<br/><br/># # #<br/><br/>Dale Goetsch is the Technical Consultant for Search Innovation Marketing <br/>(http://www.searchinnovation.com), a Search Engine Promotion company serving <br/>small businesses and non-profits. He has over twelve years experience in <br/>software development. Along with programming in Perl, JavaScript, ASP and VB, he <br/>is a technical writer and editor, with an emphasis on making technical subjects <br/>accessible to non-technical readers.<br/><br/>Copyright © 2003 Search Innovation Marketing. All Rights Reserved.<br/><br/>Permission to reprint this article is granted as long as all text above this <br/>line is included in its entirety. We would also appreciate your notifying us <br/>when you reprint it: please send a note to reprint@searchinnovation.com.<br/><p> About the Author <p>Dale Goetsch is the Technical Consultant for Search Innovation Marketing <br/>(http://www.searchinnovation.com), a Search Engine Promotion company serving <br/>small businesses and non-profits. He has over twelve years experience in <br/>software development. Along with programming in Perl, JavaScript, ASP and VB, he <br/>is a technical writer and editor, with an emphasis on making technical subjects <br/>accessible to non-technical readers.<br/><br/></div><div class="panel panel-default" style="padding: 10px 10px 10px 10px;"><a class="btn btn-outline-primary btn-sm" href="/on/development/">development</a> <a class="btn btn-outline-primary btn-sm" href="/on/search/">search</a> <a class="btn btn-outline-primary btn-sm" href="/on/engine/">engine</a> <a class="btn btn-outline-primary btn-sm" href="/on/robots/">robots</a> </div> </div> </div> <!-- /#page-content-wrapper --> </div> <!-- /#wrapper --> <footer class="footer"> <div class="container-fluid text-right"> <p class="text-muted"><i class="fa fa-copyright" aria-hidden="true"></i> <a href="http://ondapc.com/" target="_blank">ondapc</a> project 2024</p> </div> </footer> <!-- CONTACT US --> <div class="modal" id="contact"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h4 class="modal-title"><i class="far fa-envelope"></i> Contact Me</h4> <button type="button" class="close" data-dismiss="modal"><i class="fa fa-times"></i></button> </div> <div class="modal-body"> <form id="contactar" name="contactar" method="post"> <input type="hidden" name="token" value="0f83b1a020207f39b769ed9fd1745124"> <input type="hidden" name="captcha" value=""> <div class="form-group"> <div class="input-group-prepend"> <span class="input-group-text"><i class="fas fa-user"></i></span> <input class="form-control" id="name" name="name" placeholder="Your Name" required="required" value="" type="text"> </div> </div> <div class="form-group"> <div class="input-group-prepend"> <span class="input-group-text"><i class="far fa-envelope"></i></span> <input class="form-control" id="email" name="email" placeholder="Email" required="required" value="" type="email"> </div> </div> <div class="form-group"> <div class="input-group-prepend"> <span class="input-group-text"><i class="fas fa-edit"></i></span> <textarea name="message" id="message" class="form-control" rows="9" cols="25" placeholder="Write a message" required="required"></textarea> </div> </div> </div> <div class="modal-footer"> <button type="submit" class="btn btn-primary">Send <i class="fas fa-chevron-right"></i></button> </div> </div> </div> </div> <div id="contact" class="modal fade" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal"><i class="fa fa-times"></i></button> <h4 class="modal-title"><i class="fa fa-envelope-o"></i> Contact Me</h4> </div> <div class="modal-body"> </div> </div> </div> <script> $(function(){ $('#contactar').on('submit', function(e){ e.preventDefault(); $.ajax({ url: '/contactx/', type: 'POST', data: $('#contactar').serialize(), success: function(data){ $('#contactar')[0].reset(); $("#contact-success").append('<span><i class="fa fa-check"></i> Message Sent!</span>'); } }); }); }); </script> <!-- Bootstrap core JavaScript --> <script src="vendor/jquery/jquery.min.js"></script> <script src="vendor/bootstrap/js/bootstrap.bundle.min.js"></script> <!-- Menu Toggle Script --> <script> $("#menu-toggle").click(function(e) { e.preventDefault(); $("#wrapper").toggleClass("toggled"); }); </script> </body> </html> <!-- CACHE 5dfefa36220ee89b06fe0a2fd7504c00 2024-04-28 03:05:51 -->