Новости Joomla

Как оптимизировать сайт под нейросети? С 2023 года нейросети и чат-боты, основанные на больших...

Как оптимизировать сайт под нейросети? С 2023 года нейросети и чат-боты, основанные на больших...

👩‍💻 Как оптимизировать сайт под нейросети? С 2023 года нейросети и чат-боты, основанные на больших языковых моделях (LLM), начали радикально менять ландшафт SEO. Согласно исследованию Sparktoro, уже в 2024 году 58.5% поисковых запросов в США не приводили к переходу на сайты - пользователь получал ответ непосредственно в поиске.И это до внедрения AI ответов. После внедрения Google AI Overviews, а Яндексом блока нейроответа Алисы, ситуация только усугубилась, а среди владельцев инфосайтов началась небольшая паника.Что нужно сделать для AI-ранжирования?Во-первых, SEO-специалистам и маркетологам важно сменить саму парадигму мышления: запрос - позиция - страница. Делая оптимизацию под AI, мы больше не стремимся занимать позицию по конкретному ключу, и не думаем о том, что ранжируется вся страница. Мы думаем об интенте пользователя, и связанных с этим интентом сущностях. Глубоко понимая бизнес и ЦА предугадываем следующие за основным запросы. И представляем свой контент в максимально доступной и структурированной форме, как для пользователя, так и для LLM. В конечном счёте окончательно в прошлое уходят полотна с текстом, а страницы сайта всё больше начинают напоминать запись диалога с Chat GPT, отдельно взятые запросы и идеально структурированные и подтверждённые статистикой ёмкие ответы.Во-вторых, сама ваша страница теперь может быть на 5 странице, по запросу, который набрал пользователь. Но если на ней есть пассаж текста, который решит его проблему, то вы попадаете в блок нейроответа и получаете трафик. Таким образом в корне меняется и пользовательская привычка взаимодействия с контентом, и подходы к его оптимизации. Ключ, частотность, позиция страницы - это теперь скорее просто вектор, дающий возможность оценить результаты продвижения, а не чёткая метрика.➡️ Далее в статье рассказывается:- Файлы llms.txt и llms-full.txt для AIO- Структурированность и логика заголовков (H1–H6)- Дробление контента на автономные части (чанки)- Покрытие Query Fan-Out- Мультимодальный контент- Микроразметка

Schema.org- Атрибут
data-nosnippet- Внешнее продвижение сайта- Картографические сервисы, локальное SEOВ конце статьи дан чек-лист по оптимизации под нейросети.
Читать статьюСпасибо за ссылку участнику нашего сообщества Святославу Волкову (@eminents).#seo #ai

Плагин Поля - WT Yandex Map для Joomla

Плагин Поля - WT Yandex Map для Joomla.Плагин добавляет новый тип пользовательского поля для Joomla 4 - Яндекс.Карты. Он позволяет отображать метку на Яндекс картах в тех расширениях, которые поддерживают пользовательские поля (custom fields) в Joomla 4. Плагин бесплатный.👩‍💻 v.2.1.0. Что нового?- Улучшение UX. При взаимодействии со страницей на мобильных устройствах если карта отображается во всю ширину - она начинает прокручиваться вместо веб-страницы. Во избежание этой ситуации добавлена опция оверлея для карты. Теперь взаимодействие с картой возможно после клика по карте. Оверлей автоматически включается, когда курсор покидает границы контейнера карты и карту можно снова прокручивать.- Геолокация автора. Добавлена опция для поля, позволяющая определять местоположение автора. Таким образом при создании нового, к примеру, материала будет определено местоположение (браузер запросит разрешение) и его координаты будут добавлены в поле.- Joomla 6. Плагин успешно протестирован на Joomla 6Страница расширения.GitHub расширенияJoomla Extensions Directory@joomlafeed#joomla #yandex #расширения

0 Пользователей и 1 Гость просматривают эту тему.
  • 76 Ответов
  • 26732 Просмотров
*

hensler

  • Захожу иногда
  • 58
  • 3 / 0
Второй раз сталкиваюсь с проблемой. После включения ЧПУ индексация замедляется и в выдаче поисковиков сайт проваливается за пределы видимости.

Первый раз (Joomla 1.0.08) просто отключил ЧПУ, т.к. проект был коммерческий и ждать когда сайт вернется в выдаче на свои места не мог. После отключения все восстановилось за пару недель.

Второй раз при переходе с Nuka на Joomla и переносе сайта с поддомена на домен 2 недели не включал ЧПУ и с индекацией и с выдачей потихоньку шло к старым результатам. Решил вклюить ЧПУ и честно дождаться полной переиндексации. Фиг. За 2 м-ца проиндексировано чуть больше 1000 страниц. Да и эта цифра то дойдет до 1500, то опять спустится. Если учесть 900 фотографий в галерее + форум + 10 новостей ежедневно + 400 старых статей + новые и т.д. - мало. Но даже проиндексированное, в выдаче ушло за горизонт.

Ни хрена не понимаю. Сайт yarcenter.ru
*

Batman

  • Новичок
  • 4
  • 0 / 0
при включении ЧПУ, получается что у вас одна и та же страница может быть доступна по двум адресам, н-р,

/joomla/index.php?option=com_content&task=blogsection&id=8&Itemid=43

и

/joomla/content/blogsection/8/43

это две абсолютно одинаковые страницы (не знаю правильно ли составил вид второй УРЛ, но главное - идея).

Как мне говорили, для оптимизации необходимо чтобы страница была уникальной в пределах данного сайта.
Возможно это и влечет такие странности?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
при включении ЧПУ, получается что у вас одна и та же страница может быть доступна по двум адресам
на самом деле, иногда получается что более чем две... это происходит потому, что поисковики, иногда, найдя ссылку типа /222/1/, проверяют сразу же ссылку /222/2/, а так как часто, в SEF-ссылках последним параметром идет именно Itemid (параметр фактически влияющий только на pathway), то получается, что поисковик запоминает довольно много ссылок на одну и ту же статью, но с разными Itemid. Обнаруживается это, как правило, случайно: когда пользователь открывает материал, а в pathway указана совсем другая категория (потому как Itemid «левый») или же при анализе проиндексированных страниц. Однако, несмотря на наличие таких дубликатов, я не раз видел весьма неплохо проиндексированные сайты на Joomla, использующие стандартный SEF.

А какие вы видите пути решения данной проблемы? Если честно мне не нравится такая фича в джумле. Несколько ссылок на один материал это бардак.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
А какие вы видите пути решения данной проблемы? Если честно мне не нравится такая фича в джумле. Несколько ссылок на один материал это бардак.
Например, отказаться от SEF или воспользоваться решениями сторонних разработчиков (например OpenSEF, хотя это и даст нагрузку на БД).

Можно попробовать написать свое решение для генерации SEF ссылок, тоже не сложно (я в свое время делал такое для www.n-admin.com).

Теоретически, можно написать системный мамбот, который будет отслеживать обращения к материалам (т.е. когда option=com_content и task=view) и проверять соотвествие Itemid, переданного параметром, реальному Itemid материала. И в случае неверного значения — делать редирект с 301 кодом ошибки. Если при этом граммотно задействовать механизм кэширования, то по идее нагрузка на БД будет небольшая.

Спасибо. Оба решения вроде понятны. Я пользуюсь OpenSEF но внутрь не залезал. Он дает возможность обрабатывать такого рода запросы и выдвать соответствующий хедер (например 404)?

На счет бота идея тоже интересная наверное буду ее реализовывать.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
На счет бота идея тоже интересная наверное буду ее реализовывать.
я думаю такое расширение наверняка будет полезно всему сообществу, поэтому если нужна будет какая-либо помощь — я помогу

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

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Вы бы немогли дать ссылок на любые стистемные маботы чтоб можно было по сорцам разобрася что к чему.
например мой мамбот OptimizeTables. Разница от обычных мамботов небольшая: используются события OnStart или OnAfterStart (можешь посмотреть где они вызываются в index.php), и им, в отличие от мамботов группы content, не передаются никакие параметры.

Судя по фрагменту кода из index.php, для нашей задачи логичнее использовать событие OnAfterStart:
Код
// trigger the onAfterStart events
$_MAMBOTS->trigger( 'onAfterStart' );

// checking if we can find the Itemid thru the content
if ( $option == 'com_content' && $Itemid === 0 ) {
$id = intval( mosGetParam( $_REQUEST, 'id', 0 ) );
$Itemid = $mainframe->getItemid( $id );
}
с таким расчетом, чтобы второй условный блок уже не отрабатывался (т.е. самому вычислять Itemid для материала и заносить его в глобальную переменную

Спасибо! Буду изучаать.

Кстати а как вы считаете какие дулжен действовать мамбот при несовпадении заданного Itemid и реального Itemid? Мне кажется будет достатчное
Код
header("HTTP/1.0 404 Not Found");
или лучше всетаки перенаправлять куданибудь?
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
или лучше всетаки перенаправлять куданибудь?
я думаю следует сначала пытаться вычислить правильный, если вычислить получилось, то делать именно редирект на правильную копию с кодом 301 (Moved Permanently)

Написал по быстрому мамбот. Все вроде работает как надо.
Но вот меня смущает следующее:
1) нахрена в методае getItemid в том случие если после поиска Itemid в бд ничего не найдена он просто берет и возвращает Itemid из запроса.
2) тот же getItemid упорно нехочет находит Itemid если id == 0 . В сорцах дальше копатся нестал просто в сон клонит но всетаки странно.

А так все работает пользуйтесь кому надо (;

[вложение удалено Администратором]
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Написал по быстрому мамбот. Все вроде работает как надо.
есть несколько небольших замечаний и пожеланий:

1. помимо проверки option, надо проверять еще и task, бо иначе это будет отрабатываться не только для режима просмотра материала
2. строчка:
	
	
$request_itemid=mosGetParam($_REQUEST'Itemid'false);



весьма непонятна, зачем в качестве значения по умолчанию давать булевскую переменную, когда лучше дать 0 или null. Да и лучше в этом случае обернуть результат mosGetParam в intval - мы же точно знаем, что там должно быть число:
	
	
$request_itemid intvalmosGetParam$_REQUEST'Itemid') );



3. вместо строчки:

	
	
$url=$mosConfig_live_site.'/index.php?option='.$option.'&task='.$task.'&id='.$id.'&Itemid='.$real_itemid;


лучше написать так:

	
	
$url=sefRelToAbs('index.php?option='.$option.'&task='.$task.'&id='.$id.'&Itemid='.$real_itemid);


4. И еще, функция getItemid принимает дополнительный набор параметров, для снижения количества запросов к БД, поэтому наверное имеет смысл, строчку:

	
	
$real_itemid $mainframe->getItemid$id );



заменить на вот такую конструкцию:

	
	
$bs 
	
$mainframe->getBlogSectionCount();
	
	
$bc 
	
$mainframe->getBlogCategoryCount();
	
	
$gbs 
	
$mainframe->getGlobalBlogSectionCount();
	
	
$real_itemid $mainframe->getItemid$id00$bs$bc$gbs );



С замечаниями и пожелаиями полностью согласен, подправил (:
Внес изменения, тепеь все работает как надо. Спасибо за помощь.

[вложение удалено Администратором]
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
С замечаниями и пожелаиями полностью согласен, подправил (:
Внес изменения, тепеь все работает как надо. Спасибо за помощь.
все равно есть несколько недочетов:

1. после строчки

$id=intval(mosGetParam($_REQUEST'id'0));

переменная $id никогда не будет равна false, поэтому сравнение
if ( $id===false ) {

надо заменить на
if ( $id===) {


2. код:
	
	
	
	
return 
true;
	
	
	
	
exit();


приведет к завершению работы ВСЕГО скрипта, а не только одной функции, так что достаточно просто return true;

Да действительно... false убрал а проверку его забыл подпраить... на счет exit это да я поле отладки забыл убрать.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Да действительно... false убрал а проверку его забыл подпраить... на счет exit это да я поле отладки забыл убрать.
воот... теперь в предыдущих мессагах давай наверно прибьем старые версии, выложи новую, а я утром повешу анонс на joomlaportal.ru

Кстати вы еще упоминали о првоерке task... на предмет чего вы именно хотели делать проверку? $task=='view' ? или что иное?

И еще
Код
if ( $id===0 ) {
Такаое ветвление некоректно т.к id может быть равным нулю... недо просто првоерять пусто ли $id или нет. Вы согласны?
Тоесть
сделать
Код
$id=mosGetParam($_REQUEST, 'id', null);
Код
if ( $id===null ) {
« Последнее редактирование: 24.07.2006, 01:16:44 от pav »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Такаое ветвление некоректно т.к id может быть равным нулю...
пустым быть не может, после intval мы точно имеем integer... а нулевого значения у идентификатора статьи так же быть не может. Поэтому если там 0, это неверная ссылка, и значит надо или 404, или редирект на главную с кодом 301 (что тоже кстати допустимо)

Кстати вы еще упоминали о првоерке task... на предмет чего вы именно хотели делать проверку? $task=='view' ? или что иное?
да, в то же условие, где мы проверяем option... чтобы валидация Itemid производилась только для режима просмотра конкретного материала (ну нет смысла этого делать в блогах или таблицах категорий)

Цитировать
пустым быть не может, после intval мы точно имеем integer... а нулевого значения у идентификатора статьи так же быть не может. Поэтому если там 0, это неверная ссылка, и значит надо или 404, или редирект на главную с кодом 301 (что тоже кстати допустимо)
Почему? У меня вот есть ссылка рабочая index.php?option=com_content&task=blogsection&id=0&Itemid=9 здесь как вы видете id равен нулю.
Цитировать
ну нет смысла этого делать в блогах или таблицах категорий
Почему нет? Обоснуйте...
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Почему нет? Обоснуйте...
потому что эти страницы часто обновляются, и их содержимое не так важно, как содержимое самих материалов...

Так но фель создания мамбота в том чтобы для любых материалов на сайте была одна единая ссылка. Так? Если так то я думаю что все что связанно с com_content должно обрабатыватся мамботом.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Так но фель создания мамбота в том чтобы для любых материалов на сайте была одна единая ссылка. Так? Если так то я думаю что все что связанно с com_content должно обрабатыватся мамботом.
но com_content обрабатывает не только материалы, но и категории и разделы, а мне кажется это уже второстепенная информация. на самом деле я не особо настаиваю на такой проверке, но мне кажется это было бы уместно с точки зрения оптимизации и снижения нагрузки на БД

Можно сделать чтоб пользователь сам задавал что конкретно из com_content подвергалось проверке в настройки мамбота.
« Последнее редактирование: 24.07.2006, 02:34:11 от pav »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Можно сделать чтоб это опционально настраивалось из настройки мамбота.
учитывая тот факт, что в мамбот параметры извне не передаются, получение параметров мамбота потребует дополнительного запроса к БД, а это мне кажется излишне... мы выиграем не много... ладно, давай пока не будем ставить такую проверку, посмотрим что пользователи скажут...
*

hensler

  • Захожу иногда
  • 58
  • 3 / 0
...
и

/joomla/content/blogsection/8/43
...
С дублированием понятно, но может ли и еще один момент влиять - у меня все ссылки имеют слэш на конце.
/joomla/content/blogsection/8/43/

Т.е. если ссылка вида /joomla/index.php?option=com_content&task=blogsection&id=8&Itemid=43 ведет с точки зрения паука прямо к документу, то с ЧПУ в конце паука посылают поискать за слэшем пустоту. Во всяком случае судя по рекомендациям Рамблера (думаю и у Яндекса так же)
Цитировать
Следует также иметь в виду, что с точки зрения HTML записи типа:
<a href="directory" ...> и
<a href="directory/" ...> ("слэш" в конце href)
являются разными ссылками. Обычно при запросе по первой ссылке робот получит редирект на вторую, а значит извлечет сам документ при обращении к Вашему серверу только на следующем проходе. Тем самым Вы замедляете индексацию Вашего сайта.
http://www.rambler.ru/doc/recommendations.shtml
Или я уже на воду дую?

Жду окончательный вариант бота.
P.S. Сколько запросов бот добавит?
« Последнее редактирование: 24.07.2006, 02:49:45 от hensler »

Все на этом и порешим. Вот окончательный вариант... вроде (;

[вложение удалено Администратором]
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Или я уже на воду дую?
мне кажется да, потому как судя по рекомендациям, слеш в конце нужен... что и получаем мы в результате использования стандартного SEF

P.S. Сколько запросов бот добавит?
от 1 до 7 запросов, в зависимости от типа материала, и заполненности меню ссылками на категории и разделы... в следующую версию мамбота можно добавить поддержку кэширования, чтобы снизить нагрузку на БД
*

hensler

  • Захожу иногда
  • 58
  • 3 / 0
Поставил. Добавилось 4 запроса.
На данный момент проиндексировано  Яндексом: 2 092 - стандартно, 1068 - с учетом зеркал
Посмотрим, как изменится. ИМХО если все правильно, первая цифра должна или остановиться или расти вровень со второй (до момента обновления БД Яндекса), а потом всё равно сравняться. На другом сайте (без ЧПУ) они равны.
« Последнее редактирование: 24.07.2006, 04:03:21 от hensler »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться