Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Часто задаваемые вопросы о том, как управлять поведением роботов
Общие вопросы
Обязательно ли использовать на сайте файл robots.txt?
Нет. Когда робот Googlebot посещает сайт, сначала он пытается найти файл robots.txt. Сканирование и индексирование сайтов, не содержащих файл robots.txt file, тег meta
с атрибутом robots или HTTP-заголовок X-Robots-Tag
, обычно проходит по стандартной схеме.
Как лучше всего запрещать роботам сканировать страницы?
Разные методы блокировки можно использовать в зависимости от конкретной ситуации:
-
Файл robots.txt рекомендуется использовать, если при сканировании контента возникают проблемы в работе вашего сервера. Например, можно запретить сканирование скриптов, которые обеспечивают работу вечного календаря. Не используйте файл robots.txt для защиты конфиденциального контента (это рекомендуется делать с помощью аутентификации на сервере), а также для нормализации.
Чтобы запретить индексирование той или иной страницы, используйте тегmeta
с атрибутом robots или HTTP-заголовокX-Robots-Tag
. -
Тег
meta
с атрибутом robots позволяет указать, как Google Поиску следует показывать HTML-страницу (или полностью запретить ему делать это). - HTTP-заголовок
X-Robots-Tag
можно использовать с любыми типами файлов. Он позволяет указать, как Google Поиску следует показывать контент (или полностью запретить ему делать это).
Можно ли использовать файл robots.txt, тег meta
с атрибутом robots или HTTP-заголовок X-Robots-Tag
для удаления чужих сайтов из результатов поиска?
Как уменьшить скорость сканирования моего сайта поисковыми роботами Google?
Вопросы о файле robots.txt
Я использую один файл robots.txt для нескольких сайтов. Можно ли указывать полные URL, а не относительные?
Нет. В правилах файла robots.txt (за исключением sitemap:
) должны быть только относительные пути.
Можно ли разместить файл robots.txt в подкаталоге?
Нет. Этот файл должен быть размещен в корневом каталоге сайта.
Я хочу заблокировать доступ к личной папке. Можно ли сделать файл robots.txt недоступным для других пользователей?
Нет. Файл robots.txt доступен всем. Если вы не хотите, чтобы названия папок или файлов с контентом стали известны другим людям, не указывайте эти названия в файле robots.txt. Не рекомендуется передавать разные файлы robots.txt в зависимости от агента пользователя или других атрибутов.
Нужно ли указывать правило allow
, чтобы разрешить сканирование?
Нет. Сканирование будет выполняться и без правила allow
. По умолчанию все URL разрешены. Указывать правило allow
имеет смысл только для того, чтобы переопределить правило disallow
, которое задано в том же файле robots.txt.
Что произойдет, если в файле robots.txt будет ошибка или неподдерживаемое правило?
Обычно у поисковых роботов достаточно гибкие алгоритмы и незначительные ошибки в файле robots.txt никак не сказываются на их работе. В худшем случае неправильное или неподдерживаемое правило будет просто проигнорировано. Googlebot не может угадать, что имел в виду разработчик сайта, и выполняет именно те команды, которые указаны в файле robots.txt. Поэтому, если вы знаете о каких-то ошибках, их лучше исправить.
В какой программе нужно создавать файл robots.txt?
Используйте любую программу, позволяющую создавать текстовые файлы, например Блокнот, TextEdit, vi или Emacs.
Советуем сначала прочитать эту статью.
Создав файл, проверьте его с помощью этого инструмента.
Если я с помощью правила disallow
файла robots.txt заблокирую роботу Googlebot доступ к странице, исчезнет ли она из результатов поиска?
Если заблокировать роботу Googlebot доступ к странице, она может быть удалена из индекса Google.
Однако даже при наличии директивы disallow
в файле robots.txt система Google может показать страницу в качестве подходящего результата поиска (например, если на нее ссылаются другие сайты). Если вы хотите явным образом запретить индексирование страницы, используйте тег noindex
meta
с атрибутом robots или HTTP-заголовок X-Robots-Tag
. В этом случае не следует блокировать доступ к странице в файле robots.txt, поскольку робот Googlebot должен просканировать ее, чтобы обнаружить тег и выполнить директиву. Подробнее о том, как указать, какая информация должна быть доступна Google…
Через какое время изменения в файле robots.txt отразятся на результатах поиска?
Прежде всего должна обновиться копия файла robots.txt в кеше (обычно Google кеширует контент не более чем на один день). Чтобы ускорить этот процесс, отправьте в Google обновленный файл robots.txt.
Однако процесс сканирования и индексирования устроен достаточно сложно, и для некоторых URL обновление информации может занимать продолжительное время даже после обнаружения изменений. Поэтому мы не можем точно сказать, когда изменения отразятся на результатах поиска. Следует также иметь в виду, что URL может появляться в результатах поиска, даже если доступ к нему заблокирован в файле robots.txt и Google не может его просканировать. Если вы хотите, чтобы заблокированные страницы быстрее исчезли из результатов поиска Google, отправьте запрос на их удаление.
Как полностью приостановить сканирование моего сайта на некоторое время?
Чтобы временно остановить сканирование всех URL, возвращайте при обращении к ним (в том числе к файлу robots.txt) код ответа HTTP 503 (service unavailable)
. Робот Googlebot будет периодически пытаться прочитать файл robots.txt, пока он не станет вновь доступен. Не рекомендуется запрещать сканирование с помощью изменений в файле robots.txt.
Мой сервер не учитывает регистр. Как полностью запретить сканирование некоторых папок?
Правила в файле robots.txt указываются с учетом регистра. В таком случае рекомендуется с помощью методов нормализации обеспечить индексирование только одной версии URL.
Количество строк в файле robots.txt уменьшится, и вам будет проще его использовать. Если этот способ не подходит, попробуйте перечислить основные варианты написания имени папки или максимально сократить его, оставив только несколько начальных символов вместо полного имени. Например, вам не нужно перечислять все возможные сочетания строчных и прописных букв для папки /MyPrivateFolder
. Вместо этого можно просто указать варианты для /MyP
(если вы уверены, что других URL для сканирования с такими же начальными символами не существует). Если проблема заключается не в сканировании, можно указать тег meta
с атрибутом robots или HTTP-заголовок X-Robots-Tag
.
Я возвращаю код ответа 403 Forbidden
для всех URL на моем сайте, в том числе для URL файла robots.txt. Почему мой сайт по-прежнему сканируется?
Код статуса HTTP 403 Forbidden
, как и остальные коды 4xx
, означает, что файла robots.txt не существует. Для поисковых роботов это свидетельствует о том, что сканирование всех URL на сайте разрешено. Чтобы запретить роботам сканирование сайта, необходимо открыть им доступ к файлу robots.txt с кодом ответа HTTP 200 OK
и задать в этом файле правило disallow
.
Является ли тег meta
с атрибутом robots заменой файлу robots.txt?
Нет. Файл robots.txt управляет доступностью страниц, а тег meta
с атрибутом robots определяет, индексируется ли страница. Для того чтобы увидеть этот тег, поисковому роботу необходимо просканировать страницу.
Если нужно запретить сканирование страницы (например, в случае, когда она создает высокую нагрузку на сервер), используйте файл robots.txt. Если же просто требуется указать, должна ли страница появляться в результатах поиска, можно воспользоваться тегом meta
с атрибутом robots.
Можно ли с помощью тега meta
с атрибутом robots запретить индексирование отдельного фрагмента страницы?
Нет, тег meta
с атрибутом robots применяется ко всей странице.
Можно ли использовать тег meta
с атрибутом robots за пределами раздела <head>
?
Нет. Тег meta
с атрибутом robots можно добавлять только в раздел <head>
на странице.
Я использую тег meta
с атрибутом robots. Означает ли это, что сканирование страницы не будет выполняться?
Нет. Даже если в теге meta
с атрибутом robots указана директива noindex
, роботы будут периодически сканировать URL, чтобы проверить, не была ли страница meta
изменена.
Чем директива nofollow
в теге meta
с атрибутом robots отличается от атрибута rel="nofollow"
в теге link?
Действие директивы nofollow
тега meta
с атрибутом robots распространяется на все ссылки на странице. Атрибут rel="nofollow"
тега link относится только к той ссылке, в которой он указан.
Дополнительная информация об атрибуте rel="nofollow"
в теге link представлена в статьях, посвященных спаму в комментариях и атрибуту rel="nofollow"
.
Как проверить наличие заголовка X-Robots-Tag
для URL?
Заголовки ответа сервера проще всего анализировать с помощью инструмента проверки URL в Google Search Console. Чтобы проверить заголовки ответа для любого URL, попробуйте выполнить поиск по запросу server header checker.
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons «С указанием авторства 4.0», а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2023-02-09 UTC.
Is there a way to get around the following?
httperror_seek_wrapper: HTTP Error 403: request disallowed by robots.txt
Is the only way around this to contact the site-owner (barnesandnoble.com).. i’m building a site that would bring them more sales, not sure why they would deny access at a certain depth.
I’m using mechanize and BeautifulSoup on Python2.6.
hoping for a work-around
asked May 17, 2010 at 0:35
1
oh you need to ignore the robots.txt
br = mechanize.Browser()
br.set_handle_robots(False)
answered Oct 3, 2010 at 13:02
Yuda PrawiraYuda Prawira
11.9k10 gold badges46 silver badges54 bronze badges
2
You can try lying about your user agent (e.g., by trying to make believe you’re a human being and not a robot) if you want to get in possible legal trouble with Barnes & Noble. Why not instead get in touch with their business development department and convince them to authorize you specifically? They’re no doubt just trying to avoid getting their site scraped by some classes of robots such as price comparison engines, and if you can convince them that you’re not one, sign a contract, etc, they may well be willing to make an exception for you.
A «technical» workaround that just breaks their policies as encoded in robots.txt is a high-legal-risk approach that I would never recommend. BTW, how does their robots.txt read?
answered May 17, 2010 at 0:40
Alex MartelliAlex Martelli
849k169 gold badges1218 silver badges1394 bronze badges
4
The code to make a correct request:
br = mechanize.Browser()
br.set_handle_robots(False)
br.addheaders = [('User-agent', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
resp = br.open(url)
print resp.info() # headers
print resp.read() # content
answered Apr 20, 2017 at 22:16
VladVlad
1,5111 gold badge21 silver badges27 bronze badges
1
Mechanize automatically follows robots.txt, but it can be disabled assuming you have permission, or you have thought the ethics through ..
Set a flag in your browser:
browser.set_handle_equiv(False)
This ignores robots.txt.
Also, make sure you throttle your requests, so you don’t put too much load on their site. (Note, this also makes it less likely that they will detect and ban you).
albert
8,1143 gold badges46 silver badges63 bronze badges
answered May 17, 2010 at 1:16
wistywisty
6,9751 gold badge30 silver badges29 bronze badges
3
The error you’re receiving is not related to the user agent. mechanize by default checks robots.txt directives automatically when you use it to navigate to a site. Use the .set_handle_robots(false) method of mechanize.browser to disable this behavior.
answered Jul 11, 2010 at 23:17
TomTom
6818 silver badges14 bronze badges
Set your User-Agent
header to match some real IE/FF User-Agent.
Here’s my IE8 useragent string:
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; AskTB5.6)
answered May 17, 2010 at 0:39
Stefan KendallStefan Kendall
66k68 gold badges252 silver badges405 bronze badges
0
Without debating the ethics of this you could modify the headers to look like the googlebot for example, or is the googlebot blocked as well?
answered May 17, 2010 at 0:40
Steve RobillardSteve Robillard
13.4k3 gold badges36 silver badges32 bronze badges
2
As it seems, you have to do less work to bypass robots.txt
, at least says this article. So you might have to remove some code to ignore the filter.
answered May 17, 2010 at 0:41
BrunoLMBrunoLM
97.3k83 gold badges294 silver badges450 bronze badges
1
For your first question, see Ethics of robots.txt
You need to keep in mind the purpose of robots.txt. Robots that are crawling a site can potentially wreck havoc on the site and essentially cause a DoS attack. So if your «automation» is crawling at all or is downloading more than just a few pages every day or so, AND the site has a robots.txt file that excludes you, then you should honor it.
Personally, I find a little grey area. If my script is working at the same pace as a human using a browser and is only grabbing a few pages then I, in the spirit of the robots exclusion standard, have no problem scrapping the pages so long as it doesn’t access the site more than once a day. Please read that last sentence carefully before judging me. I feel it is perfectly logical. Many people may disagree with me there though.
For your second question, web servers have the ability to return a 403 based on the User-Agent attribute of the HTTP header sent with your request. In order to have your script mimic a browser, you have to miss-represent yourself. Meaning, you need to change the HTTP header User-Agent attribute to be the same as the one used by a mainstream web browser (e.g., Firefox, IE, Chrome). Right now it probably says something like ‘Mechanize’.
Some sites are more sophisticated than that and have other methods for detecting non-human visitors. In that case, give up because they really don’t want you accessing the site in that manner.
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
1 |
|
03.10.2012, 23:51. Показов 4068. Ответов 20
при вызове robots.txt перекидывает на 403-ю страницу. Не по теме: п.с., модерам, если тема не в том разделе, перенесите.
0 |
813 / 796 / 201 Регистрация: 21.09.2012 Сообщений: 2,656 |
|
04.10.2012, 06:04 |
2 |
Содержимое htaccess
0 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 08:10 [ТС] |
3 |
запрет на чтение .txt тоже нет. Вот .htaccess Код #DirectoryIndex index.php index.html index.htm AddDefaultCharset UTF-8 # убираем PHPSESSID # php_value session.use_trans_sid off php_value upload_max_filesize 1M php_flag magic_quotes_gpc Off php_flag magic_quotes_runtime Off php_flag register_globals Off ErrorDocument 401 /401.html ErrorDocument 403 /403.html ErrorDocument 404 /404.html Options +Indexes #php_value error_reporting 2047 #php_value error_log "/log/" php_flag log_errors off php_flag display_errors off # Заголовок Cache-Control <IfModule mod_headers.c> Header set Cache-Control "no-store, no-cache" </IfModule> # Заголовок Expires <IfModule mod_expires.c> ExpiresActive On ExpiresDefault "now" </IfModule> # защита от несанкционированного доступа к файлу .htaccess # RewriteRule ^.htaccess$ - [F] <Files ~ "^.ht"> Order allow,deny Deny from all </Files> # защита *.inc и *.txt файлов от чтения: <Files ~ ".(inc|dat|dump)$"> Order allow,deny Deny from all </Files> # Удаление дубликатов страниц Options +FollowSymLinks RewriteEngine on # Удаление дубликатов страниц RewriteCond %{HTTP_HOST} ^site.ru RewriteRule (.*) http://www.site.ru/$1 [R=301,L] RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/ RewriteRule ^index.html$ http://www.site.ru/ [R=301,L] # Защита css- и js-файлов от обращения с других файлов RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?site.ru/.*$ [NC] RewriteRule .(js|css)$ - [F] # Защита картинок от просмотра с других сайтов RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?site.ru/.*$ [NC] RewriteRule .(png|gif|jpg|jpeg)$ http://www.site.ru/favicon.png [R,L] RewriteRule ^admin/(.*)$ admin/index.php?route=$1 [L,QSA] RewriteCond %{REQUEST_URI} !^admin #RewriteCond %{REQUEST_URI} !^/favicon.ico RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?route=$1 [L,QSA] Добавлено через 3 минуты
0 |
813 / 796 / 201 Регистрация: 21.09.2012 Сообщений: 2,656 |
|
04.10.2012, 08:17 |
4 |
сайт самописный? Что-то меняли, что перестал читаться? Добавлено через 3 минуты Код <Files robots.txt> Allow from all </Files>
1 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 10:33 [ТС] |
5 |
Спб. попробую.
сайт самописный? Что-то меняли, что перестал читаться? да, самописный. щас точно не помню, что менял, по-мойму всякие защиты.
0 |
887 / 353 / 1 Регистрация: 12.08.2012 Сообщений: 4,401 Записей в блоге: 5 |
|
04.10.2012, 16:47 |
6 |
Love_and_Peace, в httpd.conf наверное стоит запрет
0 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 19:27 [ТС] |
7 |
Попробуй добавить в htaccess еще такие строки не помогло
в httpd.conf наверное стоит запрет а где этот файл находится и как снять запрет?
0 |
887 / 353 / 1 Регистрация: 12.08.2012 Сообщений: 4,401 Записей в блоге: 5 |
|
04.10.2012, 19:37 |
8 |
а где этот файл находится и как снять запрет? 1. У хостера
1 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 19:58 [ТС] |
9 |
1. У хостера у меня на агаве.
0 |
813 / 796 / 201 Регистрация: 21.09.2012 Сообщений: 2,656 |
|
04.10.2012, 20:01 |
10 |
какой адрес сайта?
0 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 20:04 [ТС] |
11 |
house05.ru
0 |
813 / 796 / 201 Регистрация: 21.09.2012 Сообщений: 2,656 |
|
04.10.2012, 20:13 |
12 |
а права какие на файл?
0 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 20:19 [ТС] |
13 |
а права какие на файл? 0644.
0 |
13207 / 6595 / 1041 Регистрация: 10.01.2008 Сообщений: 15,069 |
|
04.10.2012, 20:27 |
14 |
Сам файл robots.txt не причем. На что-угодно.txt выдаётся 403. Вероятно, реврайты где-то что-то лишнее поглощают.
1 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 20:53 [ТС] |
15 |
гьмм.. все rewrite’ы закоментировал, результат тот же.
0 |
813 / 796 / 201 Регистрация: 21.09.2012 Сообщений: 2,656 |
|
04.10.2012, 20:54 |
16 |
может
1 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
04.10.2012, 20:55 [ТС] |
17 |
может ли .htaccess первого сайта влиять на второй? ответ — да!
0 |
813 / 796 / 201 Регистрация: 21.09.2012 Сообщений: 2,656 |
|
04.10.2012, 20:58 |
18 |
ответ — да! Он действует на все папки файлы, того каталога, где он прописан
1 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
05.10.2012, 23:39 [ТС] |
19 |
еще такой вопрос — Надо ли в robots’e добавить www к хосту?
0 |
960 / 801 / 85 Регистрация: 21.07.2010 Сообщений: 3,522 |
|
08.10.2012, 10:38 [ТС] |
20 |
че, никто не составлял robots.txt? как правильно написать?
0 |
I have created a ‘global’ robots.txt file on my Ubuntu Server and located it in
/home/robots.txt
And then in /etc/apache2/apache.conf have added this at the bottom:
Alias /robots.txt /home/robots.txt
and restarted apache.
However when trying to access myvirtualhost.com/robots.txt I get 403 Forbidden.
/home/robots.txt is owned by ‘root’ and chmod 755 (testing as 777 also errors).
If I change Alias /robots.txt /home/robots.txt to Alias /robots.txt /home/myvirualhost/public_html/robots.txt it works — i.e. confirming this Alias rule is running.
I have another (older) server which has this exact same set up (/home/robots.txt owned by root) and it works for all virtualhosts and their users.
I wonder if myvirtualhost.com/robots.txt is running as user myvirtualhost and therefore not got access to /home/robots.txt but not sure as I don’t think my old server had any special permissions set up for this… (can’t remember).
If I remove /home/robots.txt I still get 403 Permission error, rather than not found.
I have multiple virtualhosts so can’t just change it to /home/myonevirualhost/public_html/robots.txt
Any help would be most appreciated.
Thanks
SOLVED:
Added this to the apache.conf file (and needs Required all granted instead of allow form all as running latest version of apache):
**<Location "/robots.txt">
SetHandler None
Require all granted
</Location>**
Alias /robots.txt /home/robots.txt
But I can’t mark it as solved yet as I don’t have enough points to solve within 8 hours