metrpro

Дубли title

Recommended Posts

Воспользовавшись удобнейшим инструментом Google по поиску повторяющихся заголовков (тег title), я обнаружил следующую беду:

- некоторые новости дублируются по двум адресам - один это news/ЧПУ, второй - news/newsID.html

- некоторые объявления влетают в индекс почему-то тоже двумя способами - без слэша в конце и с ним

- чтобы исключить возникновения дублей страниц поиска и объявлений необходимо добавление номера страницы в title (типовой способ в Настройках почему-то не работает) и - обязательно - добавление id объявления в title

doubletitle.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, у меня тоже вопросик по дублям, очень странное твориться =)

Один и тот же объект влез в 2-е категории, при чём 2-й у меня нет (нет таких урлов, должна была вылезти 404, но нет), даже айдишки одинаковые. Ещё дело в том, что у меня нет такой вложенности - http://doob.by/kupit-kvartiry/komnati/ 

http://prntscr.com/b33tf1  (* нет такой вложенности)

http://doob.by/arenda-kvartir/komnati/realty130

http://doob.by/kupit-kvartiry/komnati/realty130

 

Ещё проблема, в том, что создаются страницы со слешем и без, одинаковые (уже штук 300)

http://prntscr.com/b33u64

Подскажите, как быть, как исправить? Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Цитата

- некоторые новости дублируются по двум адресам - один это news/ЧПУ, второй - news/newsID.html

учтено. вам я сразу добавил редирект. на версии 1.4.25 модуля Новости он будет уже штатным.

 

Цитата

 некоторые объявления влетают в индекс почему-то тоже двумя способами - без слэша в конце и с ним

Цитата

Ещё проблема, в том, что создаются страницы со слешем и без, одинаковые (уже штук 300)

Тут решение состоит из двух частей. 1 - определиться со схемой адреса - будете ли вы предпочитать адреса со слешем на конце или без слеша. и тогда уже второе - путем прописывания правил для htaccess делать редирект с "неправильных адресов" на "правильные".

Цитата

 чтобы исключить возникновения дублей страниц поиска и объявлений необходимо добавление номера страницы в title (типовой способ в Настройках почему-то не работает)

Вы включили указание куда ставить название номера страницы. Но не включили сам вывод номеров страницы "Добавлять к заголовку страницы номер текущей страницы".

 

Цитата

Один и тот же объект влез в 2-е категории, при чём 2-й у меня нет (нет таких урлов, должна была вылезти 404, но нет)

Это я кажется знаю откуда ноги растут. У меня уже лежит обновка под то дело. Нужно только проверить еще на себе будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, abushyk сказал:

Тут решение состоит из двух частей. 1 - определиться со схемой адреса - будете ли вы предпочитать адреса со слешем на конце или без слеша. и тогда уже второе - путем прописывания правил для htaccess делать редирект с "неправильных адресов" на "правильные".

Дело не в htaccess (позвольте не согласиться). Дело в том, что в sitemap передаются ссылки на объявления без слэша, а на самом сайте они все со слэшем. Если не загонять вручную страницы через "посмотреть как google-бот"  - что приводит к индексации со слэшем - то и конфликта не возникает.

10 часов назад, abushyk сказал:

Вы включили указание куда ставить название номера страницы. Но не включили сам вывод номеров страницы "Добавлять к заголовку страницы номер текущей страницы".

Я включал. Результата не увидел и выключил. Думал, мне кто переменную подскажет, я бы её через header.tpl включил

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
7 часов назад, metrpro сказал:

Дело не в htaccess

Как работает движек. Он получает некоторый линк, чистит его от фрагменто, анкоров, параметров и получает литеральную строку. Например /somelink/. После этого он отстригает лидирующие и финальные слеши

/somelink/  ---> somelink

/somelink/aaaa/  ---> somelink/aaa

Т.е. с его точки зрения адрес site.ru/somelink/aaaa/ и site.ru/somelink/aaaa эквивалентны. Что  принципе правильно, поскольку финальные слеши несут исключительно субъективную информацию и сами по себе не означают ровным счетом ничего. Вне зависимости от того, что у вас выдает сайтмап, со слешем или без, нужно принимать решение какой урл правильный. Делается это либо через хацесс, либо внутри кода, где проводится анализ того какой урл пришел, был ли у него слеш и какой урл допустим. В результате происходит либо отработка, либо 301 редирект на "правильную" ссылку. Обработка в коде обычно более громоздка, поскольку требует сохранения и проверки множества каких-то правил. Тогда как хтацесс делает то же самое, но чуть ранее. Так же следует помнить, что не смотря на то какие урлы выдает сайтмап, могут стоять ссылки с других сайтов, которые могут быть не такими как в сайтмапе, без слеша например. иными словами обработчик-анализатор должен быть в любом случае. 

Этот случай аналогичен борьбе с www субдоменом. Он точно так же редиректится с хтацесса. И совершенно не играет роли то, что в сайтмапе у вас никогда не будет ссылок с www - они просто есть и все.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 13.05.2016 в 21:04, abushyk сказал:
Цитата

Ещё проблема, в том, что создаются страницы со слешем и без, одинаковые (уже штук 300)

Тут решение состоит из двух частей. 1 - определиться со схемой адреса - будете ли вы предпочитать адреса со слешем на конце или без слеша. и тогда уже второе - путем прописывания правил для htaccess делать редирект с "неправильных адресов" на "правильные".

Просто прописать такое правило?

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]

 

В 13.05.2016 в 21:04, abushyk сказал:
Цитата

Один и тот же объект влез в 2-е категории, при чём 2-й у меня нет (нет таких урлов, должна была вылезти 404, но нет)

Это я кажется знаю откуда ноги растут. У меня уже лежит обновка под то дело. Нужно только проверить еще на себе будет.

А можно будет получить его отдельно? Или покупать полный пакет обновлений? *у меня закончился период 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 12.05.2016 в 22:04, abushyk сказал:

Вы включили указание куда ставить название номера страницы. Но не включили сам вывод номеров страницы "Добавлять к заголовку страницы номер текущей страницы".

Блин, Константин, это хреновина включает номер страницы в теле страницы под тегом h2

А мне надо в метатитле - и не так официально, как СТРАНИЦА 2, а как-то проще, типа стр. 2

Какая это переменная, я её сам воткну

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 18.05.2016 в 15:15, DoobBY сказал:

А можно будет получить его отдельно? Или покупать полный пакет обновлений? *у меня закончился период 

В крайнем случае можно будет попытаться его вычленить и доставить отдельно, но я бы очень не рекомендовал не обновлять system.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 19.05.2016 в 11:14, metrpro сказал:

Какая это переменная, я её сам воткну

Настройки - Общее - Куда добавлять кличество страниц в заголовке

У этой настройки есть три положения - добавлять в настраничный заголовок, в мета-заголовк и в оба. Т.е. включаете опцию добавлять страницы в заголовок и уже эти переключателем решаете куда именно. А вот изменить само слово страница не выйдет - это свосем системное слово и переназначить в шаблоне его не получится. А если локализровать сам код, то там получится просто неоправданно большой кусок кода, только ради одного слова.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 18.05.2016 в 15:15, DoobBY сказал:

Просто прописать такое правило?

Для редиректа всего с "без слеша" на "со слешем" я использую вот такое правило

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*).php$
RewriteCond %{REQUEST_URI} !(.*)(.png|.jpg|.gif|.xml|.wav|.html)$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

1. Все дубли возникают по косякам самого движка - Костя уже писал тут, что для разработчиков это было непринципиально. В результате имеем, что ссылки для сеток grid_list и grid_thumbs системой генерируются со слэшем, как и для списка новых объявлений в футере. А вот для похожих объявлений на странице просмотра конкретного - без слэша. Ссылки на категории в меню и в хлебных крошках - тоже без слэша. Ссылки на новости - со слэшем. И личное меню залогинненого пользователя - тоже со слэшем.

Т.е. тут такая чехарда, кто в лес, кто по дрова. Это все порождает дубли.

2. Я сам сторонник лаконичности и изначально попробовал перевести .htaccess на безслэшевый вариант. Но тогда путь к админке сайта оказался закрыт. И пришлось выбирать вариант с принудительным слэшем в конце.

Однако, не все гладко при реализации любого пути и у меня к разработчикам вопрос:

- как добавить слэш в ссылки хлебных крошек на странице просмотра объявления и в сетках?

UPD:

Еще одна выползающая нестыковка - это несоответствие формируемых движком ссылок слэш/безслэша и формирование ссылок в sitemap.xml:

- ссылки на объявления передаются в карту без слэша

- ссылки на predefinedlinks - без слэша

- ссылки на категории (из структуры) - со слэшем

! кстати, если верить google search console, в sitemap передаются ссылки на неактивные элементы структуры !

- статичные страницы - со слэшем

- новости - со слэшем

- статьи - без слэша (причем с добавкой .html, но это ерунда)

Отсюда второй вопрос - как добавить обязательный слэш во всех ссылках в карте сайта?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем огромное спасибо за "помощь", проблему удалось решить исключительно путем вставки в двух местах файла /apps/sitemap/admin/admin.php условий проверки последнего символа передаваемого в sitemap URL.

Тема мусолилась два месяца, поддержка "на высоте". :angry:

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
4 часа назад, metrpro сказал:

Всем огромное спасибо за "помощь", проблему удалось решить исключительно путем вставки в двух местах файла /apps/sitemap/admin/admin.php условий проверки последнего символа передаваемого в sitemap URL.

Тема мусолилась два месяца, поддержка "на высоте". :angry:

Подскажите, пожалуйста, где вы его вставляли? Код из него или сам файл? Заранее спасибо =)

* все мы маемся =)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
19 часов назад, DoobBY сказал:

Подскажите, пожалуйста, где вы его вставляли? Код из него или сам файл? Заранее спасибо =)

Вообщем, у меня было решение для предпоследней версии модуля sitemap 1.3.9, сегодня обновил до свежей 1.3.10, вот решение для нее (там изменена процедура формирования УРЛ для карты).

1. Нужен файл /apps/sitemap/admin/admin.php

2. Примерно на 125 строке расположена функция, формирующая вывод файла карты

	protected function createSitemapFile($file_name, $urls){

3. Через несколько строк начинается условие проверки каждого УРЛ на наличие в его начале "http://" (т.е. проверяется, абсолютная ссылка или относительная)

				if(preg_match('/^(http:|https:)/', $u['url'])){

4. Находим чуть ниже строку

$ret.='<loc>'.$u['url'].'</loc>'."\n";

И вместо неё вставляем условие проверки последнего символа (ЕСЛИ последний_символ НЕ "/", ТО выводим урл с "/", ИНАЧЕ оставляем, как есть):

if(substr($u['url'], -1) != '/') {$ret.='<loc>'.$u['url'].'/</loc>'."\n";}
else
{
{$ret.='<loc>'.$u['url'].'</loc>'."\n";}
}

5. Спускаемся ниже и строку

$ret.='<loc>'.$this->site_link.$u['url'].'</loc>'."\n";

Меняем на

if(substr($u['url'], -1) != '/') {$ret.='<loc>'.$this->site_link.$u['url'].'/</loc>'."\n";}
else
{
{$ret.='<loc>'.$this->site_link.$u['url'].'</loc>'."\n";}
}

6. Все. Чтобы увидеть результат, в НАСТРОЙКАХ \ SITEMAP админки поменяйте время формирования карты сайта (на время).

PS: Предупреждаю, что перед этим необходимо все ссылки в шаблонах проставить со слэшем в конце (_view, _grid_thumbs, _grid_list, menu_decorator, ссылки на любые статичные страницы, может еще где найдете), актуализировать disallow в robots.txt (по умолчанию там часть закрытых категорий стоит без слэша), а также настроить 301 редирект в .htaccess:

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

PPS: Вот, к чему приводит, когда сам сайт причесываешь на слэш в конце каждой ссылки, а в sitemap бардак!!! Каждая страница вгоняется дважды в индекс, что приводит к возникновению большого количества дублей!

yand.jpg

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 10.05.2016 в 19:44, metrpro сказал:

Воспользовавшись удобнейшим инструментом Google по поиску повторяющихся заголовков (тег title), я обнаружил следующую беду:

- некоторые новости дублируются по двум адресам - один это news/ЧПУ, второй - news/newsID.html

- некоторые объявления влетают в индекс почему-то тоже двумя способами - без слэша в конце и с ним

- чтобы исключить возникновения дублей страниц поиска и объявлений необходимо добавление номера страницы в title (типовой способ в Настройках почему-то не работает) и - обязательно - добавление id объявления в title

doubletitle.jpg

а где я могу увидеть номер страницы чтобы добавить ее в тайт? как в этом случае должен выглядеть тайт? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 27.05.2016 в 23:54, abushyk сказал:

Для редиректа всего с "без слеша" на "со слешем" я использую вот такое правило


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*).php$
RewriteCond %{REQUEST_URI} !(.*)(.png|.jpg|.gif|.xml|.wav|.html)$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

 

У меня не работает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
В 06.07.2016 в 08:03, metrpro сказал:

RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*[^/])$ $1/ [L,R=301]

И это мимо

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну если вышеперечисленные редиректы у кого то не срабатывают из за настроек сервера, то советую в header.tpl поставить проверку условия последнего символа url и при необходимости добавлять указание канонической страницы. Можно, в принципе, и без проверки условия

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Только что, metrpro сказал:

Ну если вышеперечисленные редиректы у кого то не срабатывают из за настроек сервера, то советую в header.tpl поставить проверку условия последнего символа url и при необходимости добавлять указание канонической страницы. Можно, в принципе, и без проверки условия

а это как?   вы используете каноникал? подскажите как?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Минималья рекомендация, от себятинка.

Если что-то делаете по сайту ночью и не получается, сделайте это утром следующего дня. Сегодня Констанцин помог разобраться и объяснил бестолочи, спасибо за помощь.

Вот что сработало у меня:

RewriteCond %{REQUEST_METHOD} !=POST [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*).php$
RewriteCond %{REQUEST_URI} !(.*)(.png|.jpg|.gif|.xml|.wav|.html)$
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас