I have lost patience with web bots that do not look for robots.txt when they visit this site, so I am now denying all non-compliant robots access. Now my .htaccess file looks like this:

ErrorDocument 403 http://www.marteydodoo.com/403.html
ErrorDocument 404 http://www.marteydodoo.com/404.html

# Goodbye bad bots
# The World as a Blog - cool, but non-compliant
Deny from 64.191.45.115
Deny from 64.191.45.115
# "Jakarta Commons-HttpClient/2.0final"
Deny from 66.139.76.19
Deny from 67.101.186.237
Deny from 68.117.140.61
# random perl-based bot
Deny from 69.0.240.46 [Ed: Google suggests this is Hello Machine, a FOAF repository by Erik Benson]
# boater.princeton.edu - the "blog r" bot
Deny from 128.112.129.189
# Northwestern Python bot
Deny from 129.105.100.100
# pretend Lynx bot
Deny from 192.187.140.37
# blogsnowbot
Deny from 205.147.9.200
# Chinese Delphi user
Deny from 211.157.36.6


Some bots do not realize that they are being blocked, leading to entries like this in my access logs:
66.139.76.19 - - [08/Jun/2004:01:03:35 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:36 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"
66.139.76.19 - - [08/Jun/2004:01:03:37 -0400] "GET /403.html HTTP/1.1" 302 227 www.marteydodoo.com "-" "Jakarta Commons-HttpClient/2.0final" "-"

And that's not the half of it...