Перейти к основному содержанию
Robots.txt для мультиязычного сайта на Drupal

Если вы решили сделать свой сайт на Друпал мультиязычным, готовьтесь к сюрпризам в плане появления дублирующих страниц, которые по умолчанию должны быть закрыты даже в стоковом robots.txt. Это критическая SEO ошибка, которую может сразу не заметить даже опытный SEO друпаллер. Например, все знают сколько дублей делают страницы ответа на комментарий /comment/reply/, и каждый друпаллер знает, что эти страницы закрыты даже в стоковом robots.txt

robots.txt в стоке

User-agent: *
Crawl-delay: 10
# CSS, JS, Images
Allow: /misc/*.css$
Allow: /misc/*.css?
Allow: /misc/*.js$
Allow: /misc/*.js?
Allow: /misc/*.gif
Allow: /misc/*.jpg
Allow: /misc/*.jpeg
Allow: /misc/*.png
Allow: /modules/*.css$
Allow: /modules/*.css?
Allow: /modules/*.js$
Allow: /modules/*.js?
Allow: /modules/*.gif
Allow: /modules/*.jpg
Allow: /modules/*.jpeg
Allow: /modules/*.png
Allow: /profiles/*.css$
Allow: /profiles/*.css?
Allow: /profiles/*.js$
Allow: /profiles/*.js?
Allow: /profiles/*.gif
Allow: /profiles/*.jpg
Allow: /profiles/*.jpeg
Allow: /profiles/*.png
Allow: /themes/*.css$
Allow: /themes/*.css?
Allow: /themes/*.js$
Allow: /themes/*.js?
Allow: /themes/*.gif
Allow: /themes/*.jpg
Allow: /themes/*.jpeg
Allow: /themes/*.png
# Directories
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /profiles/
Disallow: /scripts/
Disallow: /themes/
# Files
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /INSTALL.sqlite.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlrpc.php
# Paths (clean URLs)
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /filter/tips/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
Disallow: /user/logout/
# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=comment/reply/
Disallow: /?q=filter/tips/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
Disallow: /?q=user/logout/

Вся соль в том, что когда вы подлключаете мультиязычность используя подпапку а не поддомен, вы получаете путь формата site/uk/comment/reply/ который в robots.txt представленном выше не запрещен к индексации. Собственно говоря, ни одна из директив Disallow не будет обрабатываться на страницах, имеющих префикс языка, а отсюда вы получаете просто колоссальный рост дублей страниц. 

Чтобы это исправить, нужно внести небольшие правки в файл robots.txt просто добавив * перед каждым значением, которое должно срабатывать на страницах как с языком  (site/uk/comment/reply/) так и без него (site/comment/reply/). Например вместо Disallow: /comment/reply/ мы пишем Disallow: /*comment/reply/, а еще лучше Disallow: /*comment/, чтобы вообще закрыть все страницы, имеющие в своем пути /comment/

Также я удалил директиву Crawl-delay, которая больше не работает, а также подправил некоторые директивы, на выходе рекомендую такой вот robots:

User-agent: *
# CSS, JS, Images
Allow: /*misc/*.css$
Allow: /*misc/*.css?
Allow: /*misc/*.js$
Allow: /*misc/*.js?
Allow: /*misc/*.gif
Allow: /*misc/*.jpg
Allow: /*misc/*.jpeg
Allow: /*misc/*.png
Allow: /*modules/*.css$
Allow: /*modules/*.css?
Allow: /*modules/*.js$
Allow: /*modules/*.js?
Allow: /*modules/*.gif
Allow: /*modules/*.jpg
Allow: /*modules/*.jpeg
Allow: /*modules/*.png
Allow: /*profiles/*.css$
Allow: /*profiles/*.css?
Allow: /*profiles/*.js$
Allow: /*profiles/*.js?
Allow: /*profiles/*.gif
Allow: /*profiles/*.jpg
Allow: /*profiles/*.jpeg
Allow: /*profiles/*.png
Allow: /*themes/*.css$
Allow: /*themes/*.css?
Allow: /*themes/*.js$
Allow: /*themes/*.js?
Allow: /*themes/*.gif
Allow: /*themes/*.jpg
Allow: /*themes/*.jpeg
Allow: /*themes/*.png
# Directories
Disallow: /*includes/
Disallow: /*misc/
Disallow: /*modules/
Disallow: /*profiles/
Disallow: /*scripts/
Disallow: /*themes/
# Files
Disallow: /*CHANGELOG.txt
Disallow: /*cron.php
Disallow: /*INSTALL.mysql.txt
Disallow: /*INSTALL.pgsql.txt
Disallow: /*INSTALL.sqlite.txt
Disallow: /*install.php
Disallow: /*INSTALL.txt
Disallow: /*LICENSE.txt
Disallow: /*MAINTAINERS.txt
Disallow: /*update.php
Disallow: /*UPGRADE.txt
Disallow: /*xmlrpc.php
# Paths (clean URLs)
Disallow: /*admin/
Disallow: /*comment/
Disallow: /*filter/
Disallow: /*node/
Disallow: /*taxonomy/term/
Disallow: /*search/
Disallow: /*user/
# Paths (no clean URLs)
Disallow: /?q=admin/
Disallow: /?q=comment/
Disallow: /?q=filter/tips/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/

Sitemap: DOMAIN/sitemap.xml

Проверяем работоспособность файла через Яндекс вебмастер, или Google search console.

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

Об авторе

Автор этого блога. В SEO более 10 лет. Кроме SEO интересуюсь всем, что связано с технологиями и заработком в интернете, о чем и стараюсь делиться с читателями.