Sitemap для больших сайтов - особенности.

Sitemap - тяжкое в понимании, где-то даже мифологический то ли термин, то ли технология, то ли реализация... В общем, попробуем разоборать тонкости работы с sitemap с поправкой на друпал и сайт, у которого количество страниц больше одной-двух-трёх (цифр :) ).

Не буду разгонять про теоретические основы, всё действительно есть в инете. Коротко скажу лишь, что для мелкосайтов достаточно (сам так делаю) набрать в поисковике online sitemap и обычно всё равно попадаешь на всё тот же сайт xml-sitemaps.com. Сайт "правильный", голова не болит сделать в нём сайтмэп для маленькой сайтподелки.

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

А в друпале (и пятёрке и шестёрке) для него есть полезный модуль с адекватным названием XML Sitemap. К бааааальшому сожалению и (насколько помню) в пятёрке и (точно знаю) в шестёрке (на момент написания сиих слов) - глючит просто не-подетски. При чём глючит - во всех смыслах. Те, кто скажет, что это не так, просто не учитывают сказанное в начале данной страницы - "для больших сайтов". Для маленьких (предположу) - он может и быть нормальным. Но для больших - будьте готовы к стандартному "после сборки обработать напильником".

Итак, буду по-чутка вспоминать, что же там не так.

Перед генерацией сразу идите и временно удаляйте сделанный ранее sitemap.xml в корне сайта. После отработки модуля - вернём на родину. Иначе, падла, то ли из-за кэширования броузеров, то ли ещё по какой причине - может отказаться корректно генерить (или вообще генерить).

При соооовсем больших сайтах - сразу идём и ставим до упора таймлимит на отработку скриптов, иначе они они будут прибиваться, так и не доработав до конца.

В связи с предыдущим пунктом, а также по соображениям более тонкого мониторинга роботы ПС (в первую очередь - Google) - лучше бить на небольшие блоки ссылок, штук по пять-десять тысяч. Объединить позже их в один sitemap.xml не составит труда:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="http://www.rom.by/files/xmlsitemap/gss.xsl" ?>
<sitemapindex 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/siteindex.xsd">
<sitemap><loc>http://www.rom.by/_sitemap/sitemap0.xml.gz</loc><lastmod>2009-02-02T00:14:15+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/sitemap1.xml.gz</loc><lastmod>2009-02-02T00:15:46+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/sitemap2.xml.gz</loc><lastmod>2009-02-02T00:16:16+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/sitemap3.xml.gz</loc><lastmod>2009-02-02T00:17:02+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/user.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment00.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment10.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment20.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment30.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment40.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment50.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment60.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment70.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment80.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment90.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment100.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment110.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment120.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment130.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment140.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment150.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
<sitemap><loc>http://www.rom.by/_sitemap/comment160.xml.gz</loc><lastmod>2009-02-02T00:18:03+00:00</lastmod></sitemap>
</sitemapindex>

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

В частности, в приведённом примере сразу видна важная особенность, уже даже не в стиле "обработать напильником", сколько ещё и "поработать ручками". Исключительно важный (в SEO-шном плане) модуль Comment Page, к сожалению никак не попадает в получаемый сайтмэп, потому их я "нарисовал" ручками, кому надо - несложно скачать по вышеприведенным ссылкам. ;) Смысл простой - тупо наклепать всех ссылок по однообразному шаблону. Единственное отличие (речь о commentХХХ.xml.gz) - даты у них одинаковые и частота стоит месяц. Думаю - вполне нормально, даты понаставил по времени первого из пачки постов (хотя можно и для "совсем всех" - одинаковые).

Далее. Видно из примера с ромбы, что я не генерю "толпой", "без разбора" sitemap из всех типов нод. Я по очереди подключаю модули - отдельно user, отдельно taxonomy, отдельно node. Почему? Дело в том, что на ссылки таксономии Google матерится, обзывая их "динамическими", что ему будет тяжко и чтобы не напрягаться - может обидиться и не приходить (или приходить редко, чтоб снова обидиться). Так вот, чтобы этого не произошло, генерим как раз отдельно каждый из типов нод, после их "собираем" по вышеприведенному примеру, т.к. не во всех поисковиках (MSN) есть добавление нескольких сайтмэпов да это и просто не удобно.

Это будет занимать некоторое время для генерации sitemap, однако позволит чётко контролировать насколько неровно дышит Google в сторону вашего сайта с точностью до конкретных областей сайта.

В результате получается - в корень кладём вышеприведенный sitemap.xml, в какую-нибудь директорию складываем "запчасти", туда же закидываем и term.xml.gz (что порождается из таксономии - название можно придумать своё, потому как, понятно, по умолчанию он всё тот же sitemap.xml) и благополучно скармливаем гуглю корневой sitemap.xml. В нём нет таксономии, потому он должен всё скушать и совсем не поморщиться. Как минимум на "динамические ссылки" - жаловаться точно не должен. :) А тому же Яндексу и Яхе сотоварищи можно тупо скормить term.xml.gz дополнительно (как два сайтмэпа - один будет "составной",а один - term.xml.gz - "обычный").

 

Однако не стоит преувеличивать "силу" sitemap. Его возможности в увеличении привлекатильности сайта в глазах поисковика - весьма не очевидны. Потому, в частности, вышеуказанные манипуляции с раздельными блоками ссылок для sitemap - направлены больше на мониторинг работы поисковиков с сайтом, нежели на то, чтобы как-то кого-то привлечь. В любом случае, строго очевидных доказательств (сильного) влияния наличия sitemap-а - я так, вообще, пока и не видел. Хотя в своё время наивно относился к нему чуть ли не как к панацее. :)

п.с. Все вышеупомянутые получаемые на выходе модуля XML Sitemap файлы настоятельно рекомендуется пожать в gzip-формат. Дело это не хитрое, встроено в тот же TotalCommander. Я выбираю в оном условия по умолчанию, когда он жмёт плохо, но крайне быстро - отличие даже в два раза по объёму не есть принципиально (т.к. речь обычно о килобайтах-десятках килобайт), однако фик его знает, как там будет на сервере поисковика, если попытаться пожать тем же 7-zip с максимальной компрессией (я пробовал - ест, нормально ест, как минимум Google, но, всё равно, лучше не гнаться за не востребованными килобайтами и чётко придерживаться в подобных вещах "классики".

Добавить комментарий