Как исключить из индексирования страницы отдельные элементы управления и части контента?
Продолжаю делиться рецептами из личного опыта.
Возникла следующая проблема. Необходимо было при поисковой индексации страницы sharepoint исключить из индексирования баннеры и некоторые пользовательские элемены управления, расположенные на странице.
Было придумано следующее решение. Разрабатывается элемент управления, который определяет то, что на страницу зашел поисковый робот и не осуществляет рендеринг вложенных в него элементов управления. Таким образом мы исключаем индексацию ненужного контента и сокращаем количество мусора в результатах поиска на портале.
У меня получился вот такой элемент управления:
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Text;
using
System.Web.UI;
namespace
TestProject.WebControls
{
public class SearchCrawlTrimmedControl : Control
{
protected override void Render(HtmlTextWriter writer)
{
bool render = true;
if (this.Page.Request.UserAgent.ToLower().Contains("robot"))
{
render =
false;
}
if (render)
{
base.Render(writer);
}
}
}
}
Использовать его можно следующим образом:
<
XXX:SearchCrawlTrimmedControl runat=server >
<!-- текст и элементы управления, которые не должны индексироваться -->
</
XXX:SearchCrawlTrimmedControl>