Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Помогите! Проклятые дубли.


Recommended Posts

Гугл как-то  забрался ко мне на сайт и успел проиндексировать пару страниц, хотя я там еще не регистрировался, естественно сcылки были не те что надо вида сайт/товар да и еще пару не нужных страниц, т.к robots и sitemap еще не успел сделать к тому моменту.

 

Решив вопрос с выводом ссылок на сайте во всех модулях и категориях вида сайт/категория/подкатегория/товар сделал robots и sitemap, добавил в robots ссылки на те страницы которые успел проиндексировать, и продолжил дальше добавлять товар.

 

Мое удивление было когда вчера прописав в гугле site:http://сайт/* увидел ссылки на все товары в виде сайт/товар, а правильных ссылок которые на сайте, вообще нету... почему так произошло не знаю.

вчера же и зарегистрировал в гугле указал sitemap и robots, но пока еще робот не заходил.

 

Кто знает как так получилось, и почему гугл отказывается видеть те ссылки которые нужны. Мб что с rel canonical не то. И как это все исправить, и убирать это из гугла.

 

открыв товар по ссылке сайт/категория/подкатегория/товар посмотрел исходный код а там

 

<link href="http://сайт/товар" rel="canonical" />

 

вот robots на всякий случай

User-agent: *

Disallow: /my-account
Disallow: /cache
Disallow: /catalog
Disallow: /download
Disallow: /export
Disallow: /system
Disallow: /order-history
Disallow: /change-password
Disallow: /downloads
Disallow: /search?filter_name=
Disallow: /search
Disallow: /search?
Disallow: /search?tag=
Disallow: /simplecheckout
Disallow: /shopping-cart
Disallow: /cart
Disallow: /checkout
Disallow: /vouchers
Disallow: /affiliate-login
Disallow: /request-return
Disallow: /compare-products
Disallow: /wishlist
Disallow: /index.php?route=checkout/simplecheckout
Disallow: /login
Disallow: /create-account
Disallow: /forgot-password
Disallow: /index.php?route=account
Disallow: /index.php?route=account/account
Disallow: /index.php?route=checkout/cart
Disallow: /index.php?route=checkout/shipping
Disallow: /index.php?route=common/home
Disallow: /index.php?route=product/product/captcha
Disallow: /index.php?route=product/product*&manufacturer_id=
Disallow: /index.php?route=product/search
Disallow: /index.php?route=information/contact/captcha
Disallow: /index.php?route=information/information&information_id=
Disallow: /index.php?route=product/manufacturer#
Disallow: /index.php?route=account/login
Disallow: /index.php?route=product/compare
Disallow: /index.php?route=product/category
Disallow: /*route=account/
Disallow: /*route=account/login
Disallow: /*route=checkout/
Disallow: /*route=checkout/cart
Disallow: /*route=affiliate/
Disallow: /*route=product/search
Disallow: /*&product_id=
Disallow: /*&filtr=
Disallow: /*?page=
Disallow: /*?sort=
Disallow: /*?sort
Disallow: /*&sort=
Disallow: /*?order=
Disallow: /*?order
Disallow: /*&order=
Disallow: /*?limit=
Disallow: /*&limit=
Disallow: /*?filter_name=
Disallow: /*&filter_name=
Disallow: /*?filter_sub_category=
Disallow: /*&filter_sub_category=
Disallow: /*?filter_description=
Disallow: /*&filter_description=
Disallow: /*?tracking=
Disallow: /*&tracking=
Disallow: /*?manufacturer
Disallow: /*?keyword
Disallow: /akvarobot_js_100_24
Disallow: /unipump_sub_407_p
Disallow: /unipump_sub_257_p
Disallow: /unipump_auto_qb_60_24l
Disallow: /unipump_sub_209_p
Disallow: /ibo_aj_50_60_24l
Disallow: /unipump_sub_557_p
Disallow: /akvarobot_js_100
Disallow: /unipump_auto_js_100_24l
Disallow: /unipump_auto_js_100_50_50l
Disallow: /unipump_multisub_1000
Disallow: /akvarobot_js_80
Disallow: /unipump_auto_js_100_s_24l
Disallow: /hyundai_l4300s
Disallow: /hyundai_x560
Disallow: /ibo_ipe400
Disallow: /contact-us
Disallow: /dostavka

Host: otpavlov.by
Sitemap: http://otpavlov.by/sitemap.xml

Надіслати
Поділитися на інших сайтах


Только что опробовал, заметил странное - смена ЧПУ работает, но не сразу (несмотря на чистку system/cache и обновление страницы, тестил на чистом ocstore 1.5.5.1.2)

 

Чтоб работало - выставляйте seo-pro в настройках, если хотите полный путь - пути вроде тоже должны иметь ЧПУ.

Насторожило, что несмотря на чистку кеша, изменилось только после включения-отключения ЧПУ + вкл-выкл окончание и повторной чисткой кеша.

 

А вот с canonical все сразу ок было - как только в админке ставил полный путь ЧПУ, путь исправно менялся в нем

 

PS: лучше не через robots.txt страницы исключать, а в Гугле зарегестрироваться и через удаление ссылок в Вебмастере. Вебмастер вам все равно пригодится ;)

Змінено користувачем AlexDW
Надіслати
Поділитися на інших сайтах

что то я не совсем понял, версия опенкарта чистого 1.5.6.1 rus, в настройках есть только "Включить SEO URL:" в самом начале настройки магазина ставил какое-то расширение seo,

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

 

Мне кажется что вся проблема в rel canonical, на всех товарах там выводиться ссылка вида сайт/товар. Как бы это изменить что бы выводилось сайт/категория/подкатегория/товар

Надіслати
Поділитися на інших сайтах


По моему в опенкарте это невоможно. Где то я читал на забугорных и отложилось в памяти: "Сама возможность движка класть товар в несколько категорий исключает возможность ссылать гугл к товару через определенную категорию (так как невозможно понять через какую именно категорию вы хотите)" Примерно так. Можете подождать пока проиндексирует ваш сайтмап, мало ли что. Но по моему в сыром опенкарте только так. Вам или экстеншн для этого искать или делать под заказ.

Надіслати
Поділитися на інших сайтах


По моему в опенкарте это невоможно. Где то я читал на забугорных и отложилось в памяти: "Сама возможность движка класть товар в несколько категорий исключает возможность ссылать гугл к товару через определенную категорию (так как невозможно понять через какую именно категорию вы хотите)" Примерно так. Можете подождать пока проиндексирует ваш сайтмап, мало ли что. Но по моему в сыром опенкарте только так. Вам или экстеншн для этого искать или делать под заказ.

верно, но только для opencart. а в ocstore есть seo_pro и проблема не актуальна

Надіслати
Поділитися на інших сайтах

Поискал по интернету наткнулся на один способ, может как то его можно применить к товарам. В категориях rel canonical по умолчанию нету если пойти в catalog/controller/product/category.php

и после

$this->document->setKeywords($category_info['meta_keyword']);

добавить

$this->document->addLink($this->url->link('product/category', 'path=' . $this->request->get['path']), 'canonical');

то посмотрев исходный код страницы он появляется и ссылка там та что и категория

например если ссылка сайт/категория/подкатегория то в rel canonical стоит тоже ссылка сайт/категория/подкатегория

если сайт/подкатегория то там тоже самое сайт/подкатегория

Надіслати
Поділитися на інших сайтах


поковырялся в catalog/controller/product/product.php

 

 заменил строку которая выводит canonical

$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');

на вот эту

$this->document->addLink($this->url->link('product/product' , 'path=' . $this->request->get['path']), 'canonical');

теперь в исходном коде товара в rel canonical прописывается путь сайт/категория/подкатегоия

 

но только как еще к ней прикрутить id товара что бы он тоже там выводился

Надіслати
Поділитися на інших сайтах


А так не работает?

$this->document->addLink($this->url->link('product/product' , 'path=' . $this->request->get['path']) . 'product_id=' . $this->request->get['product_id']), 'canonical');

А вообще, если сайт делаете для русскоязычных стран - лучше сразу ocstore ставить последний, он изначально оптимизирован под Россию и ближайших ее соседей ;)

Надіслати
Поділитися на інших сайтах

А так не работает?

$this->document->addLink($this->url->link('product/product' , 'path=' . $this->request->get['path']) . 'product_id=' . $this->request->get['product_id']), 'canonical');

А вообще, если сайт делаете для русскоязычных стран - лучше сразу ocstore ставить последний, он изначально оптимизирован под Россию и ближайших ее соседей ;)

выдает вот что

Parse error: syntax error, unexpected ',' in /home/otpavlov/public_html/catalog/controller/product/product.php on line 250

 

если бы я изначально знал что так будет конечно же ocstore поставил)))

Надіслати
Поділитися на інших сайтах


не понятно зачем вообще canonical , когда есть seo_pro

стоит какой то сео про я не помню что за он, давно было, еще в БД запросы делал. Ссылки нормального вида, но вот дубли эти, хоть я их и поскрывал на сайте, всеравно как то вылезли в гугл

Надіслати
Поділитися на інших сайтах


не, редиректом не знаю как сделать

 

везде на сайте где выводиться товар, в контроллерах вставлял после foreach ($results as $result) {

// получаем ID категории для генерации правильного URL
 // и сортируем по родительской категории, чтобы родительская шла всегда первой
 $categories_for_url = $this->db->query("
 SELECT `t1`.`category_id` FROM `" . DB_PREFIX . "product_to_category` as `t1`
 LEFT JOIN `" . DB_PREFIX . "category` as `t2` ON `t1`.`category_id` = `t2`.`category_id`
 WHERE `t1`.`product_id`='" . $result['product_id'] . "'
 ORDER BY `t2`.`parent_id` ASC
 ");
 
if($categories_for_url->num_rows > 0) {
 
$category_path = '';
 
foreach($categories_for_url->rows as $category) {
 
$category_path .= $category['category_id'] . '_';
 
}
 
$category_path = trim($category_path, '_');
 
}

и ниже ссылку менял на

'href'    	 => $this->url->link('product/product', 'path=' . $category_path . '&product_id=' . $result['product_id'])

до этого все ссылки были короткие сайт/товар но не отображались хлебные крошки, и подкатегории в меню

Надіслати
Поділитися на інших сайтах


Решил проблему, может быть кому пригодиться.

Добавил дополнительное поле при создании товара, и вывел его в моделе продукта, а старый canonical закомментировал.

Теперь когда создаю товар просто вставляю туда нужную ссылку

Надіслати
Поділитися на інших сайтах


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

Надіслати
Поділитися на інших сайтах


Так моментального результата ждать не стоит - пройдет какое-то время прежде чем поисковые сервера получат данные о удалении страниц из индекса.

И не путайте число страниц в индексе с выдачей страниц по запросу ;)

Надіслати
Поділитися на інших сайтах

Спасибо буду ждать.

и еще вопрос

ничего если в теге каноникал прописана таже страница которая и является основной, то есть на странице сайт/категория1/товар1, в каноникал прописано тоже самое сайт/категория1/товар1

Надіслати
Поділитися на інших сайтах


то что в canonical и подразумевает основной адрес страницы - вне зависимости от того где находитесь указывает именно основную страницу, как раз для исключения дублей

Надіслати
Поділитися на інших сайтах

  • 2 weeks later...
  • 8 months later...

Может кому пригодится решение этой проблемы.

 

Чтобы присвоить каноникал полному чпу-урлу товара(категория/подкатегория/товар) - в контроллере продукта после:

$this->document->setKeywords($category_info['meta_keyword']);

нужно добавить этот код:

$this->document->addLink($this->url->link('product/product', $url . '&product_id=' . $this->request->get['product_id']), 'canonical');

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

Змінено користувачем Catuars
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.