Een openbare Domino website wordt zonder dat men hier iets voor hoeft te doen dagelijks bezocht door enkele zoekmachines zoals Google.
Er zijn een aantal methoden om de indexering te beïnvloeden. In een eerder artikel hebben we verteld hoe we de zichtbaarheid kunnen vergroten door het slim benoemen van links en afbeeldingen.
Een manier om juist tegen te gaan dat bepaalde bestanden op de server worden geïndexeerd is het gebruik van een bestandje genaamd robots.txt.
Het robots.txt bestand werkt volgens het Robots Exclusion Protocol principe, een zoekmachine die zich aan de normen houd zal dit bestand controleren en zich aan de hierin geplaatste regels houden.
Natuurlijk is dit slechts een verzoek, een slecht gemanierde zoekmachine kan zich er natuurlijk niks van aantrekken, het is dus geen waarborg dat uitgesloten bestanden niet meegenomen worden tijdens het indexeren!
Het bestand is tekst bestand (.txt) dat in de root directory van een site moet worden geplaatst, dit is doorgaan de html directory in de Domino Data map bijvoorbeeld c:\lotus\domino\data\domino\html.
Een zoekmachine zoekt naar het bestand in de html root bijvoorbeeld: http://www.ineco.nl/robots.txt.
De opbouw van een robots.txt bestand ziet er als volgt uit:
User-agent: [naam zoekmachine (* voor alles) ]
Disallow: [naam bestand of map (* voor alles)]
Als bijvoorbeeld Google de map mail niet mag indexeren zou het bestand er zo uitzien:
User-agent: Google
Disallow: /mail
Nu zag ik na een zoekopdracht in Google dat van onze site dubbel werd geïndexeerd (wat strafpunten in de pageranking oplevert) namelijk een keer alle http links maar ook alle https (beveiligde) links.
Volgens de richtlijnen moet er voor elk protocol een robots.txt aanwezig zijn, een voor de http site die bijvoorbeeld allen zoekmachines laten indexeren, en een bestand voor de https kant, waarbij we het indexeren willen voorkomen.
In Domino kan men echter geen onderscheid maken in mappen voor https of http. Beide protocollen gebruiken de zelfde website instellingen.
Als oplossing heb ik een formulier in een Domino database geplaatst (onze Content Management tool). In dit formulier heb ik een aantal velden gemaakt:
HTTPS type tekst, berekend, formule: HTTPS. Deze CGI variabele geeft "ON" als het protocol https is, "OFF" als het geen https (ssl) verbinding is terug. De naam HTTPS is verplicht.
Dan twee andere velden:
ROBOTS_TXT_HTTP, type tekst, berekend, formule: "User-agent: *" + @NewLine + "Disallow: /cgi-bin/" + @NewLine , verborgen als: HTTPS="ON"
ROBOTS_TXT_HTTPS, type tekst, berekend, formule: "User-agent: *" + @NewLine + "Disallow: /" + @NewLine, verborgen als: HTTPS!="ON"
We kunnen dit natuurlijk op diverse manieren implementeren, ik heb gekozen voor de volgende:
Het formulier heb ik opgeslagen als $$ViewTemplate for robots.txt , Content Type : text/plain.
Vervolgens heb ik een weergave aangemaakt met de naam robots.txt. Deze weergave hoeft geen document selectie, gebruik als formule bijvoorbeeld SELECT @False, geen index e.d.
Deze weergave is slechts bedoeld om het $$ViewTemplate for robots.txt formulier te openen zonder dat deze bewerkt kan/mag worden.
Vervolgens heb ik op de Domino server in het Website document een Website Substitution Rule aangemaakt, Incoming URL pattern: /robots.txt , Replacment pattern: /content.nsf/robots.txt.
Hierna een tell http refresh op de server console geven en er kan getest worden.
Meer informatie over robots.txt:
http://www.google.nl/support/webmasters/bin/topic.py?topic=8843
http://www.robotstxt.org/robotstxt.html
http://www.mijnhomepage.nl/artikelen/promotie/robots-txt.php
Meer informatie over Website rules:
http://www.ibm.com/developerworks/lotus/library/ls-Web_site_rules/