dmpress
-
Публикации
85 -
Зарегистрирован
-
Посещение
-
Days Won
6
Сообщения, опубликованные пользователем dmpress
-
-
14 минуты назад, Дмитрий Кондин сказал:Да, просто возьмите весь код что я скинул и поставьте себе.
ничего не изменилось
если подстановочный алиас realty - в письме ссылка с адресом /realty123 - при переходе по ней открывается страница с адресом /realty123
если ставлю свой подстановочный алиас rest - в письме ссылка с адресом /realty123 при переходе - открывается страница ошибки 404
еще изменил в этой функции везде realty на rest - тоже не заработало))
-
23 часа назад, Дмитрий Кондин сказал:в /template/frontend/ВАШ_ШАБЛОН/main/main.php
у вас есть такая функция?
У нее такие же строчки?
или вы про это сообщение?))
-
В 25.02.2020 в 11:51, Дмитрий Кондин сказал:В коде баг, нет учета нестандарного алиаса.
Верните realty и будет работать.
У вас если он все-равно нигде не используется, то вам какая разница?
С адресов /realty123 - идет редирект на нужный адрес со статусом 301 поэтому поисковик не будет видеть эти дубли.
я вот про это - редирект не идет
23 минуты назад, Дмитрий Кондин сказал:Вот я вам и предлагаю замените у себя функцию на ту что я скинул вам выше.
Вы про это?
21 час назад, Дмитрий Кондин сказал:Видите этот код
preg_match('/realty/', $requesturi)
Поменяйте там realty на свой алиас, и попробуйте.
здесь имеется в виду свой алиас - "подстановочная часть стандартного алиаса объявления"?
-
6 часов назад, Дмитрий Кондин сказал:У вас в вашем файле везде realty алиас стандартный.
Дмитрий, я же об этом и пишу.
Я изменил свой подстановочный алиас на стандартный. Но всё работает не совсем корректно - письмо приходит как и раньше со ссылкой вида /realty123, ссылка нормально открывается (если подстановочный алиас нестандартный - то ссылка не открывается), но она открывается по адресу /realty123 вместо адреса, который формируется на сайте в соответствии с заданными условиями расширенных алиасов,
т.е. переадресация с адреса /realty123 на правильный адрес не происходит - а значит это дубль нормальной страницы и он будет проиндексирован при включенном обходе по метрике.
Мы как будто говорим на разных языках))
Давайте ещё раз. Я установил следующие правила в настройках, чтобы было понятно заскринил всю страницу.
При этих правилах по ссылке из письма "Заявка на объект" переход происходит на дубль объекта с адресом /realty123
Как сделать так, чтобы переход происходил на нормальную страницу объекта?
Попробуйте на демо - там тоже самое.
-
30 минут назад, Дмитрий Кондин сказал:Поменяйте там realty на свой алиас, и попробуйте.
попробовал и так и там ещё есть чуть ниже
if (1 == $this->getConfigValue('apps.seo.level_enable') && preg_match('/^realty/', $requesturi))
тоже поставил свой алиас, но не сработало - и так и так подставляется realty и страница открывается с ошибкой
но я не понимаю почему мы меняем realty на мой алиас?
ведь когда прописываю realty - письмо корректно открывается по адресу site.ru/realty-77 (для примера), меня не устраивает что это дубль существующей страницы и редирект на существующую не происходит, как написано выше здесь
вот мой полный исходный файл main
-
54 минуты назад, Дмитрий Кондин сказал:у вас есть такая функция?
у меня вот так, шаблон Новосёл
function isRealtyDetected($requesturi) { $result = false; $unknown_address = false; $realty_id = false; if (!$result && 1 == $this->getConfigValue('apps.seo.data_alias_enable')) { $url_string_parts = explode('/', $requesturi); if (count($url_string_parts) > 0) { $possible_alias = $url_string_parts[count($url_string_parts) - 1]; $possible_alias = preg_replace('/[^A-Za-z0-9_-]/', '', urldecode($possible_alias)); if ($possible_alias != '') { $DBC = DBC::getInstance(); $query = "SELECT id FROM " . DB_PREFIX . "_data WHERE translit_alias=? LIMIT 1"; $stmt = $DBC->query($query, array($possible_alias)); if ($stmt) { $ar = $DBC->fetch($stmt); if ((int) $ar['id'] > 0) { $realty_id = (int) $ar['id']; $this->growCounter('data', 'id', $realty_id, $this->getSessionUserId()); require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/frontend/view/kvartira_view.php'); $kvartira_view = new Kvartira_View(); if ($html = $kvartira_view->main($realty_id)) { $this->template->assert('main', $html); $result = true; } } } } } } if (!$result && preg_match('/realty/', $requesturi)) { if (1 == $this->getConfigValue('apps.seo.level_enable') && preg_match('/^realty/', $requesturi)) { $realty_id = $this->getIDfromURI($requesturi); if ($realty_id) { $query = 'SELECT topic_id FROM ' . DB_PREFIX . '_data WHERE id=?'; $DBC = DBC::getInstance(); $stmt = $DBC->query($query, array($realty_id)); if ($stmt) { $ar = $DBC->fetch($stmt); $topic_id = $ar['topic_id']; } require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/admin/structure/structure_manager.php'); $Structure_Manager = new Structure_Manager(); $category_structure = $Structure_Manager->loadCategoryStructure(); if ($category_structure['catalog'][$topic_id]['url'] != '') { $parent_category_url = $category_structure['catalog'][$topic_id]['url'] . '/'; } else { $parent_category_url = ''; } if (1 == $this->getConfigValue('apps.seo.html_prefix_enable')) { $new_location = SITEBILL_MAIN_URL . '/' . $parent_category_url . 'realty' . $realty_id . '.html'; } else { $new_location = SITEBILL_MAIN_URL . '/' . $parent_category_url . 'realty' . $realty_id; } header('HTTP/1.1 301 Moved Permanently'); header('Location: ' . $new_location); exit(); } } elseif (1 == $this->getConfigValue('apps.seo.level_enable') && !preg_match('/^realty/', $requesturi)) { $realty_id = $this->getIDfromURI($requesturi); require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/frontend/view/kvartira_view.php'); $kvartira_view = new Kvartira_View(); $html = $kvartira_view->main($realty_id); if ($html) { $this->growCounter('data', 'id', $realty_id, $this->getSessionUserId()); $this->template->assert('main', $html); $result = true; } } elseif (0 == $this->getConfigValue('apps.seo.level_enable') && preg_match('/^realty/', $requesturi)) { $realty_id = $this->getIDfromURI($_SERVER['REQUEST_URI']); require_once(SITEBILL_DOCUMENT_ROOT . '/apps/system/lib/frontend/view/kvartira_view.php'); $kvartira_view = new Kvartira_View(); $html = $kvartira_view->main($realty_id); if ($html) { $this->growCounter('data', 'id', $realty_id, $this->getSessionUserId()); $this->template->assert('main', $html); $result = true; } } } return $result; }
-
14 минуты назад, Дмитрий Кондин сказал:Верните realty и будет работать.
вернул - заработало, но
14 минуты назад, Дмитрий Кондин сказал:С адресов /realty123 - идет редирект на нужный адрес со статусом 301 поэтому поисковик не будет видеть эти дубли.
редирект с этих адресов не идёт, открываются страницы с этими урл /realty123 что не есть хорошо, особенно с учетом того, что стоит обход по метрике... будут дубли...
как сделать чтобы редирект работал?
-
1 час назад, Дмитрий Кондин сказал:Поэтому у вас у объявлений будут свои алиасы, и вам нужно просто вернуть опцию в исходное значение = realty
Не совсем понял ответ
У меня эта опция также изменена
1 час назад, Дмитрий Кондин сказал:Подстановочная часть стандартного алиаса объявления (apps.seo.realty_alias)
и не равна realty. Но причем здесь это? Это значение у меня всё равно нигде не подставляется. Везде формируются урл по заданному выше правилу.
Для seo очень плохо если объявление будет доступно по разным url - это дубли страниц, зачем их плодить?
Поэтому если есть возможность менять урл, должна быть возможность вставлять в письмо текущий url объявления. Как его можно подставлять из базы данных?
1 час назад, Дмитрий Кондин сказал:Сохраняется нестандартный алиас в поле data.translit_alias в базе данных.
Какой оператор использовать в шаблоне письма? Я так понимаю надо где-то сформировать новый realty_href_new и подставить его потом сюда
В 20.02.2020 в 08:45, Дмитрий Кондин сказал:<a href="http://{$server_name}{$estate_folder}{$realty_href_new}">
Как это реализовать?
-
-
4 часа назад, Дмитрий Кондин сказал:$smarty->assign('realty_href', $this->getRealtyHref($realty_id));
там есть такая строка
а причем здесь правила? проблема в этом getRealtyHref($realty_id) он почему-то возвращает левый урл
попробуйте у себя на демо версии - задайте правила и сделайте заявку на объект (доп. поля)
сейчас еще проверил раздел Сообщения у аккаунта, который подал объявление - там ссылка на объявление в сообщениях тоже неправильная
-
Напишите, пожалуйста, расшифровку кодов, которые можно вставлять в шаблоны писем. Или хотя бы ответ на следующий вопрос.
Сейчас в шаблоне письма "Заявка на объект" для вывода адреса объявления используется следующий код <a href="http://{$server_name}{$estate_folder}{$realty_href}">
При этом если разрешена установка нестандартных алиасов и прописаны поля для их формирования, в этом письме-заявке, которое отправляется из карточки объявления, выводится неверная ссылка на объявление.
Выводится url со словом realty (нигде не используется, было в шаблоне по умолчанию) вместо текущего сформированного url в соответствии с настройками.
Как изменить строку кода в шаблоне чтобы выводился реальный адрес объявления?
-
38 минут назад, doma сказал:и что это дало ? в чем преимущество ?
https://yandex.ru/support/webmaster/robot-workings/canonical.html
-
47 минут назад, abushyk сказал:тогда после вот этой
$REQUESTURIPATH = Sitebill::getClearRequestURI();
Будет норм.
Супер! Спасибо, всё работает!
-
25 минут назад, abushyk сказал:Находим две строки
$REQUESTURIPATH = Sitebill::getClearRequestURI(); $this->template->assert('REQUESTURIPATH', $REQUESTURIPATH);
Второй строки нет в файле main.php в шаблоне Новосел...
Прикрепляю исходный файл
-
даже вот такой код нашел на просторах интернет:
************************************
Ниже приведён код, который следует вставить между <head></head> либо сделать через функцию.
<?
if((!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') || $_SERVER['SERVER_PORT'] == 443){
$protocol = 'https://';
}else{
$protocol = 'http://';
}
$url = $protocol.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
$urlend = strrpos($url, '?', -1); // Находим и удаляем все параметры (номер страницы, параметры фильтра и тд.)
$url = substr($url, 0, $urlend);
if(mb_substr($url, -1) == '/'){ // Тут оставляем, если ссылки на сайте не заканчиваются на /, либо удаляем, если заканчиваются на /.
$url = substr($url, 0, -1);
}
echo '<link rel="canonical" href="'.$url.'"/>';
?>
Немного подробнее про код.
Вначале определяем, открывается ли сайт по безопасному протоколу или нет.
Потом собираем наш URL из протокола ($protocol), домена ($_SERVER['SERVER_NAME']) и ссылки ($_SERVER['REQUEST_URI']).
Далее определяем, есть ли в URL параметры или нет ($_SERVER['QUERY_STRING']). Если есть, их удаляем, они не нужны для тега.И в конце (не обязательно) удаляем слеш, если ссылки формируются без него. Так-же это полезно, чтобы не использовать 301 редирект, который конфликтует с обработкой 404 страницы на разных CMS.
************************************
Но непонятно куда его у нас вставлять... да и в целом правильный он или нет... -
2 часа назад, abushyk сказал:4. Код для каноникал не добавляется в разметку пейджера. Он добавляется в мету сайта.
Возможно не понял ваш вопрос. Естественно canonical добавляется в мета теги, конкретно в <head>, тег <link>. Где я писал что в пейджер? Если для страниц пагинации - это не значит что в пейджер, профдеформация))
при этом немного углубился в тему - пишут что это просто прописывается с условиями:
идет проверка - если просто страница - в каноникал идет её урл, если страница с параметрами "page=" и тп, то параметры удаляются из урл и в каноникал идет урл без этих параметровт.е. для вас это должно быть очень легко - вы знаете в каком месте формируются мета теги, добавьте туда код с условиями для формирования тега link и его аттрибута canonical с канонической ссылкой типа <link href="https://site.ru/obecty/" rel="canonical" />
не забудьте про протокол (http/https) - это важно
таким образом правильный каноникал будет у всех страниц сайта, в том числе и у страниц пагинации
-
1 час назад, abushyk сказал:1. Поисковый краулер с одинаковым успехом обходит страницы объявлений как по ссылкам сайта, так и по ссылкам из карты сайта. Так что если ссылка на карточки есть в карте сайта, то 2 и следующие страницы списков могут не индексироваться им напрямую.
2. Сбором поведенческих факторов занимается метрика, а не поисковый краулер, поэтому разрешенность к индексации страницы не запрещает определение ПФ.
3. Высокие позиции достигаются высокочастотными запросами. Карточки товара - это генераторы низкочастотных запросов. С учетом этого и того, что карточки ротируются - старые уходят (продаются, сделки по ним закрываются), а новые приходят (появляются новые лоты) - добиться карточками захвата топ-запросов и соотв. топ-позиций маловероятно. Кроме случаев, когда эти карточки реально заточены под запросы (тексты, ключевые слова и фразы). Текст владельца, особенно если он уже засветился еще на каких-то площадках - этому точно не будет способствовать.
4. Код для каноникал не добавляется в разметку пейджера. Он добавляется в мету сайта.
5. Для заворота адресов со слеша на без слеша и наоборот, не нужно использовать каноникал. Нужно использовать 301 редирект. Этого будет выше крыши.
1. Верно. Но частота обхода сайта выше, чем частота обхода sitemap - в яндекс вебмастере это видно. Т.е. при правильной настройке каноникал новые страницы быстрее попадают в индекс. Плюс смотрим ответ на вопрос 2.
2. Не верно. Метрика связана с Вебмастером. Тут не совсем прозрачный момент - нет чёткой информации о том, что статистика ПФ закрытых от индексации страниц используется для ранжирования. Ведь это могут быть и страницы личных кабинетов и прочее. "Сайт должен быть полезным пользователям" - соответственно по логике поисковика по поведенческим оценивается польза индексируемого контента. Если страницы нет в индексе, то и нет смысла учитывать её ПФ. При этом по страницам пагинации есть исключение - они строго не в поиске, но их контент учитывается при определении полноты ответа и по "желанию" поисковика страницы пагинации могут выводиться на поиске, если это необходимо. Соответствующая информация есть в блоге Яндекс вебмастера: https://webmaster.yandex.ru/blog/nekanonicheskie-stranitsy-v-poiske
Поэтому для Яндекса желательно страницы пагинации не закрывать от индексации, а указывать каноническую страницу. Поэтому и возник вопрос этого поста.
3. Не верно. Высокие позиции достигаются полнотой ответа на семантическое ядро запросов в тематике. Под каждую группу желательно отдельную посадочную страницу. Учитывается не только текст объявления, но и весь контент страницы (это если объявы дают пользователи). Если сайт агентства - то понятно, что это желательно уникальные тексты по каждому объекту. И много чего ещё, у меня большой практический опыт в seo.
Но этот момент к canonical не относится.
4. Ребята, но если вы знаете как - почему не написать как добавить canonical?
Вместо этого большого поста не по теме вопроса))) время потратили - а пользы нет(((
5. Верно. Но вопрос не про это))
Вопрос звучит так:
В 02.08.2019 в 13:42, dmpress сказал:Как настроить генерацию атрибута rel="canonical" для станиц пагинации? Канонической для них должна быть первая страница раздела, без "page="
Судя по изученной в интернете информации это решается несколькими строками кода. Также желательно чуть расширить вопрос - надо чтобы canonical выводился для всех страниц сайта.
Вы специализируетесь на разработке - для вас это легко. Для меня и многих других пользователей сайтбилл сложно.
Зачем вы объясняете про seo на котором не специализируетесь?
Очень прошу дать решение по добавлению canonical - этим вы поможете всем пользователям sitebill. Спасибо!
-
В 14.01.2020 в 11:53, mykvartira сказал:Всем добрый день.
Сегодня обратил внимание в вебмастере на всех сайтах ошибку
На многих страницах сайта отсутствуют или некорректно заполнены метатеги Description. Это может негативно повлиять на представление сайта в результатах поиска. Ознакомьтесь с примерами и исправьте ошибки.
Хотя все прописано.
Почитав информацию решил разместить этот rel="canonical" в разметке open-graph, а также в "description" и "keywords". Не знаю насколько это правильно и даст ли результат. Сталкивались ли вы с этой проблемой и как решали?
Подскажите, пожалуйста, как вы прописали canonical? Особенно для страниц пагинации?
Пытался добавить в шаблон <link rel="canonical" href="http://site.ru{$smarty.server.REQUEST_URI}" />
Но это просто копирует в каноникал текущий адрес страницы. Получается надо как-то с помощью условий это прописать - для обычных страниц одно правило формирования каноникал, для страниц пагинации другое. Но как это сделать?
Буду признателен за помощь.
centr.dn.ua reacted to this -
3 часа назад, dima сказал:Скорее всего это платная услуга.
Мне в свое время убирали дубли. И это была доработка.
Я просил доработку и мне сделали.
И дубли пропали.
Без каноникал движок "полуфабрикат", а заявляется же как готовый к работе. Уже даже Яндекс Вебмастер помечает урлы без каноникал.
Ну и написать тут могли бы - что это платно))
В Битрикс, например, тоже его по умолчанию нет и хороший модуль стоит 1000 руб. Поставил и есть canonical автоматически на всех страницах, плюс можно для любых урл задать еще и вручную какой хочется.
-
-
3 минуты назад, doma сказал:у нас через админку посмотрите пожалуйста :)) гугл говорит что у нас все плохо и требует оптимизации всего и всЯ... как бы только это все исправить ?
вот и повод есть)) оптимизируете людям сайт, по ходу оптимизации сделаете скрины с комментариями и разместите здесь - польза всем!
ReatEstate и Realtor reacted to this -
В 23.07.2019 в 10:49, rumantic сказал:Вы бы дали доступ в админку, я бы посмотрел загрузку сайта и оценил что там может быть.
Параметров очень много, где могут быть тормоза. Возможно, какая-то лишняя галочка решит 90% ваших головняков.
Ну, во-первых, форум для того и есть чтобы публиковать решения которые могут повторить другие пользователи.
А во-вторых - вы не знаете какие настройки мне нужны, а какие нет.
Как разработчики вы должны дать хотя бы список того, где могут быть тормоза и мы, как пользователи, уже сами будем включать/выключать и тестировать. В чем сложность-то? Сделайте скрины админки и прямо на скринах напишите что можно потестировать. Админки у всех одинаковые, зачем вам для этого доступ к моей админке?
Вон Chernetskiy выше описал как легко оптимизируется Вордпресс. Я так понял это намёк - зачем вам Сайтбилл, переходите на Вордпресс...
ReatEstate и Realtor reacted to this -
Уважаемые разработчики!
Прошу не игнорировать и ответить на вопрос - тема серьезная.
Без нормальной настройки canonical высоких позиций и широкой видимости в поиске в данном случае не будет, а значит движок получается бесполезный с коммерческой точки зрения. Какой смысл в сайте, который не могут найти через поиск?
Только большая просьба - прошу решение не через "дайте доступ в админку", а нормальное. Я так понимаю надо просто добавить код в файлы, которые выводят страницы пагинации. Теоретически для вас, как создателей cms, это не сложно, не понятно почему до сих пор не сделано))
-
Здравствуйте!
Как настроить генерацию атрибута rel="canonical" для станиц пагинации? Канонической для них должна быть первая страница раздела, без "page="
Без данной настройки или будут дубли или, если закрыть страницы пагинации от индексации, - робот не будет нормально обходить объявления и не будут учитываться поведенческие факторы на этих страницах.
Нашел несколько тем на форуме с этим вопросом и ни в одной нет ответа.
Шаблоны писем редактирование
в Шаблоны
Опубликовано: · Report reply
Ок. Хочу заказать у вас платные доработки. Добавлю тогда этот момент.