Предотвращение сканирования роботами определенной части страницы

Как веб-мастер, отвечающий за крошечный сайт, на котором есть форум, я регулярно получаю жалобы от пользователей, которые как внутренняя поисковая система, так и внешние поисковые запросы (например, при использовании Google) полностью загрязнены подписями моих пользователей (они, используя длинные подписи, и это часть опыта форума, потому что подписи имеют большой смысл на моем форуме).

Итак, в основном я вижу два варианта:

  1. Рендеринг подписи как изображения, и когда пользователь нажимает на «изображение подписи», он попадает на страницу, содержащую реальную подпись (со ссылками в подписи и т. д.), и эта страница устанавливается как будучи не поддающимся сканированию пауками поисковых систем). Это потребует некоторой пропускной способности и потребует некоторой работы (потому что мне нужен визуализатор HTML, создающий изображение и т. Д.), Но, очевидно, это решит проблему (есть крошечные ошибки в том, что подпись не будет уважать схему шрифта /цвета пользователи, но мои пользователи очень творчески со своими подписью, в любом случае, используя пользовательские шрифты /цвета /размер и т. д., поэтому это не так уж и важно).

  2. Маркировка каждой части веб-страницы, содержащей подпись, как не подлежащую сканированию.

Однако я не уверен в дальнейшем: это что-то, что можно сделать? Можете ли вы просто отметить определенные части веб-страницы как не подлежащие регистрации?

25 голосов | спросил WebbyTheWebbor 4 J000000Monday11 2011, 17:34:00

7 ответов


7

Другим решением является перенос sig в ​​span или div со стилем, установленным на display:none, а затем использовать Javascript для его удаления, чтобы текст отображался для браузеров с включенным Javascript. Поисковые системы знают, что это не будет отображаться, поэтому не следует индексировать его.

Этот бит HTML, CSS и javascript должен сделать это:

HTML:

<span class="sig">signature goes here</span>

CSS

.sig {
display:none;
}

JavaScript:

<script type="text/javascript"> 
$(document).ready(function()
  {
      $(".sig").show();
  }
</script>

Вам нужно будет включить библиотеку jquery .

ответил paulmorriss 4 J000000Monday11 2011, 17:38:13
6

Вот тот же ответ, который я предоставил тегу noindex для google на Переполнение стека:

Вы можете запретить Google просматривать части страницы, помещая эти фрагменты в iframes, которые блокируются с помощью файла robots.txt.

robots.txt

Disallow: /iframes/

index.html

This text is crawlable, but now you'll see 
text that search engines can't see:
<iframe src="/iframes/hidden.html" width="100%" height=300 scrolling=no>

/iframes/hidden.html

Search engines cannot see this text.

Вместо использования iframes вы можете загрузить содержимое скрытого файла с помощью AJAX. Вот пример, который использует jquery ajax для этого:

his text is crawlable, but now you'll see 
text that search engines can't see:
<div id="hidden"></div>
<script>
    $.get(
        "/iframes/hidden.html",
        function(data){$('#hidden').html(data)},
    );
</script>
ответил Stephen Ostermiller 27 PMpSat, 27 Apr 2013 13:02:16 +040002Saturday 2013, 13:02:16
2

Это легко.

Перед тем, как подавать свою страницу, вам нужно знать, является ли она ботом, компьютером или телефоном. Затем вам необходимо установить контент соответствующим образом. Это стандартная практика в этот день и возраст и основные функции некоторых CMS.

В SE существует множество решений для перенаправления на основе USER AGENT, которые можно добавить в htaccess. Если это подходит вашему программному обеспечению для форума, вы можете запустить другой код из той же БД, чтобы доставить то, что нужно Google, без мякины и обрезки.

В качестве альтернативы вы можете поместить небольшую строку в свой PHP-код, который делает «если ПОЛЬЗОВАТЕЛЬСКИЙ АГЕНТ == Googlebot тогда не показывает подписей».

Если вы действительно не можете этого сделать, вы можете заставить mod_proxy служить боту и использовать его, чтобы исключить все, что генерирует ваш php-код, что боту не нужно видеть.

Технически Google не одобряет их поисковую систему, показывающую другую страницу тем, что видит обычный посетитель сайта, однако на сегодняшний день они не взяли BBC и других, которые предоставляют контент для браузера /IP /посетителя результаты поисковой системы. У них также есть ограниченные средства, чтобы увидеть, был ли их бот «привязан».

Альтернативное решение скрытия контента с CSS для его повторного включения скриптом также немного серой. Согласно их собственным рекомендациям для веб-мастеров от 20/6/11 это не очень хорошая идея:

http://www.google.com/support/вебмастер /bin /answer.py? ответить = 66353

Это может быть не таблетка, отлитая из камня, но она актуальна и Google.

Скрыть трюк с контентом не будет работать с меньшинством людей, у которых нет javascript, это, возможно, не вызывает большого беспокойства, однако, ожидая загрузки документа, а затем показ подписей не будет удовлетворительным просмотром как вы думаете, что страница загрузилась, тогда она подскочит, когда появятся скрытые подписи, а затем нажмите содержимое вниз по странице. Этот тип загрузки страницы может быть раздражающим, если у вас есть сетевая вершина низкого класса, но может быть не заметна, если у вас есть быстрая машина для разработчиков при быстром подключении к Интернету.

ответил ʍǝɥʇɐɯ 4 J000000Monday11 2011, 18:33:00
2

Один из способов сделать это - использовать образ текста , а не обычный текст.

Возможно, что Google в конечном итоге будет достаточно умным, чтобы читать текст из изображения, поэтому он может быть не полностью надежным в будущем, но он должен хорошо работать как минимум через некоторое время.

К этому подходу существует множество недостатков. Если у человека слабое зрение, это плохо. Если вы хотите, чтобы ваш контент адаптировался к мобильным устройствам по сравнению с настольными компьютерами, это плохо. (и т. д.)

Но это метод, который в настоящее время (несколько) работает.

ответил James Foster 4 Mayam15 2015, 06:19:37
0

Нет, нет способа предотвратить сканирование страниц роботами. Это целая страница или ничего.

Отрывки в результатах поиска Google обычно берутся из мета-описания на странице. Таким образом, вы можете заставить Google показать определенную часть страницы, поместив ее в тег метаописания. С пользовательским контентом трудно получить хорошие фрагменты, но, вероятно, будет работать первый пост потока.

Единственный другой способ, который я могу придумать, - использовать Javascript. Что-то вроде paulmorriss предложило may работать, но я думаю, что поисковые системы все равно будут индексировать контент, если он находится в HTML. Вы можете удалить его из HTML, сохранить его в строке Javascript, а затем добавить его обратно на загрузку страницы. Это немного сложнее.

Наконец, нужно иметь в виду: если Google показывает подписи пользователей в своих фрагментах, он решил, что это часть, наиболее актуальная для запроса пользователя.

ответил DisgruntledGoat 4 J000000Monday11 2011, 18:18:00
0

Вы можете поместить страницу в PHP, если с «else», которая приведет к captcha, которая дает ключ для части if.

Мне все равно, потому что если учетные данные пользователя не совпадают на моей странице, они получают пустую страницу или отправляются на страницу входа.

<?php
session_start();

if(empty($_SESSION['captcha']) or $_SESSION['captcha'] != $key){
    header("Location: captcha.php");
}

if(!empty($_SESSION['captcha']) and $_SESSION['captcha'] == $key){

"the page"

}
?>

$key должен быть хешем текущего дня или чем-то, что изменяется, поэтому недостаточно добавить значение в сеанс.

Напишите в комментарии, если вы хотите, чтобы я добавил пример captcha, потому что теперь у меня его нет.

ответил Alfons Marklén 27 Maypm17 2017, 13:46:20
-1
ответил Luke Madhanga 7 Jpm1000000pmThu, 07 Jan 2016 21:37:05 +030016 2016, 21:37:05

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132