Вопрос: Как организовать защиту от парсинга сайта?

Лучший ответ: 1. Сайт изначально предназначен для публикации, то есть он открыт.
2. Если вы не хотите чтобы информация была открыта, не публикуйте.
Из 1 пункта следует, что нет достаточных средств для защиты от парсеров. 
Вопрос только в том, на сколько вы готовы и можете усложнить жизнь для парсеров.
А нужно ли это? Может вы - "неуловимый Джо"?
Все что может прочитать и распознать человек (а ведь именно для людей и делается сайт?) может быть воспроизведено. В части, где парсинг может быть автоматизирован, он будет автоматизирован.
Сейчас существуют мощные парсеры Яндекса и Гугла. Если они ваш сайт не смогут разобрать, то и в индексе его не будет, значит полезная информация не дойдет до конечного пользователя. 
А тот, кто захочет, ее скопирует, если информация очень нужна. Если даже вы представите в виде мозаики из картинок и кусков, даже если зашифруете, но информация на экране должна все равно быть читабельной, а значит простой принтскрин и распознавание в FineReader будет быстрее, чем вы напишите защиту от него...
Бросьте это занятие!
Не существует защиты созданной человеком, которую не возможно сломать, вопрос времени...
Единственный путь, это шифрование с выдачей ключа клиенту. Но клиент - человек не надежен, и информация уплывет, вопрос цены!
И еще раз бросьте это!
Я тоже когда-то думал об этом, но ни к чему не пришел. Всякая защита усложняет систему и увеличивает количество ошибок. Пользователь быстрее уйдет с вашего сайта, только потому что из-за ошибки в скрипте полезные данные не получит.
Последний совет: бросьте это!
Единственное что может вам помочь, это не раскрывать полностью всю информацию о предмете, или разделить на несколько частей, но при этом не должно быть неудобства для посетителя. К примеру, скройте "количество зубцов в шестеренке", любую ключевую информацию, без которой "самолет не взлетит".
А если хотите поиграться, то пришла в голову идея: перемешивание по определенному алгоритму текста, который потом восстанавливается, применение стилей для скрытия "фальшивых" слов или фраз. Например, задать стиль, который скрывает каждое второе предложение или слово. Но к сожалению, это ломается на ура! Но доставит радости для взломщиков :-)
Извините, за столь большой сумбур!
1. Динамические запросы. Ну доставят какую-то головную боль для взломщика, но это не так сложно, как кажется.
2. Верстка. Не знаю про бан от поисковиков, но это тоже ломается. Просто убираете теги и все. Просто в парсер добавляется "умный" фильтр. Можно конечно где-то картинку заменить фоном, или часть текста картинкой, но и на это можно сделать разборщик. 
3. Блокировка по IP не прокатит, так как могут пострадать реальные люди, достаточно применять динамический IP.
А вообще, если хотите спастись от простых парсеров, то комплекс мер может помочь. Так же могу натолкнуть на идею, того, что парсеры обычно очень активны, и по количеству запросов с одного IP, по USER_AGENT, и другим меткам, а так же по отсутствию javascript, по обработке тега <МЕТА> redirekt.info/article/redirekt-na-html-s-zaderzhko... (отложенный редирект) и другим признакам. Можно запихнуть скрытую картинку (style="display: none"), большинство парсеров ее могут дернуть (зависит от настроек).
В общем, можно поставить задачу в другом ключе: "Расстановка ловушек для парсеров". То есть ловить на том, чего обычные люди и браузеры делать не будут. Например, заполнять "скрытое поле пароль". Удачные ловушки дадут вам возможность выявить подставных, но лучше делать несколько проверок, а то можно и реального пользователя забанить. А я бы не стал банить, а сливал бы немного или частично измененную инфу. Эта инфа может стать маркером для выявления того, кто действительно желает с вас "слить".
Все, удачи!

Худший ответ: 1 Загрузка контента через Ajax перед этим генерация токена. Но поисковики могут взбесится. 
2 верстка должна быть не просто динамической а для каждой записи своя чтобы поисковики были добрее. Например :switch($news['id']%10) {
     case 1 : echo "<div>".$news['content']."</div>"; break; 
     case 1 : echo "<p>".$news['content']."</p>"; break; 
     case 1 : echo "<span>".$news['content']."</span>"; break; 

// ...........

}
В большинстве это дилемма между дружбой с поисковиками и сохранностью инфы. Лучше просто сообщать сразу о своем контенте Yandex - у через addurl, также есть фича сообщить о новом контенте куда вписывается текст. После этого можно пожаловаться на вора. Говорят помогает, песимизируют сайты вора.