Автор Тема: Вопрос о постраничной навигации, sitemap и alt  (Прочитано 4004 раз)

24 Май 2013, 21:11:28
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Добрый день!
Мой первый ИМ готов к "выходу в люди", осталось прояснить еще несколько моментов. Надеюсь, джентльмены мне помогут? ;)
Версия Prestashop 1.5.3.1

В одной категории уже имеется 2 страницы товаров  (по 10 товаров на странице)

Отображаются по таким URL:

http://site/category  (ссылка в меню на 1-ю страницу категории)
http://site/category?  (ссылка на 1-ю страницу в пагинаторе)
http://site/category?p=2  (ссылка на 2-ю страницу в пагинаторе)

Получается, дубль первой страницы.
Вопрос 1. Что и где надо поправить, чтобы избежать дубля первой страницы.

Title первой страницы: Содержание_тайтла_для_категории_как_я_написала
Title второй страницы: Содержание_тайтла_для_категории_как_я_написала (2)

Наверное, можно считать, что Title разные? Но вот meta name="description" у этих страниц одинаковые

Вопрос 2. Как в description  страницы добавить что-либо типа "страница N"?

Я сформировала sitemap.xml с помощью модуля Карта сайта Google sitemap. Но ссылки получились не ЧПУ, а такого вида
http://site/index.php?id_product=56&controller=product

Вопрос 3. Как их привести к ЧПУ?

И еще один момент: у всех изображений пустой  alt=""

Вопрос 4. Где настраивается alt для изображений?

Заранее благодарю за ответы.
24 Май 2013, 21:55:23
Ответ #1
  • Фрилансер
  • *
  • Сообщений: 217
  • Репутация: +6/-0
  • Разработка и поддержка сайтов
    • Просмотр профиля
    • Разработка и поддержка сайтов
1.2. Всё делается при помощи robots.txt, после ? делать запрет для поисковика и не будет дублей:

User-agent: *
# Directories
Disallow: /classes/
Disallow: /config/
Disallow: /download/
Disallow: /mails/
Disallow: /modules/
Disallow: /translations/
Disallow: /tools/
Disallow: /lang-ru/
# Files
Disallow: /addresses.php
Disallow: /address.php
Disallow: /authentication.php
Disallow: /cart.php
Disallow: /discount.php
Disallow: /footer.php
Disallow: /get-file.php
Disallow: /header.php
Disallow: /history.php
Disallow: /identity.php
Disallow: /images.inc.php
Disallow: /init.php
Disallow: /my-account.php
Disallow: /order.php
Disallow: /order-opc.php
Disallow: /order-slip.php
Disallow: /order-detail.php
Disallow: /order-follow.php
Disallow: /order-return.php
Disallow: /order-confirmation.php
Disallow: /pagination.php
Disallow: /password.php
Disallow: /pdf-invoice.php
Disallow: /pdf-order-return.php
Disallow: /pdf-order-slip.php
Disallow: /product-sort.php
Disallow: /search.php
Disallow: /statistics.php
Disallow: /attachment.php
Disallow: /guest-tracking
Disallow: /*orderby=
Disallow: /*orderway=
Disallow: /*tag=
Disallow: /*id_currency=
Disallow: /*search_query=
Disallow: /*id_lang=
Disallow: /*back=
Disallow: /*utm_source=
Disallow: /*utm_medium=
Disallow: /*utm_campaign=
Disallow: /*n=
Disallow: /*p=

Host: mysite.ru

3. Попробуйте включить чпу и сделать генерацию.
4. ALT настраивается при загрузке изображения для товара
24 Май 2013, 22:44:32
Ответ #2
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Сорри, но мне не совсем понятно.
1.2. Всё делается при помощи robots.txt, вот тут для 1.4, но должно быть понятно, после ? делать запрет для поисковика и не будет дублей:.
Я сгенерировала robots.txt, затем сгенерировала sitemap.xml через сторонний сервис (чтобы посмотреть со стороны)
Правильно ли я поняла, что мне надо добавить в robots.txt
Disallow: /firstcategory?
Disallow: /secondcategory?
и так по всем категориям? И дубля первой страницы не будет?

Цитировать
3. Попробуйте включить чпу и сделать генерацию.
ЧПУ включен изначально. Все ссылки на сайте в "человекопонятном" виде. Только в sitemap не так...

Цитировать
4. ALT настраивается при загрузке изображения для товара
Добавление товаров и изображений я настроила через CSV import - там нет поля для определения alt  :( Но даже  если я загружаю изображение "ручками", мне тоже нигде не предлагает ввести  alt...
24 Май 2013, 23:01:53
Ответ #3
  • Фрилансер
  • *
  • Сообщений: 217
  • Репутация: +6/-0
  • Разработка и поддержка сайтов
    • Просмотр профиля
    • Разработка и поддержка сайтов
1.2. Просто сгенерировать robots.txt, и добавить выключение ?p, никаких категорий перечислять не нужно)
4. ALT - в данном случае - это описание к изображению, оно должно быть
25 Май 2013, 01:11:44
Ответ #4
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Немного разобралась, но хочу уточнить. Вот три ссылки:

http://my-site/toys
http://my-site/toys?
http://my-site/toys?p=2 

Если написать:   Disallow: /*?p - это закроет пагинацию, начиная только  со второй страницы или всю?

Или правильнее будет:   Disallow: /*?
И еще вопрос: закрытие от индексации  в robots.txt,  не закрывает для поисковых роботов проход  по ссылкам страниц с пагинацией, чтобы проиндексировать страницы с товарами?


То, что ALT  должно быть, я понимаю. Но ткните меня носом, ГДЕ ЭТО?
25 Май 2013, 01:58:54
Ответ #5
  • Фрилансер
  • *
  • Сообщений: 217
  • Репутация: +6/-0
  • Разработка и поддержка сайтов
    • Просмотр профиля
    • Разработка и поддержка сайтов
Disallow: /*?p закроет начиная со второй страницы, чтобы убрать ? нужно лезть в код править пагинацию.
Disallow: /*? - закроет то что идет после ?, то есть все

И еще вопрос: закрытие от индексации  в robots.txt,  не закрывает для поисковых роботов проход  по ссылкам страниц с пагинацией, чтобы проиндексировать страницы с товарами?

не понял,  роботс закрывает проходы для ПС

ALT - действительно нет))...а в 1.4 есть, похоже разработчики забыли сделать интерфейс для управления, так как поле legend в базе есть.

25 Май 2013, 11:44:16
Ответ #6
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Мои предварительные выводы (поправьте, в чем не права):
1. ALT.  Нужно написать скрипт, который будет апдейтить legend в image_lang. Запускать через phpMyAdmin после импорта товаров. Решение, конечно, не изящное  8)
2. Модуль для Sitemap включенный ЧПУ не видит. Либо нужен другой модуль, либо online-сервис.
3. ROBOTS.  Рассуждаю вслух: Если я добавлю еще 10 страниц товаров и при этом закрою всю пагинацию в pobots.txt, то как поисковики узнают о моих товарах???
Прийдется пока сделать так: Disallow /*?$  - это закроет полный дубль первой страницы, но останутся остальные, с повторяющимся метаописанием - гуглу не понравиться  :-\

Идеальный вариант - это использовать метатег "robots" со значением "noindex, follow"  для категорий товаров. Как это сделать? Добавить поле в таблицу БД - не вопрос, добавлю. А ДАЛЬШЕ? Нужна помощь зала  :)
25 Май 2013, 12:29:48
Ответ #7
  • Фрилансер
  • *
  • Сообщений: 217
  • Репутация: +6/-0
  • Разработка и поддержка сайтов
    • Просмотр профиля
    • Разработка и поддержка сайтов
1. да
3. можете попробывать:
http://prestashop-forum.ru/index.php/topic,905.0.html
или воспользуйтесь поиском
25 Май 2013, 14:25:02
Ответ #8
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Цитировать
1. ALT.  Нужно написать скрипт, который будет апдейтить legend в image_lang. Запускать через phpMyAdmin после импорта товаров. Решение, конечно, не изящное  8)
В шаблоне product.tpl, добавить
{$product->description_short} (или другое поле) в alt="" и  title="". Если используются длинные описания, то можно ограничить вывод
... |truncate:сколько нужно символов
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
25 Май 2013, 14:53:16
Ответ #9
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Цитата: Purplelady
2. Модуль для Sitemap включенный ЧПУ не видит. Либо нужен другой модуль, либо online-сервис.
Для исправления этого бага есть несколько решений. Одно из решений, заменить в файле /modules/gsitemap/gsitemap.php
$tmpLink = $this->context->link->getProductLink((int)($product['id_product']), $product['link_rewrite'], $product['category'], $product['ean13'], (int)($product['id_lang']));на
$tmpLink = $this->context->link->getProductLink((int)($product['id_product']), $product['link_rewrite'], $product['category'], null, (int)($product['id_lang']),null,0,true);
Cоздание интернет сайтов Webstudio UwK
26 Май 2013, 02:03:42
Ответ #10
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, ребята!
С alt и sitemap все в порядке! Ура!  :-*

Осталась постраничная навигация. Чем больше гуглю, тем больше каши в голове... :(
26 Май 2013, 14:10:05
Ответ #11
  • Ветеран
  • *****
  • Сообщений: 105673
  • Репутация: +39553/-0
    • Просмотр профиля
    • Webstudio UwK
Цитата: Purplelady
Осталась постраничная навигация. Чем больше гуглю, тем больше каши в голове... :(
С помощью robots.txt можно запретить индексацию таких страниц.
Или же изменить title и description, например, добавить номер страницы.
Примерно так. Код не тестировался. Возможно что-то нужно будет поменять.
{if isset($smarty.get.p) AND $smarty.get.p|intval}
  {assign var='nodouble' value=$smarty.get.p}
  // или же в зависимости от номера станицы добавлять теги, которые определены для категории
{else}
  {assign var='nodouble' value=' '}
  //можно также добавить тег, например, первый тег всегда здесь, исключить его из показа при существовании $p
{/if}
{if isset($meta_description) AND $meta_description}
  <meta name="description" content="{$meta_description|escape:html:'UTF-8'} {$nodouble}" />
{/if}
Cоздание интернет сайтов Webstudio UwK
26 Май 2013, 15:48:54
Ответ #12
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Цитата: Purplelady
Осталась постраничная навигация. Чем больше гуглю, тем больше каши в голове... :(
С помощью robots.txt можно запретить индексацию таких страниц.
Или же изменить title и description, например, добавить номер страницы.
Примерно так. Код не тестировался. Возможно что-то нужно будет поменять.
{if isset($smarty.get.p) AND $smarty.get.p|intval}
  {assign var='nodouble' value=$smarty.get.p}
  // или же в зависимости от номера станицы добавлять теги, которые определены для категории
{else}
  {assign var='nodouble' value=' '}
  //можно также добавить тег, например, первый тег всегда здесь, исключить его из показа при существовании $p
{/if}
{if isset($meta_description) AND $meta_description}
  <meta name="description" content="{$meta_description|escape:html:'UTF-8'} {$nodouble}" />
{/if}
Давно искал подобное. Можете написать, куда вставить этот код и с тегами как сделать? Заранее спасибо.
26 Май 2013, 16:31:48
Ответ #13
  • Ветеран
  • *****
  • Сообщений: 22125
  • Репутация: +25303/-1
  • Prestashop - просто и эффективно
    • Просмотр профиля
Давно искал подобное. Можете написать, куда вставить этот код и с тегами как сделать? Заранее спасибо.
В файле /themes/ваша тема/header.tpl, найти вот такой код
{if isset($meta_description) AND $meta_description}
<meta name="description" content="{$meta_description|escape:html:'UTF-8'}" />
{/if}
и заменить его на
{if isset($meta_description) AND $meta_description}
<meta name="description" content="{$meta_description|escape:html:'UTF-8'} {if isset($smarty.get.p) AND $smarty.get.p}{$smarty.get.p}{/if}" />
{/if}
Эксперт Prestashop - решения всех проблем, написание модулей, создание тем для интернет-магазинов под Prestashop.
Эксперт Magento - создам сайт на Magento, программирование кастомных модулей для Magento, кастомизация тем Magento.
Лучшие цены!!!
27 Май 2013, 01:26:44
Ответ #14
  • Новичок
  • *
  • Сообщений: 20
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Или же изменить title и description, например, добавить номер страницы.
О! Это как раз то, о чем я спрашивала! Спасибо огромное! Теперь description у меня нормальный! :)