sitemap.xml и Disallow: /*?page=

Аватар пользователя 7Rei 7Rei 30 августа в 20:24

Коллеги! Столкнулся с очень нестандартной ситуацией, буду рад любому совету:
В robots.txt у меня прописан запрет на обход страниц ?page=, по маске Disallow: /*?page=, чтобы из-за многостраничных комментариев и прочего контента не создавалось дубликатов страниц.
Долгое время жил так, ничего не замечая, но в какой-то момент наш аналитик прислал репорт - гугл ругается на карту сайта (sitemap.xml), мол она не доступна к индексации! Разгадка крылась в следующем: страниц на сайте много (больше 40000), и карта автоматически разбилась на страницы (?page=1,2,3,...), по тем самым пейджам, которые закрыты к индексации гуглом..
Тогда просто увеличил кол-во ссылок на одной странице sitemap, в настройках модуля (использую XML sitemap), и все заработало. Мн-во страниц ушло в индекс, что приятно сказалось на росте посещаемости..
Сейчас же проект развивается, кол-во страниц подкрадывается к 50000 (максимальному пределу ссылок для одной страницы), а в скором времени планирует резко увеличиться до 100000 и более страниц. Подскажите, как быть в данной ситуации? Можно ли ?page= для модуля sitemap заменить на что-то другое (хоть ?pg=)?
Хочется чтобы карта генерировалась так же автоматически, и так же разбивалась на страницы.

Кстати, в robots.txt пробовал делать так:
Disallow: /*?page=
Allow: /*.xml?page=
Не помогает.

0 Thanks

Комментарии

Аватар пользователя Semantics Semantics 30 августа в 20:48
1

У вас проект на шестёрке?

На семерке и выше на страницах пагинации, в том числе комментариев, есть canonical, который по-умолчанию смотрит на первую страницу.

Вообще, современные тренды - это уникализация страниц пагинации и увеличение индекса за счёт этого.
Если уж очень хочется закрывать пагинацию, то можно туда сделать "follow, noindex" через metatags.

Аватар пользователя 7Rei 7Rei 30 августа в 21:08

Совершенно верно, на шестерке!
Про canonical и "follow, noindex" через metatags - спасибо! Возможно это отличная альтернатива закрытию пагинации из robots!

Аватар пользователя Semantics Semantics 30 августа в 21:23

Тогда не metatags, а nodewords, в те далёкие времена он так звался.
Но бежать сломя голову, резко внедрять canonical - я бы вам не советовал. Нет надежды на вашего аналитика

Аватар пользователя 7Rei 7Rei 30 августа в 21:31

Ага.. В любом случае это хорошее направление!
А какие риски есть у внедрения canonical (если до этого пагинация и прочее было закрыто от индексации, и дублей на сайте не было замечено)?

Аватар пользователя Semantics Semantics 30 августа в 21:34

Риски такие, что на любом большом проекте нужно 10 раз подумать перед такими изменениями.
А если будете делать вкупе с редизайном, переездом на https, изменениями структуры, редиректами, то потом вообще концов не найдёте

Аватар пользователя adano adano 30 августа в 21:53
1

Понравилась задача, накатал костыль для 7ки. Может тоже кому пригодится:

<?php
function mymodule_url_outbound_alter(&$path, &$options$original_path) {
  if (
$path == 'sitemap.xml' && isset($options['query']['page'])) {
    
$path 'sitemap-' $options['query']['page'] . '.xml';
    unset(
$options['query']['page']);
  }
}
function 
mymodule_url_inbound_alter(&$path$original_path$path_language) {
  if (
preg_match('|sitemap-(\d+).xml|'$path$matches)) {
    
$path 'sitemap.xml';
    
$_GET['page'] = $matches[1];
  }
}
?>
Аватар пользователя 7Rei 7Rei 30 августа в 22:09

Протестировал, работает! Спасибо, обязательно пригодится, отличный вариант!!