Мне было интересно, если кто-то еще это сделал или имеет какие-то примеры о том, как создать Sitemap Google для веб-сайта MVC.
Любая помощь или пример будут оценены.
Я говорю об этом: https://www.google.com/webmasters/tools/docs/en/protocol.html
Мне было интересно, если кто-то еще это сделал или имеет какие-то примеры о том, как создать Sitemap Google для веб-сайта MVC.
Любая помощь или пример будут оценены.
Я говорю об этом: https://www.google.com/webmasters/tools/docs/en/protocol.html
Я использовал Mike Brind код Sitemap с небольшим изменением.
Вам нужно добавить XNamespace к каждому XElement, иначе Google плюет манекен.
Здесь моя версия:
public ContentResult Index()
{
XNamespace ns = "http://www.sitemaps.org/schemas/sitemap/0.9";
const string url = "http://www.website.com/controller/action/{0}";
var items = _db.DataAccessHere();
var sitemap = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XElement(ns + "urlset",
from i in items
select
//Add ns to every element.
new XElement(ns + "url",
new XElement(ns + "loc", string.Format(url, i.ItemID)),
new XElement(ns + "lastmod", String.Format("{0:yyyy-MM-dd}", i.DateAddedUTC)),
new XElement(ns + "changefreq", "monthly"),
new XElement(ns + "priority", "0.5")
)
)
);
return Content(sitemap.ToString(), "text/xml");
}
Кредит Майку за публикацию оригинальной статьи и кода.
Самый простой способ - использовать какой-либо из нескольких бесплатных разработчиков Sitemap - они будут сканировать ваш сайт, следовать ссылкам и генерировать XML файл Sitemap для вас.
Бесстыдная собственная вилка: я создал библиотеку под названием SimpleMvcSitemap после странных проблем с MvcSiteMapProvider. Вы можете обслуживать файлы Sitemap из любого метода действий без какой-либо конфигурации:
public class SitemapController : Controller
{
public ActionResult Index()
{
List<SitemapNode> nodes = new List<SitemapNode>
{
new SitemapNode(Url.Action("Index","Home")),
new SitemapNode(Url.Action("About","Home")),
//other nodes
};
return new SitemapProvider().CreateSitemap(nodes);
}
}
Он также поддерживает все расширения Sitemap для Google.
Здесь post, который может дать вам некоторые идеи. В основном он генерирует карту сайта из значений маршрута.
так что вещь, использующая генераторы, просто создаст ссылку для "всего" на вашем сайте. Так что, если у вас есть, скажем, карточный сайт, и у вас есть сто тысяч карточных предметов, каждый со своей линией и всеми, вы, вероятно, увидите такое же количество ссылок. Если вы этого хотите, то генераторы xml sitemap - это путь.
Но если вы хотите немного персонализировать, вы можете сделать это:
Перечислите все основные разделы ваших сайтов. Это легко сделать, учитывая, что большинство MVC используют "чистые URL-адреса". вроде "site.com/items/phones"
Создайте документ XML, в зависимости от языка, который вы используете.
Как минимум, у вас должен быть такой документ:
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://dragonflysco.com/catalog/finishings/19</loc>
</url>
<!-- more here -->
</urlset>
Для более продвинутой структуры проверьте следующее: http://www.google.com/support/webmasters/bin/answer.py?answer=183668