Я создаю социальный инструмент - я хочу позволить поисковым системам подбирать «публичные» профили пользователей - такие как твиттер и фейсбук.
Я видел всю информацию о протоколе в http://www.sitemaps.org, и я понимаю это и как создать такой файл - вместе с индексом, если я превышаю ограничение в 50 КБ.
Где я борюсь, так это концепция того, как я бегу.
Карта сайта для моих общих страниц сайта проста: я могу использовать инструмент для создания файла - или скрипт - разместить файл - отправить файл и готово.
Что мне тогда нужно, так это скрипт, который будет создавать карты сайтов профилей пользователей. Я предполагаю, что это будет что-то вроде:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.socialsite.com/profile/spidee</loc>
<lastmod>2010-5-12</lastmod>
<changefreq>???</changefreq>
<priority>???</priority>
</url>
<url>
<loc>http://www.socialsite.com/profile/webbsterisback</loc>
<lastmod>2010-5-12</lastmod>
<changefreq>???</changefreq>
<priority>???</priority>
</url>
</urlset>
Я добавил немного ??? так как я не знаю, как мне установить эти настройки для моих профилей, основываясь на следующем: -
Когда создается новый профиль, его необходимо добавить на карту сайта. Если профиль изменился или изменились «определенные» свойства - тогда я не знаю, обновляю ли я запись на карте - или что-то еще? (обновление будет кошмаром!)
Некоторые пользователи могут изменять свой профиль. С точки зрения релевантности поисковой системе, единственный способ поиска профиля пользователей (для моего требования) в Google или Yahoo будет, например, с помощью [имя пользователя] и [местоположение], поэтому после того, как запись для профиля будет добавленная в файл карты единственная причина, по которой поисковый бот переиндексирует профиль, была бы в том случае, если пользователь изменил свое имя пользователя - что он не может. или их местоположение - и или установите их настройки так, чтобы их профиль был «скрыт» от поисковых систем.
Я предполагаю, что создание моей карты должно быть динамичным. Из сказанного выше я могу предположить, что создание нового профиля и возможное редактирование определенных свойств может пометить его как необходимость добавления / обновления в карте сайта.
Предполагая, что у меня будут миллионы профилей, добавленных / редактируемых, как я могу управлять этим разумным способом.
я знаю, что мне нужен скрипт, который может добавлять URL при создании каждого профиля
я знаю, что сценарий, вероятно, будет ЗАДАЧЕЙ, работающей с заданной частотой - возможно, профили имеют свойство типа «проиндексировано», и ЗАДАЧА устанавливает их в «true», когда профили добавляются на карту.
Я не вижу лучшего способа сохранить карту - я храню ее в хранилище данных, т.е.
model = sitemaps
свойства
key_name = sitemap_xml_1 (и для моей карты sitemap_index_xml)
mapxml = blobstore (необработанная карта XML или карта ROR)
full = boolean (установите значение true, когда счетчик URL равен 50) # это может понадобиться, так как осколок скажет нам
Чтобы заставить это работать, мои мысли
m кэширует текущую структуру карты сайта как "sitemap_xml"
вести подсчет количества ссылок
когда моя задача выполняется
1. построить структуру xml, скажем, первые 100 URL, помеченные как «index == false» (сколько вы можете запустить за раз?)
2. проверить, заполнен ли текущий файл карты mcache (shardcounter + 100> 50K)
3.a если карта почти заполнена, создайте новую запись карты в моделях "sitemap_xml_2" - обновите файл map_index (также сохраненный в моей модели как "sitemap_index", запустите новый осколок - или выполните сброс.2
3.b, если карта не полная, возьмите ее из mcache
4. Добавьте 100-миллиметровую структуру URL
5. сохранить / м кеш карты
Теперь я могу добавить обработчик, используя URL-карту / маршрут, как / sitemaps / *
Получите мой * как имя карты и обслуживайте карты из магазина / маше на лету.
Теперь мой вопрос: эта работа - это правильный путь или хороший способ начать? Будет ли это справляться с ситуацией, когда поисковые роботы обновляются, когда пользователь меняет свой профиль - возможно, путем правильной установки частоты изменений? - Нужна ли мне более продвинутая система :(? Или я заново изобрел колесо!
Надеюсь, все понятно и имеет смысл: -)