Sitemaps — это XML-файл с информацией для поисковых систем (таких как Google, Yahoo, Ask.com, MSN, Яндекс) о страницах веб-сайта, которые подлежат индексации. Sitemaps может помочь поисковикам определить местонахождение страниц сайта, время их последнего обновления, частоту обновления и важность относительно других страниц сайта для того, чтобы поисковая машина смогла более разумно индексировать сайт.
Использование протокола Sitemaps не является гарантией того, что веб-страницы будут проиндексированы поисковыми системами, это всего лишь дополнительная подсказка для сканеров, которые смогут выполнить более тщательное сканирование Вашего сайта. В статье рассказывается как «на лету» получать Sitemaps, используя ASP.NET HttpHandler.
Пример карты сайта, которая содержит единственную страницу:
Детальнее о протоколе можно почитать здесь.
Внутри директории App_Code создаем SiteMapHandler.cs:
Ниже код Asp.Net Sitemap Handler, который реализует интерфейс IHttpHandler:
В месте комментария «Your code here for page nodes» нужно вставить свою логику добавления страниц — либо с базы, либо с web.sitemap, либо с другого источника.
В web.config нужно добавить строки:
Для тестирования Sitemap откройте в строке браузера Sitemap.axd.
Далее необходимо создать файл robots.txt и внести туда строку:
Sitemap: youdomain/sitemap.axd
В статье использовались материалы сайта bloggingdeveloper.
Спасибо за внимание!
Использование протокола Sitemaps не является гарантией того, что веб-страницы будут проиндексированы поисковыми системами, это всего лишь дополнительная подсказка для сканеров, которые смогут выполнить более тщательное сканирование Вашего сайта. В статье рассказывается как «на лету» получать Sitemaps, используя ASP.NET HttpHandler.
Пример карты сайта, которая содержит единственную страницу:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>habrahabr.ru</loc>
<lastmod>2009-10-25</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
* This source code was highlighted with Source Code Highlighter.
Детальнее о протоколе можно почитать здесь.
Внутри директории App_Code создаем SiteMapHandler.cs:
Ниже код Asp.Net Sitemap Handler, который реализует интерфейс IHttpHandler:
public class SitemapHandler : IHttpHandler
{
protected enum ChangeFrequency
{
always,
hourly,
daily,
weekly,
monthly,
yearly,
never
}
#region IHttpHandler Members
public bool IsReusable
{
get { return false; }
}
public void ProcessRequest(HttpContext context)
{
using (TextWriter textWriter = new StreamWriter(context.Response.OutputStream, System.Text.Encoding.UTF8))
{
XmlTextWriter writer = new XmlTextWriter(textWriter);
writer.Formatting = Formatting.Indented;
writer.WriteStartDocument();
writer.WriteStartElement("urlset");
writer.WriteAttributeString("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9");
//Add home page
writer.WriteStartElement("url");
writer.WriteElementString("loc", "http://habrahabr.ru/");
writer.WriteElementString("lastmod", DateTime.Now.ToString("yyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture));
writer.WriteElementString("changefreq", ChangeFrequency.always.ToString());
writer.WriteElementString("priority", "0.8");
writer.WriteEndElement(); // url
// Your code here for page nodes
writer.WriteEndElement(); // urlset
}
context.Response.ContentType = "text/xml";
}
#endregion
}
* This source code was highlighted with Source Code Highlighter.
В месте комментария «Your code here for page nodes» нужно вставить свою логику добавления страниц — либо с базы, либо с web.sitemap, либо с другого источника.
В web.config нужно добавить строки:
<httpHandlers>
<add verb="*" path="sitemap.axd"
type="SitemapHandler" validate="false"/>
</httpHandlers>
* This source code was highlighted with Source Code Highlighter.
Для тестирования Sitemap откройте в строке браузера Sitemap.axd.
Далее необходимо создать файл robots.txt и внести туда строку:
Sitemap: youdomain/sitemap.axd
В статье использовались материалы сайта bloggingdeveloper.
Спасибо за внимание!