- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Добрый день. Ситуация след. - есть сайт разделы которого имеют такие урлы:
1 страница раздела: /answer/1/ или /answer/31231/
2 и последующие страницы имеют вид: /answer/1/?step=56 или /answer/1/?step=5690114, где 56 - это ID первого комментария на странице с учетом сортировки, от которого идет отсчет комментариев для показа.
Вкратце объясню почему так. Кто сталкивался с базами данных на миллионы записей (речь о mysql) знают о вредности конструкции offset, limit. Чтобы каждый раз не проходить по всей базе и задается параметр step - то есть просто берем N элементов после ID по индексу. В итоге пройтись придется в идеале всего по N элементам. А иначе при offset = 999999 придется сначала пройти все эти 999999 строк и только потом показать наши 10-20. Кому интересно можно почитать об этом на хабре.
Теперь вернемся к нашим урлам. Допустим вчера для 2 страницы выборка была, где первым ID был 56. Сегодня изменилось что-то, первый ID стал 80. То есть урл сменился с /answer/1/?step=56 на /answer/1/?step=80. Хотя для посетителя это все та же 2 страница. Но не для ПС.
Как тут быть? Чтобы не плодить дублей. С тем учетом, что индекс 2 и последующих страниц нужен. Варианты rel="canonical" и clean-param в роботсе.тхт не решают полностью проблемы. Урлы переделать, но step то надо оставлять всегда - без step просто ничего не вернет. Может у кого есть какие мысли, буду признателен - пытался объяснить проблему максимально понятно :)
Интересная задачка. В принципе, страницы никуда не деваются, смещается контент в них, у поисковика будет не самая актуальная информация по контенту в них. Возможно, быстробот поможет решить эту проблему, но не уверен. Тут виден некий компромисс технической оптимизации и сео.
Сама пагинация, я имею ввиду URL'ы генерируются, как я понимаю, тоже динамически? То есть при построении ссылок на последующие страницы алгоритм пробегается по всем записям в таблице и с учетом сортировки генерирует ссылки /answer/1/?step=xxxx ? Они каким-то образом кешируются?
Интересная задачка. В принципе, страницы никуда не деваются, смещается контент в них, у поисковика будет не самая актуальная информация по контенту в них. Возможно, быстробот поможет решить эту проблему, но не уверен. Тут виден некий компромисс технической оптимизации и сео.
Не совсем смещаются. В данном случае (что немного облегчает задачу) сортировка идет только по дате. То есть в идеале на первой, второй и т.д. страницах комментарии не меняются, они добавляются в конец, на последнюю страницу. Таким образом растет число страниц. Но иногда что-то удаляется, переносится, модерируется. Именно поэтому происходит смена урлов - например был набор 1,2,3,4,5 и степ=5, стало 1,2,3,5,6 и степ=6 получился.
Сама пагинация, я имею ввиду URL'ы генерируются, как я понимаю, тоже динамически? То есть при построении ссылок на последующие страницы алгоритм пробегается по всем записям в таблице и с учетом сортировки генерирует ссылки /answer/1/?step=xxxx ? Они каким-то образом кешируются?
Да динамически, но есть только кнопки вперед-назад. Постраничной навигации нет. Иными словами урл 3 страницы известен только на 2. Только это и позволяет делать быструю выборку - по всем записям бегать не приходится. Выбираются след. N после id, который в степ. Там индекс сделан. То есть прыгаем сразу на 999999 элемент и с него выбираем N нужных.
Кеширование решит задачу, но придется каждый раз при изменениях сбрасывать его. В этом случае можно вообще перейти на урлы вида /answer/1/pageN/ например, где N - 7,8,9. Думаю программист сделает, но пока хочется попробовать иначе как-то.