Лента новостей

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

Недвижимость
Наша великая Родина богата прекрасными населенными пунктами и городами с удивительной архитектурой и комфортными условиями жизни. Конечно, очень привлекательна в этом плане Новосибирск, который расположен

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

Недвижимость новая рига
Хотите почувствовать себя королями? Хотя нет, так наверное могут жить только боги недвижимость новая рига. Элитный поселок с замечательной архитектурой, открытым спа, бассейнами, фонтанами. Все находиться

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

Инвестиции в недвижимость Европы: тенденции 2017 года
Для инвесторов: обзор ключевых рынков европейской недвижимости в 2017 году. Недвижимость в Германии Доля недвижимости Германии в ВВП страны сегодня составляет 9,8%. Недвижимость в Германии отличалась

Дешевая Польская недвижимость
Если по какой-то причине мы решили продать квартиру, безусловно, мы хотим, чтобы это сделать как можно скорее и по лучшей цене. Тем не менее, для этого можно, мы должны быть готовы. Ничто не остановит

«Недвижимость» / Госкорпорации отказано в эффективности
По результатам проверки Счетной палатой деятельности Фонда содействия реформированию жилищно-коммунального хозяйства ( Фонд ЖКХ), площадь аварийного жилья в стране выросла на 1,6 млн. квадратных метров

Лизинг недвижимости
Обычно компании берут аванс - 10-20 % со ставкой удорожания 6-8 %, иногда 10-12% в год на срок от 2 до 10 лет, предлагая различные варианты графиков лизинговых платежей. занимаются примерно десяток компаний

Специалист по недвижимости
Наша компания стремиться дать широкие возможности, удобство в работе без лишних трат всем участникам рынка недвижимости Крыма. Аренда квартир, комнат, коттеджей, продажа в Санкт-Петербурге Гильдия риэлторов

Многоязычный SEO XML Sitemap для Sitecore

Многоязычный SEO XML Sitemap для Sitecore

На торговой площадке Sitecore есть несколько модулей Sitemap, доступных для Sitecore. Но делает ли это то, что вы хотите?
Карта сайта XML отличный модуль.

  • Поддерживается Sitecore
  • Создайте файл sitemap.xml
  • Использует поле «__Updated» в разделе «Статистика» на странице «Элемент».
  • Поддержка мульти-сайта
  • Ничего не делать с changefreq и приоритетом
  • Нет поддержки для многоязычных сайтов
  • Нет правильной поддержки базовых страниц компонентов.
  • Не генерирует https URL


Эта статья о создании вашей собственной карты сайта, которая работает не так, как популярный модуль Marketplace, и настолько проста, насколько это возможно. Благодаря интеграции, необходимой для вашего сайта, это трудно сделать в модуле.

Существующая карта сайта SEO XML для модулей Sitecore генерирует неправильные даты модификации и не является многоязычной. С некоторыми простыми настройками и кодом вы можете создать свой собственный
высокоинтегрированный sitemap.xml и использование других свойств из схемы, определенной на sitemaps.org, с дополнительной настройкой страницы.

Спецификации Sitemap.xml.

Тег

Обязательно или необязательно

Описание

<LOC>

требуется

URL с протоколом

<LastMod>

необязательный

Дата и время

<ChangeFreq>

необязательный

  • всегда
  • почасовой
  • ежедневно
  • еженедельно
  • ежемесячно
  • раз в год
  • никогда

<Приоритет>

необязательный

от 0,0 до 1,0

По какой причине вы хотите sitemap.xml? Мой инструмент SEO говорит. Конечно, нет смысла, если у вас есть один или нет. Это то, как вы используете это.

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

Индексируйте только те страницы, которые вы хотите.

Sitemap.xml и robots.txt также хороши для хакеров. Если не использовать должным образом, он может содержать некоторые интересные ссылки для них. Так что вам нужно знать, что индексировать, а что нет. Для «XML-модуля Sitemap» вы можете определить шаблоны для индексации или игнорирования. Существует риск, что вы разрешите некоторые тестовые страницы или целевые страницы, которые не предназначены для индексации поисковой системой. Вы можете предотвратить это с помощью <META NAME = "ROBOTS" CONTENT = "NOINDEX, NOFOLLOW"> на странице. Но конечно лучше исключить из карты сайта. Решение состоит в том, чтобы создать поле «Скрыть в SEO XML Sitemap» и разместить его на своих страницах для контроля поведения.

Тег changefreq

Changefreq - это всего лишь совет для поисковой системы. Чтобы сэкономить пропускную способность и циклы процессора, вы можете установить более высокое значение на заархивированных страницах. А используя разные значения, вы можете повысить вероятность того, что наиболее изменяемые страницы будут чаще посещать поисковые системы. Решением является создание поля «Приоритет XML Sitemap» и размещение его на ваших страницах для управления поведением.

Приоритетный тег

Приоритет Как упомянуто в Changefreq, настройки Приоритет - это просто руководство для Google или любой другой поисковой системы, которым необходимо следовать при индексации вашего сайта. Приоритет, который вы назначаете странице, не влияет на положение ваших URL на страницах результатов поисковой системы. Эта информация может быть использована поисковыми системами, чтобы сделать выбор из URL на том же сайте. Вы можете использовать этот тег, чтобы увеличить вероятность того, что наиболее важные страницы присутствуют в поисковом индексе.
Решение состоит в том, чтобы создать поле «Частота изменения XML-файла Sitemap» и разместить его на своих страницах для управления поведением.

Примечание. Назначение высокого приоритета всем URL-адресам на вашем сайте не будет иметь никакого эффекта. Поскольку приоритет является относительным, вы можете использовать его только для различения URL-адресов на вашем сайте.

Код для создания собственной SEO XML-карты сайта.

Примечание: существует другая версия этого кода с большим количеством кода, которая теперь называется SEO-процессором с включением robot.txt, см. SEO Процессор

Следующий файл Sitemap работает с полями на элементах страницы для управления изменением частоты и приоритета, а также возможностью скрытия.

  • Поддержка мульти-сайта
  • использовать changefreq и приоритет
  • Дополнительная поддержка многоязычных сайтов
  • Поддержка компонентных базовых страниц.
  • Дополнительная поддержка lastmod (добавить код)

using System.Collections.Generic; используя System.Text; использование System.Text.RegularExpressions; используя Sitecore.Data; используя Sitecore.Data.Fields; используя Sitecore.Data.Items; использование Sitecore.Links; пространство имен Mirabeau.Website.Helpers {общедоступный статический класс XmlSitemap {// общедоступная статическая строка на одном языке GetXml () {Database db = global :: Sitecore.Context.Database; var homeitem = global :: Sitecore.Context.Item.GetHomeItem (); var query = string.Format ("fast: {0} // *", EscapeSitecoreFastQueryPath (homeitem.Paths.FullPath)); var detailList = новый список <Item> (db.SelectItems (query)); detailList.Add (homeitem); var options = global :: Sitecore.Links.LinkManager.GetDefaultUrlOptions (); options.AlwaysIncludeServerUrl = true; return CreateSiteMapUrls (detailList, параметры); } // многоязычная общедоступная статическая строка GetXml (List <string> languagelist) {База данных db = global :: Sitecore.Context.Database; string sitemapLinks = string.Empty; foreach (var language в languagelist) {Язык currentSiteLanugage; if (Language.TryParse (language, out currentSiteLanugage)) {Sitecore.Context.SetLanguage (currentSiteLanugage, true); } var homeitem = global :: Sitecore.Context.Item.GetHomeItem (); var query = string.Format ("fast: {0} // *", EscapeSitecoreFastQueryPath (homeitem.Paths.FullPath)); var detailList = новый список <Item> (db.SelectItems (query)); detailList.Add (homeitem); var options = global :: Sitecore.Links.LinkManager.GetDefaultUrlOptions (); options.AlwaysIncludeServerUrl = true; options.LanguageEmbedding = LanguageEmbedding.Always; options.Language = Language.Parse (language); options.EmbedLanguage (LanguageManager.GetLanguage (язык)); sitemapLinks + = CreateSiteMapUrls (detailList, параметры); } вернуть sitemapLinks; } приватная статическая строка CreateSiteMapUrls (List <Item> detailList, UrlOptions urlOptions) {StringBuilder returnString = new StringBuilder (); const string defaultpagechange = "daily"; // Каждая страница поля Sitecore должна содержать это поле. var HideInSeoXmlSitemap = "Скрыть в SEO XML Sitemap"; var XmlSitemapPriority = "Приоритет XML Sitemap"; var XmlSitemapChangeFreq = "Частота изменения файла Sitemap XML"; foreach (Item item in detailList) {if (! item.GetCheckBoxValueDefaultTrue (HideInSeoXmlSitemap)) {// GetCheckBoxValueDefaultTrue для фильтрации нулевых значений, таких как элементы компонента var url = LinkManager.GetItemUrl (item, urlOptions); var prio = item.GetStringValue (XmlSitemapPriority); var changefreq = item.GetStringValue (XmlSitemapChangeFreq); if (string.IsNullOrEmpty (changefreq)) {changefreq = defaultpagechange; } if (string.IsNullOrEmpty (prio)) {returnString.AppendFormat ("<url> <loc> {0} </ loc> <changefreq> {1} </ changefreq> </ url>", url, changefreq); } else {returnString.AppendFormat ("<url> <loc> {0} </ loc> <changefreq> {1} </ changefreq> <priority> {2} </ priority> </ url> \ n", url , changefreq, prio); }}} return returnString.ToString (); } #region Методы расширения и помощники public static Item GetHomeItem (этот элемент Item) {global :: Sitecore.Sites.SiteContext site = global :: Sitecore.Context.Site; if (site == null) {return null; } global :: Sitecore.Data.Database db = global :: Sitecore.Context.Database; return db.GetItem (site.StartPath); } открытая статическая строка GetStringValue (этот элемент Item, строка fieldName) {if (item! = null && item.Fields [fieldName]! = null &&! string.IsNullOrEmpty (item.Fields [fieldName] .Value)) {возвращать элемент. Поля [FIELDNAME] .value; } return string.Empty; } public static bool GetCheckBoxValueDefaultTrue (этот элемент Item, строка fieldName) {CheckboxField checkBox = item.Fields [fieldName]; if (checkBox! = null) {return checkBox.Checked; } вернуть истину; } открытая статическая строка EscapeSitecoreFastQueryPath (string path) {return Regex.Replace (path, @ "([^ /] +)", "# $ 1 #"). Replace ("# * #", "*"); } #endregion}}

Макет (MVC) для одного языка

@using Mirabeau.Website.Helpers @ {Response.ContentType = "text / xml"; } <? xml version = "1.0" encoding = "UTF-8"?> <urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9" xmlns: xsi = "http: // www. w3.org/2001/XMLSchema-instance "xsi: schemaLocation =" http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd " > @ Html.Raw (XmlSitemap.GetXml ()) </ urlset>

Пример макета для мультиязычности

@using Mirabeau.Website.Helpers @ {Response.ContentType = "text / xml"; } <? xml version = "1.0" encoding = "UTF-8"?> <urlset xmlns = "http://www.sitemaps.org/schemas/sitemap/0.9" xmlns: xsi = "http: // www. w3.org/2001/XMLSchema-instance "xsi: schemaLocation =" http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd " > @ Html.Raw (XmlSitemap.GetXml (новый список <string> () {"en", "nl-NL"})) </ urlset>

Sitecore Предметы

Под шаблонами Sitecore. Создайте список изменений для выпадающего списка. И создайте поля XML Sitemap, используйте список changefreq для выпадающего списка для поля XML Sitemap Change Frequency.

И создайте поля XML Sitemap, используйте список changefreq для выпадающего списка для поля XML Sitemap Change Frequency

Создать проверку и значение по умолчанию для поля XML Sitemap Priority

Создать проверку и значение по умолчанию для поля XML Sitemap Priority

Создайте макет Sitemap и создайте ссылку на представление. Создайте шаблон Sitemap и установите макет Sitemap в __Standard Values. И создайте элемент карты сайта под главной страницей. С картой сайта в качестве имени.

Теперь вы можете сделать запрос к карте сайта с помощью /sitemap.aspx, чтобы изменить его на /sitemap.xml, который мы можем добавить в «Разрешенные расширения»

Сделайте возможным использование XML-URL для рендеринга макета.

Поместите это в файл /App_Config/Include/Mirabeau.SitemapXml.config

<configuration xmlns: patch = "http://www.sitecore.net/xmlconfig/"> <sitecore> <pipelines> <preprocessRequest help = "Процессоры должны быть производными от Sitecore.Pipelines.PreprocessRequest.PreprocessRequestProcessor"> <тип процессора = " Sitecore.Pipelines.PreprocessRequest.FilterUrlExtensions, Sitecore.Kernel "> <param desc =" Разрешенные расширения (через запятую) »> aspx, ashx, asmx, xml </ param> </ processor> </ preprocessRequest> </ pipelines> < / sitecore> </ configuration>

Из-за усиления безопасности Sitecore я не разрешаю XML-файлы

Нет проблем, мы сообщаем поисковой системе, что такое URL карты сайта, используя robots.txt

Пользователь-агент: *
Карта сайта: /sitemap.aspx

Трубопровод или макет

Этот прототип кода использует макет. Также можно использовать конвейер, чтобы увидеть код из Карта сайта XML Использование макета - это очень простое стандартное решение, настройка не требуется, и вы также можете использовать кэш макета Sitecore.

Многоязычные сайты

На многоязычных сайтах вы должны разместить URL для всех языков в sitemap.xml. Этот код может сделать это, и его легко адаптировать к вашим потребностям.

Ссылки по теме

Мультисайт Многоязычный SEO Процессор
Модуль с поддержкой Sitecore Карта сайта XML
Требуется нулевая конфигурация и простота установки XML Sitemap Generator
Использование XML-модуля Sitemap в защищенной многосайтовой среде
Простой конвейер без записи на диск Простой файл Sitemap XML
Создайте карту сайта Google для сайта Million plus Sitecore items
Ultimate Sitemap XML на основе XML-файла Sitemap со связанными метаполями

Но делает ли это то, что вы хотите?
Xml?
ContentType = "text / xml"; } <?
Encoding = "UTF-8"?
ContentType = "text / xml"; } <?
Encoding = "UTF-8"?