it-swarm.com.ru

Карта сайта на высокодинамичном сайте

Должен ли высокодинамичный веб-сайт, который постоянно генерирует новые страницы, использовать sitemap ? Если да, то как такой сайт, как stackoverflow.com, будет создавать карту сайта? Похоже, что это стоило бы ресурсов драгоценного сервера, если бы он постоянно обновлял карту сайта каждый раз, когда кто-то добавляет вопрос. Создает ли он новую карту сайта через заданные интервалы (например, каждые четыре часа)? Мне очень любопытно, как большие, динамичные сайты делают эту работу.

37
Andrew Garrison

В Stackoverflow (и на всех сайтах Stack Exchange) создается файл sitemap.xml, содержащий ссылку на каждый вопрос, опубликованный в системе. Когда новый вопрос публикуется, они просто добавляют другую запись в конец файла карты сайта. Это не так много ресурсов, чтобы добавить в конец файла, но файл довольно большой. 

Это единственный способ, которым поисковые системы, такие как Google, могут эффективно сканировать сайт.

Джефф Этвуд рассказывает об этом в своем блоге: Важность файлов Sitemap

Это от страница справки Google для веб-мастеров на картах сайта

Файлы Sitemap особенно полезны, если:

  • Ваш сайт имеет динамическое содержание.
  • На вашем сайте есть страницы, которые не легко обнаруживаются роботом Googlebot во время процесс сканирования - например, страницы показывая богатый AJAX или Flash.
  • Ваш сайт новый и на него мало ссылок. (Робот Googlebot сканирует сеть по Переходя по ссылкам с одной страницы на Другую, поэтому, если ваш сайт не очень хорошо связан с , Нам может быть трудно Обнаружить его.)
  • На вашем сайте есть большой архив содержательных страниц, которые не имеют хороших ссылок друг с другом, или не связаны в все.
40
Robert Cartaino

Нет необходимости перегенерировать XML карты сайта Google каждый раз при публикации вопроса. Гораздо проще просто создать XML-файл по запросу непосредственно из базы данных (и немного кешировать).

Чтобы уменьшить нагрузку, карту сайта можно разделить на несколько файлов. Разбив его по дням/месяцам, вы могли бы сказать Google, чтобы он часто получал сегодняшнюю карту сайта, но время от времени извлекал карту только из шести месяцев назад.

12
ceejayoz

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

Структура моего сайта.

Статические страницы

  • Домой (Очень динамичный. Кэшируется в течение 30 минут)
  • Исполнители, альбомы, песни, плейлисты и альбомы (нумерованный список)
  • Legal (Статическая страница с Условиями и т.д.)

...так далее

Динамические страницы

  • Художники, альбомы, песни, плейлисты и альбомы подробно

Мой подход.

sitemap.xml : Этот URL генерирует <sitemapindex /> с первым элементом /sitemap-main.xml. Количество Artists, Albums, Songs и т.д. Подсчитывается и делится на 1000 (количество URL-адресов, которые я хочу получить в каждой карте сайта. Ограничение составляет 50 000). Я округлил это число.

Так, например, 1900 песен = 1,9 = 2 . Я генерирую. добавьте URL /sitemap-songs-0.xml и /sitemap-songs-1.xml в индекс. Я повторяю это для всех других предметов. В основном, я делаю пагинацию.

Вывод возвращается без кэширования. Я хочу, чтобы это всегда было свежо.


sitemap-main.xml : Здесь перечислены все статические страницы. Вы можете использовать статический файл для этого, так как вам нужно будет обновлять его только время от времени.


sitemap-songs-0.xml, sitemap-album-0.xml и т. д. : я использую один способ для этого в SlimPhp 2. 

$app->get('/sitemap-:type-:page.xml', function ($type, $page) use ($app) {...

Я использую простой оператор switch для генерации соответствующих файлов. Если для этой страницы я получил 1000 элементов, указанный выше лимит, я кеширую файл в течение 2 недель .... Иначе, я кеширую его только на несколько часов.

Я думаю, что это может помочь кому-либо еще реализовать свою собственную систему.

4
frostymarvelous

Даже в чем-то вроде StackOverflow существует определенная статическая организация; есть часто задаваемые вопросы, страницы тегов, страницы вопросов, страницы пользователей, страницы значков и т. д .; Я бы сказал, что на очень динамичном сайте лучший способ приблизиться к карте сайта - это иметь карту категорий; каждый узел в карте сайта может указывать на страницу динамически генерируемых данных (узел для страницы вопроса, узел для страницы пользователя и т. д.).

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

2
Paul Sonier

Для очень динамичного сайта я написал на своем сервере задание cron, которое выполняется ежедневно. Каждый день он вызывает мой бэкэнд в покое, генерирует новую карту сайта в соответствии со всем новым содержимым и возвращает карту сайта в форме файла XML. Эта новая карта сайта заменяет предыдущую и обновляет мой сайт в соответствии со всеми изменениями. Я думаю, что изменение карты сайта для каждого вновь добавляемого динамического контента не очень хороший подход.

0
Muhammad Ahsan