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

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

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

4b9b3361

Ответ 1

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

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

Моя структура сайта.

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

  • Главная (высокодинамичная. Кэшированная в течение 30 минут)
  • Исполнители, альбомы, песни, плейлисты и альбомы (список с разбивкой по страницам)
  • Правовая информация (статическая страница с условиями и т.д.)

... и т.д.

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

  • Подробные страницы исполнителей, альбомов, песен, плейлистов и альбомов

Мой подход.

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-albums-0.xml и т.д.. Я использую один маршрут для этого в SlimPhp 2.

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

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

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

Ответ 4

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

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

Ответ 5

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

Ответ 6

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