Шматмоўная SEO XML-карта сайта для Sitecore

Шматмоўная SEO XML-карта сайта для Sitecore

На Marketc Sitecore ёсць некалькі модуляў Sitemap, даступных для Sitecore. Але гэта робіць тое, што вы хочаце?
The Карта сайта XML гэта выдатны модуль.

  • Падтрымліваецца Sitecore
  • Ён стварае файл sitemap.xml
  • Ён выкарыстоўвае поле «__Uddated» у раздзеле статыстыкі з пункта старонкі
  • Падтрымка некалькіх сайтаў
  • Нічога не рабіць з changefreq і прыярытэтам
  • Няма падтрымкі шматмоўных сайтаў
  • Няма правільнай падтрымкі кампанентаў базавых старонак.
  • Не стварае https URL


У гэтым артыкуле гаворка ідзе пра стварэнне ўласнай карты сайта, якая працуе інакш, чым папулярны модуль рынку і як мага прасцей. Дзякуючы інтэграцыі, неабходнай для вашага сайта, гэта зрабіць у модулі.

Існуючая карта SEO XML для модуляў Sitecore стварае няправільныя даты мадыфікацыі і не з'яўляецца шматмоўнай. З дапамогай простай канфігурацыі і кода вы можаце стварыць свой уласны
вельмі інтэграваны sitemap.xml і выкарыстоўваюць іншыя ўласцівасці схемы, вызначанай на sitemaps.org, з дадатковай канфігурацыяй старонкі.

Спецыфікацыі Sitemap.xml.

Тэг

Абавязковае ці неабавязковае

Апісанне

<loc>

патрабуецца

URL з пратаколам

<lastmod>

Неабавязкова

Дата часу

<changefreq>

Неабавязкова

  • заўсёды
  • пагадзіннай
  • штодня
  • штотыдзень
  • штомесяц
  • штогод
  • ніколі

<prority>

Неабавязкова

ад 0,0 да 1,0

У чым прычына вы хочаце sitemap.xml? Мой SEO інструмент кажа. Вядома, няма сэнсу, калі ў вас ёсць адзін ці не. Гэта як вы яго выкарыстоўваеце.

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

Толькі індэксуйце патрэбныя старонкі.

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

Тэг changefreq

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

Тэг прыярытэту

Прыярытэты Як і згадваецца Changefreq, таксама параметры Прыярытэт - проста кіраўніцтва для Google або любой іншай пошукавай сістэмы, прытрымлівацца пры індэксацыі вашага сайта. Прыярытэт, які вы надаеце старонцы, не ўплывае на становішча вашых URL на старонках вынікаў пошукавай сістэмы. Гэтая інфармацыя можа выкарыстоўвацца пошукавымі сістэмамі для выбару URL-адрасоў на тым жа сайце. Вы можаце выкарыстоўваць гэты тэг, каб павялічыць верагоднасць таго, што найбольш важныя старонкі прысутнічаюць у індэксе пошуку.
Рашэнне складаецца ў тым, каб зрабіць поле "XML Sitemap Change Frequency" і размясціць яго на вашых старонках, каб кантраляваць паводзіны.

Заўвага: Прызначэнне высокага прыярытэту для ўсіх URL-адрасоў вашага сайта ніяк не паўплывае. Паколькі прыярытэт адносны, вы можаце выкарыстоўваць яго толькі для адрознення URL-адрасоў на вашым сайце.

Код для стварэння ўласнай SEO-карты XML XML.

Заўвага: існуе іншая версія гэтага кода з большай колькасцю кода і зараз называецца працэсарам SEO з robot.txt ўключаць гл SEO працэсар

Наступная карта Sitemap працуе з палямі на элементах старонкі для кантролю змены частоты і прыярытэту і магчымасці схаваць.

  • Падтрымка некалькіх сайтаў
  • выкарыстоўваць changefreq і прыярытэт
  • Дадатковая падтрымка шматмоўных сайтаў
  • Падтрымка кампанентаў базавых старонак.
  • Дадатковая падтрымка lastmod (дадайце код)

з выкарыстаннем System.Collections.Generic; з дапамогай System.Text; з выкарыстаннем System.Text.RegularExpressions; з выкарыстаннем Sitecore.Data; з выкарыстаннем Sitecore.Data.Fields; з выкарыстаннем Sitecore.Data.Items; з выкарыстаннем Sitecore.Links; прастора імёнаў Mirabeau.Website.Helpers {публічны статычны клас XmlSitemap {// публічная статычны радок адной мовы GetXml () {База дадзеных 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 (запыт)); detailList.Add (homeitem); var options = global :: Sitecore.Links.LinkManager.GetDefaultUrlOptions (); options.AlwaysIncludeServerUrl = true; вярнуць CreateSiteMapUrls (detailList, опцыі); } // шматмоўная публічная статычная радок GetXml (List <string> languagelist) {База дадзеных db = global :: Sitecore.Context.Database; радок sitemapLinks = string.Empty; foreach (var language in languagelist) {Language currentSiteLanugage; if (Language.TryParse (мова, з currentSiteLanugage)) {Sitecore.Context.SetLanguage (currentSiteLanugage, праўда); } var homeitem = global :: Sitecore.Context.Item.GetHomeItem (); var query = string.Format ("fast: {0} // *", EscapeSitecoreFastQueryPath (homeitem.Paths.FullPath)); var detailList = новы спіс <Item> (db.SelectItems (запыт)); detailList.Add (homeitem); var options = global :: Sitecore.Links.LinkManager.GetDefaultUrlOptions (); options.AlwaysIncludeServerUrl = true; options.LanguageEmbedding = LanguageEmbedding.Always; options.Language = Language.Parse (мова); options.EmbedLanguage (LanguageManager.GetLanguage (мова)); sitemapLinks + = CreateSiteMapUrls (detailList, опцыі); } return sitemapLinks; } прыватная статычная радок CreateSiteMapUrls (Спіс <Item> detailList, UrlOptions urlOptions) {StringBuilder returnString = new StringBuilder (); const string defaultpagechange = "штодня"; // Кожная старонка палі сайта Sitecore павінна ўтрымліваць гэтае поле. var HideInSeoXmlSitemap = "Схаваць у SEO XML Sitemap"; var XmlSitemapPriority = "Прыярытэт Sitemap XML"; var XmlSitemapChangeFreq = "Частата змены частоты файлаў XML"; foreach (Элемент элемента ў 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 Пашырэнне метадаў і дапаможнікаў агульнадзяржаўнага статычнага элемента GetHomeItem (гэты элемент пункта) {global :: Sitecore.Sites.SiteContext site = global :: Sitecore.Context.Site; if (site == null) {return null; } global :: Sitecore.Data.Database db = global :: Sitecore.Context.Database; вяртае db.GetItem (site.StartPath); } публічная статычны радок GetStringValue (гэты элемент элемента, радок fieldName) {if (item! = null && item.Fields [fieldName]! = null &&! string.IsNullOrEmpty (item.Fields [fieldName] .Value)) {return item. Палі [fieldName] .Value; } return string.Empty; } агульны статычны пул GetCheckBoxValueDefaultTrue (гэты элемент элемента, радок fieldName) {CheckboxField checkBox = item.Fields [fieldName]; if (checkBox = null) {return checkBox.Checked; } return true; } публічная статычная радок EscapeSitecoreFastQueryPath (шлях да радку) {вяртае Regex.Replace (шлях, @ "([^ /] +)", "# $ 1 #"). Замяніць ("# * #", "*"); } #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>

Пункты сайта

Ніжэй шаблонаў сайта. Стварыце спіс змяненняў для дропліста. І стварыце палі Sitemap XML, выкарыстоўвайце спіс changefreq для дропліста для поля XML Sitemap Change Frequency.

І стварыце палі Sitemap XML, выкарыстоўвайце спіс changefreq для дропліста для поля XML Sitemap Change Frequency

Стварыць праверку і значэнне па змаўчанні для поля XML Sitemap Priority

Стварыць праверку і значэнне па змаўчанні для поля XML Sitemap Priority

Стварыце макет Sitemap і спасылка на выгляд. Стварыце шаблон Sitemap і ўсталюйце макет Sitemap у значэннях __Standard. І стварыце элемент сайта на галоўнай старонцы. З картай як імя.

Цяпер вы можаце зрабіць запыт на сайт-карты з /sitemap.aspx, каб змяніць яго на /sitemap.xml, мы можам дадаць яго ў "Дазволеныя пашырэнні"

Зрабіце URL .xml магчымым для рэндэрынгу макета

Змясціце гэта ў файле /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> <pipelines> / sitecore> </configuration>

З-за ўзмацнення жорсткасці бяспекі Sitecore я не дазваляю XML-файлаў

Без праблем мы распавядаем пошукавіку, што такое URL сайта, выкарыстоўваючы robots.txt

Карыстальнік-агент: *
Карта сайта: /sitemap.aspx

Трубаправод або Макет

Гэты прататып-код выкарыстоўвае макет. Таксама можна выкарыстаць трубаправод, які бачыць код з Карта сайта XML Выкарыстанне макета - гэта вельмі простае стандартнае рашэнне, не патрабуецца канфігурацыя, і вы таксама можаце выкарыстоўваць кэш макета Sitecore.

Шматмоўныя сайты

На шматмоўных сайтах вы павінны размясціць URL для ўсіх моў у sitemap.xml. Гэты код можа зрабіць гэта і лёгка адаптавацца да вашых патрэб.

Спасылкі па тэме

Шматмоўны Шматмоўны SEO працэсар
Модуль з падтрымкай Sitecore Карта сайта XML
Нулявая канфігурацыя патрабуецца і простая ў ўстаноўцы Генератар файлавых карт XML
Выкарыстанне Sitemap XML-модуля ў загартаванай, шматзадачнай асяроддзі
Лёгка трубаправод без запісу на дыск Просты файл Sitemap XML
Стварыце карту Google для сайта "Мільён плюс сайт сайтаў"
Канчатковая XML-карта заснаваны на XML-Sitemap XML з адпаведнымі мета-палямі

Але гэта робіць тое, што вы хочаце?
Xml?
ContentType = "text / xml"; } <?
Encoding = "UTF-8"?
ContentType = "text / xml"; } <?
Encoding = "UTF-8"?