Создание xml-карты сайта для больших проектов (более 20 000 стр.) — минимануал
Содержание статьи
Может для кого-то будет баяном. Не претендую на лучшее решение поставленной задачи, но на вполне здравое и практичное — да.
Особенности создания XML — карты для большого сайта
- В одном сайтмапе не более 50 000 строк и его размер не более 10 мб
- Если сайтмапов много, надо создать файл индекса сайтмапов, где описать все остальные, стандарт файла описан тут.
Если файлов индекса сайтмапов много, надо сделать файл индекса файлов индекса сайтмапов.
Задача с моим проектом
- Добавить в сайтмап 70 000 страниц
- URL-ы нужны не со всего сайта, а только из определённого раздела
- При этом url-ы из этого раздела так просто не спарсить — они доступны только по гет-параметрам (почти нет других ссылок на эти страницы).
Разумное решение
Вообще, я с самого начала хотел найти программу, которая генерирует сайтмап не на основе краулинга сайта, а по заданному списку урлов, но у меня не получилось, может недостаточно искал, но в основном все известные мне сервисы и программы только краулят. Прогерам на заметку.
Пришлось действовать самому:
- Составил в excel списки всех возможных значений get-параметров
- Подготовил к генераций url-ов при помощи notepad-а (в нотпаде можно очень быстро сцеплять нужные строки, добавлять символы сразу в конец всех строк и т.п.)
- Вставил все параметры в программу seo AG. Она предназачена для генерации анкоров, текстов, но нам как раз и надо сгенерировать строки урлов из всех возможных значений параметров. Получил адреса страниц.
- Полученные url-ы опять загнал в notepad и там же привёл к формату микроразметки для xml-карты (опять использовал массовую функцию «найти-заменить»).
- Разбил один файл на несколько.
- Сделал файл индекса сайтмапов.
У меня на практике не так много крупных сайтов, намного больше средних и малых интернет-магазинов. Поэтому действовал по наитию, если бы была нужда в промышленных масштаб, задумался бы об оптимизации шагов 2,3 при помощи парсера, 4 и 5 при помощи программы/сервиса создания карты сайта по заданным урлам и автоматического разбиения при достижении 50 000 строк.