Подтвердить что ты не робот

Как создать карту сайта google для сайта mvc?

Мне было интересно, если кто-то еще это сделал или имеет какие-то примеры о том, как создать Sitemap Google для веб-сайта MVC.

Любая помощь или пример будут оценены.

Я говорю об этом: https://www.google.com/webmasters/tools/docs/en/protocol.html

4b9b3361

Ответ 1

Я использовал 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");
        }

Кредит Майку за публикацию оригинальной статьи и кода.

Ответ 2

Самый простой способ - использовать какой-либо из нескольких бесплатных разработчиков Sitemap - они будут сканировать ваш сайт, следовать ссылкам и генерировать XML файл Sitemap для вас.

Вот один пример

Ответ 3

Бесстыдная собственная вилка: я создал библиотеку под названием 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.

Ответ 4

Здесь post, который может дать вам некоторые идеи. В основном он генерирует карту сайта из значений маршрута.

Ответ 5

так что вещь, использующая генераторы, просто создаст ссылку для "всего" на вашем сайте. Так что, если у вас есть, скажем, карточный сайт, и у вас есть сто тысяч карточных предметов, каждый со своей линией и всеми, вы, вероятно, увидите такое же количество ссылок. Если вы этого хотите, то генераторы 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