Bei dynamischen Seiten wie ASP, PHP, JavaServlets, ... wird der Programmcode am Webserver ausgeführt und ist somit clientunabhängig, also reiner HTML-Code.
Die Endungen asp, php3,... werden inzwischen von allen Suchmaschinen bei der Anmeldung akzeptiert Das Problem beginnt dann, wenn die Seiten zum Beispiel von Datenbanken generiert werden und in der URL ein Fragezeichen (?) vorkommt, hier weigern sich die Suchmaschinen diese aufzunehmen und das auch mit gutem Recht.
Stellen Sie sich einmal eine Suchseite vor: (www.dasisteinefiktiveurl.de/suchen.asp?ix=adresse) 
Angenommen die Adressen sind nach Postleitzahlen sortiert (0,1,2,3,..), danach nach Ortschaften, Strassen, ....... 
Ein Robot findet hier x-tausende von Seiten ! Und das ist auch nicht der Sinn der Sache.
Suche ich nach einer Adresse bediene ich mich einer Suchabfrage bei diesem Adress - Anbieter.
Oder, es gibt auch Webs deren gesamter Inhalt aus einer Datenbank kommt und keine statischen Seiten besitzen.
Wie bekomme ich dann Datenbank-Inhalte in eine Suchmaschine?
Eine Möglichkeit besteht darin statische Seiten (manuell) zu erstellen - Quelltexteditor oder per Hand  - Diese können Sie dann in einer Suchmaschine anmelden. 
Bei einigen Seiten macht das Sinn und die Vorgehensweise ist ein akzetabler Weg, aber bei mehreren Seiten, oder Seiten die sich ständig ändern ist dieser Weg sehr mühselig.
Wenn Sie mit Frames arbeiten und die einzelnen Seiten auf dem Frameset dynamisch erzeugt werden melden Sie einfach die Frameset-Seite an.
Hier zeige ich Ihnen, wie Sie dynamische Seiten in statische Seiten wandeln können:
        | <%@ Language=VBScript %><% Dim oInet
 Dim       oFile
 Dim oHtml
 Dim oHtmDB
 Dim sGetHtml,       sTempName, sFileName, sPath, sANr
 
 Set       oHtmDB =       Server.CreateObject("ppUniDB.DBAccess")  'Datenbankkomponente
 oHtmDB.Connection       = Application("IntraNautConnection") 'ConnectionString zu       Datenbank
 oHtmDB.ExecSQL "SELECT ID FROM       IFORUMBEITRAG", true 'Abfrage
   Set oInet =       Server.CreateObject("inetctls.inet.1")oInet.protocol       = 4
 oInet.Proxy =       "Proxyname:80"
 oInet.AccessType = 2
   Set oFile =       Server.CreateObject("Scripting.FileSystemObject") sPath       =       Left(Server.MapPath("createhtml.asp"),Len(Server.MapPath("createhtml.asp"))       - 14)
 
 While Not       CBool(oHtmDB.EOF)
 If Not       (oFile.FileExists(Server.MapPath("artikel" & oHtmDB.Value("ID") &       ".htm"))) Then
 sGetHtml =       oInet.OpenURL("www.developer-training.de/autor/printnews.asp?id=" &       oHtmDB.Value("ID"))
 Set oHtml =       oFile.CreateTextFile(sPath & "artikel" & sANr & ".htm",       True)
 oHtml.WriteLine(sGetHtml)
 oHtml.Close
 Set       oHtml = Nothing
 End       If
 oHtmDB.NextRow
 Wend
   oInet.CancelSet oInet =       Nothing
 Set oFile =       Nothing
 %>
 | 
Im obigen Beispiel frage ich alle Artikel ab, die in der Datenbank stehen und speichere Sie mittels FileSystemObject in ein htm-Datei-Format ab.
Die Konstante Protokoll -> 4 setzt die oInet.Protocol auf HTTP:// und der Zugriff erfolgt auf einen genannten Proxy (Konstante -> 2 in AccessType). vorher muss ich dem Objekt natürlich den Namen des Proxies zuweisen.
Ein kleiner Tip:
Wollen Sie eine Applikation ohne Querystring realisieren dann arbeiten Sie mit  <<PATH_INFO>> 
z.B.:
www.dasisteinefiktiveurl.de/suchen.asp?ix=adresse
www.dasisteinefiktiveurl.de/suchen.asp/adresse
Mit Path_Info kann man nun die "/adresse" auslesen und verarbeiten.
Dann hoffe ich, dass Sie bald in den Suchmaschinen aufgenommen werden !!!