Закрываем контент от роботов в IPS 4.2.2

Cкрываем блоки модулей и приложений в Invision Power Suite 4 от поисковых роботов

Занимаясь одним интересным проектом, который в качестве web-движка использует IPS 4.2.2, наткнулся на некоторую сложность, которая выражается в невозможности ограничить доступ поисковым роботам к тому или иному блоку с каким-либо виджетом или приложением.

Например миничат, который стоит на главной странице форума, генерирует кучу нерелевантного контента со всякими мусорными ссылками, который в итоге может сыграть злую шутку с вами. И аналогичных блоков, генерирующих ненужный контент с точки зрения SEO, довольно много, отсюда и возникла необходимость активно принимать меры.

Закрываем контент от роботов в IPS 4.2.2
Пользователи общаются в чате и всё их «творчество» индексируют поисковики.

Поисковые роботы в IPS 4.4.2 относятся к группе «Гости» и стороннего плагина, который бы смог организовать для поисковиков отдельную группу, которую можно жестко лимитировать в представляемом ей контенте нет.

Такой плагин был на третих версиях IPB (IPB 3.2.X — IPB 3.4.X ) и назывался (Pav32) Bot Group.

На помощь пришла старая добрая конструкция отбора посетителей по User-agent, которая работает и в IPS 4.2.2, но с некоторыми изменениями:

{{if isset( $_SERVER['HTTP_USER_AGENT']) && !preg_match('/bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator/', strtolower($_SERVER['HTTP_USER_AGENT']) )}}

Вывод этого текста не будет доступен поисковым роботам.

{{endif}}

Правка файлов темы оформления

Предположим, что у тебя стоит IPS 4.2.2 и приложение чата (BIM42) Chatbox 2.0.0 для этой версии. Для того, чтобы скрыть его от поисковых роботов нужно проделать следующее:

Перейти в админку форума и зайти в раздел «Кастомизация»,

Закрываем контент от роботов в IPS 4.2.2
Можешь нажать на значок кисти, чтобы увидеть список доступных тем оформления.

Напротив рабочей темы оформления нажми на значок < / >,

Закрываем контент от роботов в IPS 4.2.2
Чтобы перейти к редактированию html-кода шаблонов стиля.

Затем тебя интересует вкладка «Шаблоны» и подменю «bimchatbox» —> «front» —> «chat» и файл с названием «main».

Закрываем контент от роботов в IPS 4.2.2
Этот файл отвечает за графический вывод окна чата в указанный блок на форуме.

Справа, в появившемся окне ты увидишь код основного окна чата, которое выводится там где ты захочишь, в блоках виджетов. Первую строку нашего кода нужно разместить на первой строке в файле «main»:

{{if isset( $_SERVER['HTTP_USER_AGENT']) && !preg_match('/bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator/', strtolower($_SERVER['HTTP_USER_AGENT']) )}}

и разместить закрывающий тег на последней строке файла:

{{endif}}

В итоге у тебя должно получиться примерно так:

{{if isset( $_SERVER['HTTP_USER_AGENT']) && !preg_match('/bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator/', strtolower($_SERVER['HTTP_USER_AGENT']) )}}
{{$ann = \IPS\Application::load('bimchatbox')->announcement();}}

<div data-controller="bim.chatbox">
	<h2 class="ipsType_sectionTitle ipsType_reset" id="elChatbox" >
		<ul class="ipsPos_right ipsList_inline ipsList_noSpacing">
			<li>
				<a href="#" class="cbBtn" data-action="toggleSound" data-ipstooltip="" title='{lang="chatbox_togglesound"}'><i class="fa fa-volume-up"></i></a>
			</li>
			{{if \IPS\Application::load('bimchatbox')->can_Manage()}}
				<li>
					<a href="#" class="cbBtn" data-ipsDialog data-ipsDialog-url='{url="app=bimchatbox&module=chatbox&controller=chatbox&do=cbmanage"}' data-ipsDialog-size='narrow' data-ipstooltip="" title='{lang="chatbox_management"}'><i class="fa fa-wrench"></i></a>			
				</li>
			{{endif}}
		</ul>
		<div>{lang="chatbox_title"}</div>	
	</h2>
	
	<div id="elChatboxContent">
		{{if $ann}}
			<div class="cbAnn ipsClearfix">
				{{if settings.chatbox_conf_anntab == 1}}
					<a href="#" data-ipsDialog data-ipsDialog-url='{url="app=bimchatbox&module=chatbox&controller=chatbox&do=cbrules"}' data-ipsDialog-size='narrow'>
						<i class="fa fa-bullhorn" aria-hidden="true"></i>&nbsp;&nbsp;{lang="chatbox_rules_link"}
					</a>
				{{else}}
					{$ann|raw}
				{{endif}}
			</div>
		{{endif}}
		
		{{if settings.chatbox_conf_ordertop == 1}}
			{template="chatform" app="bimchatbox" group="chat" params="$chat, $orientation"}
		{{endif}}			
		
		<div id='chatboxWrap' {{if settings.chatbox_conf_height}}style='height: {setting="chatbox_conf_height"}px !important;'{{endif}}>
			{{if settings.chatbox_conf_ordertop != 1}}
				<div id='loadMore' data-action='loadMore' class='ipsAreaBackground_light ipsPad_half ipsType_center ipsCursor_pointer'>{lang="cb_loadmore"}</div>
			{{endif}}
			
			<ul id='chatcontent' class="ipsDataList ipsDataList_reducedSpacing ipsLoading">
			
			</ul>
			{{if settings.chatbox_conf_ordertop == 1}}
				<div id='loadMore' data-action='loadMore' class='ipsAreaBackground_light ipsPad_half ipsType_center ipsCursor_pointer'>{lang="cb_loadmore"}</div>
			{{endif}}				
		</div>
		
		{{if settings.chatbox_conf_ordertop != 1}}
			{template="chatform" app="bimchatbox" group="chat" params="$chat, $orientation"}
		{{endif}}
	</div>
{{endif}}

Для того, чтобы проверить работоспособность данного метода, тебе нужно дописать User-agent своего браузера в строку:

bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator

Если ты используешь Chrome, Opera — дописывай в конец |chrome,

bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator|chrome

если используешь Safari, то |safari, если Firefox — |firefox

bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator|safari
bot|crawl|yandex|google|mail|bing|rambler|yahoo|xenu|w3c|validator|firefox

Сохрани файл и проверь работоспособность этого метода. Если ты всё сделал правильно, то ты не увидишь блока с чатом на главной странице там, где он раньше был.

Закрываем контент от роботов в IPS 4.2.2

После успешной проверки обязательно удали User-agent своего браузера из строки юзер-агентов в условии и сохрани файл.

Вывод

Закрываем контент от роботов в IPS 4.2.2

В качестве вывода могу сказать, что у нас получилось простое, тривиальное, но рабочее решение, которое можно отнести к разряду временного «костыля». Таким костылём можно закрыть любые блоки на форуме от роботов, двигаясь по аналогии.

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

Если у тебя возникли вопросы, предложения, пожелания и/или замечания, то напиши их в комментарии ниже, я с радостью отвечу тебе! До связи!

Плюсануть
Поделиться
Отправить
Запинить
Понравился этот пост? Поделись им в соцсети!
Популярное
Ваш комментарий
адрес не будет опубликован
HTML-код не интерпретируется

Ctrl + Enter