Robots.txt und Crawler: Wie steuere ich den Zugriff auf meine Seite?

  • Immer wieder taucht die Frage auf, wie sich der Zugriff von Crawlern auf bestimmte Bereiche einer Webseite steuern lässt. Besonders relevant wird das, wenn sensible Inhalte nicht in Suchmaschinen auftauchen oder von automatisierten Bots erfasst werden sollen.

    Ein zentrales Werkzeug dafür ist die robots.txt-Datei. Mit ihr lässt sich festlegen, welche Verzeichnisse oder Dateien von Suchmaschinenbots durchsucht werden dürfen und welche nicht. Allerdings gibt es Einschränkungen zu beachten: Nicht alle Crawler respektieren diese Vorgaben, besonders aggressive oder "bösartige" Bots ignorieren die Anweisungen häufig.

    Abseits der robots.txt bieten sich auch andere Möglichkeiten, etwa das Setzen von Meta-Tags wie "noindex" in einzelnen Seiten oder die Nutzung von HTTP-Headern. Wer ganz sicher gehen will, sollte Zugriffe auf sensible Bereiche zusätzlich per Authentifizierung schützen.

    Mich interessiert: Welche Ansätze habt ihr genutzt, um den Crawler-Zugriff zu steuern? Welche unerwarteten Erfahrungen gab es – etwa mit hartnäckigen Bots, die robots.txt-Einträge ignorieren?

  • Ist die Sache nicht hinfällig? Robots.txt ist eine Empfehlung an den Besucher, aber keine Regel die du durchsetzen kannst. Die ganzen ki scraper und andere bots ignorieren die robots.txt.

    Man kann auf jeder Seite einen versteckten Link auf eine seite unterbringen, und wer diesen Link aufruft bekommt die IP für 14 Tage gesperrt.

    Damit hältst du die bots draußen, und die 14 Tage verhindern das dir die Liste irgendwann voll läuft mit IPs die irgendwann den Besitzer gewechselt haben.

  • Man kann auf jeder Seite einen versteckten Link auf eine seite unterbringen, und wer diesen Link aufruft bekommt die IP für 14 Tage gesperrt.

    Ja, die sind manchmal richtig agressiv. Würde ich aber eher von abraten... Also ich könnte da nicht schlafen, wenn dann doch mal genauer hingeschaut wird bei den "guten" Bots.

    Klar, wir haben bspw Googlebot gesagt: Guck da nicht hin. Was ist aber, wenn ein Quality Rater kommen sollte und sich selbst aussperrt, weil er das untersuchen möchte.

    Die Idee ist gut, wäre mir schon zu riskant. Das Risiko ist rein hypothetisch, sehr unwahrscheinlich. Aber weeste... ich will da null Risiko eingehen. Wirklich Null, wo es geht.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!

  • ##### Common hacking tools and bandwidth hoggers block
    SetEnvIf user-agent "(?i:WebBandit)" stayout=1
    SetEnvIf user-agent "(?i:webbandit)" stayout=1
    SetEnvIf user-agent "(?i:Acunetix)" stayout=1
    SetEnvIf user-agent "(?i:binlar)" stayout=1
    SetEnvIf user-agent "(?i:BlackWidow)" stayout=1
    SetEnvIf user-agent "(?i:Bolt 0)" stayout=1
    SetEnvIf user-agent "(?i:Bot mailto:craftbot@yahoo.com)" stayout=1
    SetEnvIf user-agent "(?i:BOT for JCE)" stayout=1
    SetEnvIf user-agent "(?i:casper)" stayout=1
    SetEnvIf user-agent "(?i:checkprivacy)" stayout=1
    SetEnvIf user-agent "(?i:ChinaClaw)" stayout=1
    SetEnvIf user-agent "(?i:clshttp)" stayout=1
    SetEnvIf user-agent "(?i:cmsworldmap)" stayout=1
    SetEnvIf user-agent "(?i:comodo)" stayout=1
    SetEnvIf user-agent "(?i:Custo)" stayout=1
    SetEnvIf user-agent "(?i:Default Browser 0)" stayout=1
    SetEnvIf user-agent "(?i:diavol)" stayout=1
    SetEnvIf user-agent "(?i:DIIbot)" stayout=1
    SetEnvIf user-agent "(?i:DISCo)" stayout=1
    SetEnvIf user-agent "(?i:dotbot)" stayout=1
    SetEnvIf user-agent "(?i:Download Demon)" stayout=1
    SetEnvIf user-agent "(?i:eCatch)" stayout=1
    SetEnvIf user-agent "(?i:EirGrabber)" stayout=1
    SetEnvIf user-agent "(?i:EmailCollector)" stayout=1
    SetEnvIf user-agent "(?i:EmailSiphon)" stayout=1
    SetEnvIf user-agent "(?i:EmailWolf)" stayout=1
    SetEnvIf user-agent "(?i:Express WebPictures)" stayout=1
    SetEnvIf user-agent "(?i:extract)" stayout=1
    SetEnvIf user-agent "(?i:ExtractorPro)" stayout=1
    SetEnvIf user-agent "(?i:EyeNetIE)" stayout=1
    SetEnvIf user-agent "(?i:feedfinder)" stayout=1
    SetEnvIf user-agent "(?i:FHscan)" stayout=1
    SetEnvIf user-agent "(?i:FlashGet)" stayout=1
    SetEnvIf user-agent "(?i:flicky)" stayout=1
    SetEnvIf user-agent "(?i:GetRight)" stayout=1
    SetEnvIf user-agent "(?i:GetWeb!)" stayout=1
    SetEnvIf user-agent "(?i:Go-Ahead-Got-It)" stayout=1
    SetEnvIf user-agent "(?i:Go!Zilla)" stayout=1
    SetEnvIf user-agent "(?i:grab)" stayout=1
    SetEnvIf user-agent "(?i:GrabNet)" stayout=1
    SetEnvIf user-agent "(?i:Grafula)" stayout=1
    SetEnvIf user-agent "(?i:harvest)" stayout=1
    SetEnvIf user-agent "(?i:HMView)" stayout=1
    SetEnvIf user-agent "(?i:ia_archiver)" stayout=1
    SetEnvIf user-agent "(?i:Image Stripper)" stayout=1
    SetEnvIf user-agent "(?i:Image Sucker)" stayout=1
    SetEnvIf user-agent "(?i:InterGET)" stayout=1
    SetEnvIf user-agent "(?i:Internet Ninja)" stayout=1
    SetEnvIf user-agent "(?i:InternetSeer.com)" stayout=1
    SetEnvIf user-agent "(?i:jakarta)" stayout=1
    SetEnvIf user-agent "(?i:Java)" stayout=1
    SetEnvIf user-agent "(?i:JetCar)" stayout=1
    SetEnvIf user-agent "(?i:JOC Web Spider)" stayout=1
    SetEnvIf user-agent "(?i:kmccrew)" stayout=1
    SetEnvIf user-agent "(?i:larbin)" stayout=1
    SetEnvIf user-agent "(?i:LeechFTP)" stayout=1
    SetEnvIf user-agent "(?i:libwww)" stayout=1
    SetEnvIf user-agent "(?i:Mass Downloader)" stayout=1
    SetEnvIf user-agent "(?i:Maxthon$)" stayout=1
    SetEnvIf user-agent "(?i:microsoft.url)" stayout=1
    SetEnvIf user-agent "(?i:MIDown tool)" stayout=1
    SetEnvIf user-agent "(?i:miner)" stayout=1
    SetEnvIf user-agent "(?i:Mister PiX)" stayout=1
    SetEnvIf user-agent "(?i:NEWT)" stayout=1
    SetEnvIf user-agent "(?i:MSFrontPage)" stayout=1
    SetEnvIf user-agent "(?i:Navroad)" stayout=1
    SetEnvIf user-agent "(?i:NearSite)" stayout=1
    SetEnvIf user-agent "(?i:Net Vampire)" stayout=1
    SetEnvIf user-agent "(?i:NetAnts)" stayout=1
    SetEnvIf user-agent "(?i:NetSpider)" stayout=1
    SetEnvIf user-agent "(?i:NetZIP)" stayout=1
    SetEnvIf user-agent "(?i:nutch)" stayout=1
    SetEnvIf user-agent "(?i:Octopus)" stayout=1
    SetEnvIf user-agent "(?i:Offline Explorer)" stayout=1
    SetEnvIf user-agent "(?i:Offline Navigator)" stayout=1
    SetEnvIf user-agent "(?i:PageGrabber)" stayout=1
    SetEnvIf user-agent "(?i:Papa Foto)" stayout=1
    SetEnvIf user-agent "(?i:pavuk)" stayout=1
    SetEnvIf user-agent "(?i:pcBrowser)" stayout=1
    SetEnvIf user-agent "(?i:PeoplePal)" stayout=1
    SetEnvIf user-agent "(?i:planetwork)" stayout=1
    SetEnvIf user-agent "(?i:psbot)" stayout=1
    SetEnvIf user-agent "(?i:purebot)" stayout=1
    SetEnvIf user-agent "(?i:pycurl)" stayout=1
    SetEnvIf user-agent "(?i:RealDownload)" stayout=1
    SetEnvIf user-agent "(?i:ReGet)" stayout=1
    SetEnvIf user-agent "(?i:Rippers 0)" stayout=1
    SetEnvIf user-agent "(?i:SeaMonkey$)" stayout=1
    SetEnvIf user-agent "(?i:sitecheck.internetseer.com)" stayout=1
    SetEnvIf user-agent "(?i:SiteSnagger)" stayout=1
    SetEnvIf user-agent "(?i:skygrid)" stayout=1
    SetEnvIf user-agent "(?i:SmartDownload)" stayout=1
    SetEnvIf user-agent "(?i:sucker)" stayout=1
    SetEnvIf user-agent "(?i:SuperBot)" stayout=1
    SetEnvIf user-agent "(?i:SuperHTTP)" stayout=1
    SetEnvIf user-agent "(?i:Surfbot)" stayout=1
    SetEnvIf user-agent "(?i:tAkeOut)" stayout=1
    SetEnvIf user-agent "(?i:Teleport Pro)" stayout=1
    SetEnvIf user-agent "(?i:Toata dragostea mea pentru diavola)" stayout=1
    SetEnvIf user-agent "(?i:turnit)" stayout=1
    SetEnvIf user-agent "(?i:vikspider)" stayout=1
    SetEnvIf user-agent "(?i:VoidEYE)" stayout=1
    SetEnvIf user-agent "(?i:Web Image Collector)" stayout=1
    SetEnvIf user-agent "(?i:Web Sucker)" stayout=1
    SetEnvIf user-agent "(?i:WebAuto)" stayout=1
    SetEnvIf user-agent "(?i:WebCopier)" stayout=1
    SetEnvIf user-agent "(?i:WebFetch)" stayout=1
    SetEnvIf user-agent "(?i:WebGo IS)" stayout=1
    SetEnvIf user-agent "(?i:WebLeacher)" stayout=1
    SetEnvIf user-agent "(?i:WebReaper)" stayout=1
    SetEnvIf user-agent "(?i:WebSauger)" stayout=1
    SetEnvIf user-agent "(?i:Website eXtractor)" stayout=1
    SetEnvIf user-agent "(?i:Website Quester)" stayout=1
    SetEnvIf user-agent "(?i:WebStripper)" stayout=1
    SetEnvIf user-agent "(?i:WebWhacker)" stayout=1
    SetEnvIf user-agent "(?i:WebZIP)" stayout=1
    SetEnvIf user-agent "(?i:Wget)" stayout=1
    SetEnvIf user-agent "(?i:Widow)" stayout=1
    SetEnvIf user-agent "(?i:WWW-Mechanize)" stayout=1
    SetEnvIf user-agent "(?i:WWWOFFLE)" stayout=1
    SetEnvIf user-agent "(?i:Xaldon WebSpider)" stayout=1
    SetEnvIf user-agent "(?i:Yandex)" stayout=1
    SetEnvIf user-agent "(?i:Zeus)" stayout=1
    SetEnvIf user-agent "(?i:zmeu)" stayout=1
    SetEnvIf user-agent "(?i:CazoodleBot)" stayout=1
    SetEnvIf user-agent "(?i:discobot)" stayout=1
    SetEnvIf user-agent "(?i:ecxi)" stayout=1
    SetEnvIf user-agent "(?i:GT::WWW)" stayout=1
    SetEnvIf user-agent "(?i:heritrix)" stayout=1
    SetEnvIf user-agent "(?i:HTTP::Lite)" stayout=1
    SetEnvIf user-agent "(?i:HTTrack)" stayout=1
    SetEnvIf user-agent "(?i:ia_archiver)" stayout=1
    SetEnvIf user-agent "(?i:id-search)" stayout=1
    SetEnvIf user-agent "(?i:id-search.org)" stayout=1
    SetEnvIf user-agent "(?i:IDBot)" stayout=1
    SetEnvIf user-agent "(?i:Indy Library)" stayout=1
    SetEnvIf user-agent "(?i:IRLbot)" stayout=1
    SetEnvIf user-agent "(?i:ISC Systems iRc Search 2.1)" stayout=1
    SetEnvIf user-agent "(?i:LinksManager.com_bot)" stayout=1
    SetEnvIf user-agent "(?i:linkwalker)" stayout=1
    SetEnvIf user-agent "(?i:lwp-trivial)" stayout=1
    SetEnvIf user-agent "(?i:MFC_Tear_Sample)" stayout=1
    SetEnvIf user-agent "(?i:Microsoft URL Control)" stayout=1
    SetEnvIf user-agent "(?i:Missigua Locator)" stayout=1
    SetEnvIf user-agent "(?i:panscient.com)" stayout=1
    SetEnvIf user-agent "(?i:PECL::HTTP)" stayout=1
    SetEnvIf user-agent "(?i:PHPCrawl)" stayout=1
    SetEnvIf user-agent "(?i:PleaseCrawl)" stayout=1
    SetEnvIf user-agent "(?i:SBIder)" stayout=1
    SetEnvIf user-agent "(?i:Snoopy)" stayout=1
    SetEnvIf user-agent "(?i:Steeler)" stayout=1
    SetEnvIf user-agent "(?i:URI::Fetch)" stayout=1
    SetEnvIf user-agent "(?i:urllib)" stayout=1
    SetEnvIf user-agent "(?i:Web Sucker)" stayout=1
    SetEnvIf user-agent "(?i:webalta)" stayout=1
    SetEnvIf user-agent "(?i:WebCollage)" stayout=1
    SetEnvIf user-agent "(?i:Wells Search II)" stayout=1
    SetEnvIf user-agent "(?i:WEP Search)" stayout=1
    SetEnvIf user-agent "(?i:zermelo)" stayout=1
    SetEnvIf user-agent "(?i:ZyBorg)" stayout=1
    SetEnvIf user-agent "(?i:Indy Library)" stayout=1
    SetEnvIf user-agent "(?i:libwww-perl)" stayout=1
    SetEnvIf user-agent "(?i:Go!Zilla)" stayout=1
    SetEnvIf user-agent "(?i:TurnitinBot)" stayout=1
    SetEnvIf user-agent "(?i:sqlmap)" stayout=1
    <IfModule !mod_authz_core.c>
    deny from env=stayout
    </IfModule>
    <IfModule mod_authz_core.c>
    <RequireAll>
    Require all granted
    Require not env stayout
    </RequireAll>
    </IfModule>
    # ---HoggerAgents---


    Kann natürlich beliebig erweitert werden. Ist meiner Meinung nach dabei die sauberste Lösung.

    wenn etwas möglich erscheint mach ich das, wenn das nicht klappt gehts ans unmögliche und ansonsten das undenkbare.

    - nun stolz rauchfrei - Ich denke also Bing ich!

    Support 24h Bereitschaft 0173 6107465 - NUR Für Kunden von SEO NW!