понедельник, 6 октября 2008 г.

Video Sitemap

Sitemap полезная технология, для указания поисковым системам где находится контент. Они конечно могут найти его и по ссылкам, но это дает возможность указать в первую очередь новые и изменившиеся страницы. Её поддерживают основные поисковики – Гугл, Яндекс, Яху, Лайв.

Этот протокол изначально планировался легко расширяемым (в кратце – это просто xml файл) и гугл уже добавил полезные дополнения. Это раширение протокола – Video Sitemaps. Оно полезно для разнообразных видеохостингов – указывает дополнительную информацию о видео, проигрывающихся на страницах. Гугл его использует при поиске по видео (http://video.google.com). Поэтому если у вас на сайте публикуется видео – настоятельно рекомендую обратить внимание. Также надеюсь, что Яндекс на своем поиске по видео http://video.yandex.ru тоже будет его использовать.

А теперь, по уже наметившейся традиции, хватит теории и немного практики. Конечно на .NET :)

В .NET 3.5 стало намного проще и изящнее создавать xml документы в коде с помощью LINQ to XML.
Вот небольшие выдержки из кода на FilmOnline.ru video sitemap сделан для трейлеров фильмов:

    /// <summary>

    /// For protocols details see https://www.google.com/webmasters/tools/docs/en/protocol.html

    /// </summary>

    public static readonly XNamespace sitemap =

      "http://www.sitemaps.org/schemas/sitemap/0.9";

 

     ...

 

    private static XDocument CreateSitemap(IEnumerable<MyPair<string, DateTimeOffset?>> locations,


      Func<string, XElement, XElement> processor)


    {


      return new XDocument(


        new XElement(sitemap + "urlset",


          locations


            .Where(loc => !string.IsNullOrEmpty(loc.First))


            .Select(loc => processor(loc.First,


              new XElement(sitemap + "url",


                new XElement(sitemap + "loc", loc.First),


                loc.Second.CoalesceEx(date =>


                  new XElement(sitemap + "lastmod",


                    date.Value.ToString("yyyy-MM-ddTHH:mm:ss%K")))


                )))));


    }


 


    ...


 


    /// <summary>


    /// For protocols details see http://www.google.com/support/webmasters/bin/answer.py?answer=80472&topic=10079


    /// </summary>


    public static readonly XNamespace video =


      "http://www.google.com/schemas/sitemap-video/1.0";


 


    ...


 


          element.Add(new XElement(video + "video", 


            new XElement(video + "content_loc", trailer.Data.AbsoluteUri),


            new XElement(video + "title", trailer.Title),


            trailer.Thumbnail.CoalesceEx(thumb =>


              new XElement(video + "thumbnail_loc", thumb.AbsoluteUri))));



 



Пример результата можно посмотреть, например, здесь: http://filmonline.ru/Sitemap/External/Trailers/www.afisha.ru/movie/trailer/190429/.

Комментариев нет: