Сделать правильный файл robots.txt для WordPress очень важно. Благодаря ему поисковики будут знать - что можно и что нельзя индексировать. То есть в поисковой выдаче будет только то, что нужно, без дублей страниц и внутренностей WordPress.
Пример файла robots.txt
User-Agent: *
Disallow: /cgi-bin
Disallow: /wp-
Disallow: /?s=
Disallow: *&s=
Disallow: /search
Disallow: /author/
Disallow: *?attachment_id=
Disallow: */feed
Disallow: */rss
Disallow: */embed
Allow: /wp-content/uploads/
Allow: /wp-content/themes/
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-*.svg
Allow: /wp-*.pdf
Sitemap: https://site.ru/sitemap_index.xml
Раньше для Яндекса необходима было директива Host, которая обозначала главное зеркало сайта. Теперь в ней нет надобности, для определения главного зеркала сайта используется 301 редирект.
Как добавить файл robots.txt в WordPress
Можно скачать наш плагин Robots.txt Editor:
Либо добавить в файл functions.php следующий код:
add_filter( 'robots_txt', 'add_robotstxt' );
function add_robotstxt($text){
$site_url = get_site_url();
$text .= "User-Agent: *
Disallow: /cgi-bin
Disallow: /wp-
Disallow: /?s=
Disallow: *&s=
Disallow: /search
Disallow: /author/
Disallow: *?attachment_id=
Disallow: */feed
Disallow: */rss
Disallow: */embed
Allow: /wp-content/uploads/
Allow: /wp-content/themes/
Allow: /*/*.js
Allow: /*/*.css
Allow: /wp-*.png
Allow: /wp-*.jpg
Allow: /wp-*.jpeg
Allow: /wp-*.gif
Allow: /wp-*.svg
Allow: /wp-*.pdf
Sitemap: $site_url/sitemap_index.xml";
return $text;
}
Данный способ работает и в мультисайтовой версии WordPress. Для каждого сайта сети будет отображаться правильный Sitemap. Sitemap будет таким, если используется плагин Yoast SEO.
Файл robots.txt не является гарантией, что закрытые в нем страницы не будут проиндексированы, поэтому дубли контента нужно дополнительно скрыть с помощью 301 редиректа в файле .htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^replytocom= [NC]
RewriteRule (.*) $1? [R=301,L]
RewriteRule ^feed$ /$1 [R=301,L]
RewriteRule (.*)/feed$ /$1 [R=301,L]
RewriteRule (.+)/comment-page /$1 [R=301,L]
RewriteRule (.+)/trackback /$1 [R=301,L]
RewriteRule (.+)/comments /$1 [R=301,L]
RewriteRule (.+)/attachment /$1 [R=301,L]
RewriteCond %{QUERY_STRING} ^attachment_id= [NC]
RewriteRule (.*) $1? [R=301,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
Благодаря плагину Yoast SEO файл .htaccess можно отредактировать из админки WordPress (пункт меню плагина "Инструменты"-> "Редактор файлов").
Обновлено: 17.06.2019
Вам помогла эта статья? Оцените!
Для мультисайта плагин устарел. Полдня ищу решение(
А почему устарел? Я им пользуюсь на этом сайте, и все работает.
Вот пример для сети сайтов.
- для главного сайта:
https://inprocess.by/robots.txt
- Для регионального сайта на поддомене:
https://grodno.inprocess.by/robots.txt
Было бы замечательно, если бы в статье было разъяснение для чего нужно закрывать некоторые папки. В частности меня интересуют папки /cgi-bin и /wp-
Их нужно закрывать, чтобы поисковики не индексировали файлы движка, либо технические папки на хостинге.