Не буду повторять вышесказанные очевидности… но порекомендую мыслить в следующем направлении:
1. разделить контент (статьи) на две части короткое емкое описание и полный текст
2. ограничить доступ к полным статьям поисковым роботам (кому от этого плохо? так ли вам нужны поисковики на весь контент?)
3. ограничить доступ к полным статьям на пользователей (куки)
3.a) изучать рефереры и юзерагент (в общем случае можно даже выявить не совсем опытных сканеров, последовательно выкачивающих ресурсы, вычисляя распределение во времени и т.п. не тривиально но реально)
3.b) ip, подсети (под суетитесь и соберите информацию о доступных хостерах и их подсетях), анонимных прокси, i2p и tor роутерах, информация обо всем этом общедоступна.
p.s. интересно, можно ли у антивирусных компаний запрашивать информацию о текущих сетях ботнетов?
Ограничение — частота возможных запросов, при превышении отлуп… при достаточно большом объеме данных время, которое потребуется атакующему собрать все данные станет неадекватно большим даже при наличии ресурсов вида маленький ботнет
4. ссылка на полную статью размещается в короткой статье, статичной делать ее нельзя — т.е. должна формироваться каждый раз новая, легко вычисляемой тоже (детские глупости в виде последовательно растущего номера тут не подходят), воспользоваться всем что доступно в аресенале для защиты от ботов, полиморфный javascript, привязка скрипта к багам популярных браузеров (защита от интерпретаторов), капчи как графические так и логические загадки
Если после этого вы не распугаете всех своих посетителей, возможно вы продержитесь пол года-год :)