Jump to content
Sign in to follow this  
vazel48

Google Sitemap трижды дублирует ссылки

Recommended Posts

Помогите пожалуйста! Так как решения не нашел, решил создать тему. 

OcStore 1.5.5.1.1, стандартный Seo Pro работает, ссылки на сайте не дублируются, но Google Sitemap генерирует по 3 одинаковых ссылки на товар.

Может неправильно настроены файлы robots.txt или .htaccess

Помогите пожалуйста настроить файлы. 

 

Путь к файлам:

shoppa.com.ua/robots.txt

shoppa.com.ua/index.php?route=feed/google_sitemap

 

в файле .htaccess написано: 

RewriteBase /

RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

Share this post


Link to post
Share on other sites

Короче забил на встроенный Гугл Сайтмап, поставил Динамический Google XML Sitemap <vQmod>, но там тоже не все гладко...

Посмотрите плз на правильность оформления файла robots.txt и  .htaccess

Share this post


Link to post
Share on other sites
У меня видимо похожая проблема. Но без ЧПУ.  

Стоит ocStore 1.5.5.1.1 

Google Sitemap генерирует дубли страниц вида index.php?route=product/product*&manufacturer_id=

которые  запрещены  в robots.txt

в каком месте можно настроить правило вывода для  Google Sitemap? 

Share this post


Link to post
Share on other sites

 

У меня видимо похожая проблема. Но без ЧПУ.  
Стоит ocStore 1.5.5.1.1 
Google Sitemap генерирует дубли страниц вида index.php?route=product/product*&manufacturer_id=
которые  запрещены  в robots.txt
в каком месте можно настроить правило вывода для  Google Sitemap? 

 

 

Такая же проблема.

Share this post


Link to post
Share on other sites

Та же проблема. Каждая страница дублируется 3 раза, версия 1.5.5.1.1. seo не установлен.

Share this post


Link to post
Share on other sites

UP!

Та же проблема. Каждая страница дублируется 3 раза, версия 1.5.5.1.1. seo не установлен.

Share this post


Link to post
Share on other sites

Путем долгих экспериментов удалось настроить sitemap.xml без дублирования ссылок для ocStore 1.5.5.1.2 со включенным seoPro.

 

Повтор (иногда больше 3 раз) происходит потому, что ссылки вида site/product, site/catalog/product, site/catalog/podcatalog/product и ссылки site/manufacturers/product ведут на один адрес - site/catalog/product.

 

Чтобы избавиться от дублей нужно в файле /catalog/controller/feed/google_sitemap.php добавить "//" для следующего кода:

 

$products = $this->model_catalog_product->getProducts(array('filter_manufacturer_id' => $manufacturer['manufacturer_id']));
			
//foreach ($products as $product) {
//   $output .= '<url>';
//   $output .= '<loc>' . $this->url->link('product/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'] . '&product_id=' . $product['product_id']) . '</loc>';
//   $output .= '<changefreq>weekly</changefreq>';
//   $output .= '<priority>1.0</priority>';
//   $output .= '</url>';   
//} 
$products = $this->model_catalog_product->getProducts(array('filter_category_id' => $result['category_id']));
 
// foreach ($products as $product) {
// $output .= '<url>';
// $output .= '<loc>' . $this->url->link('product/product', 'path=' . $new_path . '&product_id=' . $product['product_id']) . '</loc>';
// $output .= '<changefreq>weekly</changefreq>';
// $output .= '<priority>1.0</priority>';
// $output .= '</url>';   
//} 
После этого в sitemap.xml буду попадать ссылки всех товаров без дублей.

 

Еще немного полезного:

 

1. Ссылка на главную страницу и любую свою страницу (например site/news)

$output  = '<?xml version="1.0" encoding="UTF-8"?>';
$output .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

$output .= '<url>';
$output .= '<loc>' . HTTP_SERVER . '</loc>';
$output .= '<changefreq>weekly</changefreq>';
$output .= '<priority>1.0</priority>';
$output .= '</url>';

$output .= '<url>';
$output .= '<loc>' . HTTP_SERVER . 'news' . '</loc>';
$output .= '<changefreq>weekly</changefreq>';
$output .= '<priority>0.7</priority>';
$output .= '</url>';
2. Для тех кто использует модуль НОВОСТИ+ выводим все новости

$this->load->model('catalog/news');
		 
$news = $this->model_catalog_news->geturlNews();
		 
foreach ($news as $item) {
	$output .= '<url>';
	$output .= '<loc>' . $this->url->link('information/news', 'news_id=' . $item['news_id']) . '</loc>';
	$output .= '<changefreq>weekly</changefreq>';
	$output .= '<priority>0.7</priority>';
	$output .= '</url>';   
}
		 
$output .= '</urlset>';
Но важно в файле catalog/model/catalog/news.php добавить перед "public function getNews($data) {" следующий код:

public function geturlNews() {
 
$sql = "SELECT * FROM " . DB_PREFIX . "news n LEFT JOIN " . DB_PREFIX . "news_description nd ON (n.news_id = nd.news_id) LEFT JOIN " . DB_PREFIX . "news_to_store n2s ON (n.news_id = n2s.news_id) WHERE nd.language_id = '" . (int)$this->config->get('config_language_id') . "' AND n2s.store_id = '" . (int)$this->config->get('config_store_id') . "' AND n.status = '1' ORDER BY n.date_added DESC";
 
if (isset($data['start']) || isset($data['limit'])) {
if ($data['start'] < 0) {
$data['start'] = 0;
} 
if ($data['limit'] < 1) {
$data['limit'] = 10;
} 
 
$sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
} 
 
$query = $this->db->query($sql);
 
return $query->rows;
}
После подобных манипуляций получаем все товары без дублирования, ссылку на главную страницу и любые свои страницы, ссылки на новости модуля News+  ;) Edited by alferus
  • +1 3

Share this post


Link to post
Share on other sites

Путем долгих экспериментов удалось настроить sitemap.xml без дублирования ссылок для ocStore 1.5.5.1.2 со включенным seoPro.

...

Где это все прописывать для НОВОСТИ+, я сделал по анологии самого файла, но он у меня выдал ошибку и не загрузил XML. Можно чуть более подробно?

Share this post


Link to post
Share on other sites

Где это все прописывать для НОВОСТИ+, я сделал по анологии самого файла, но он у меня выдал ошибку и не загрузил XML. Можно чуть более подробно?

Прямо в файле /catalog/controller/feed/google_sitemap.php нужно добавлять.

 

Может кому пригодится, готовый доработанный google_sitemap.php для включенного seo_pro с добавленными ссылками на: главную, связаться с нами, страницу новости+ (www.domain.ru/news/) и страницы статей (www.domain.ru/news/blablabla):

<?php
class ControllerFeedGoogleSitemap extends Controller {
   public function index() {
	  if ($this->config->get('google_sitemap_status')) {
		 $output  = '<?xml version="1.0" encoding="UTF-8"?>';
		 $output .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

		 $output .= '<url>';
		 $output .= '<loc>' . HTTP_SERVER . '</loc>';
		 $output .= '<changefreq>weekly</changefreq>';
		 $output .= '<priority>1.0</priority>';
		 $output .= '</url>';

		 $output .= '<url>';
		 $output .= '<loc>' . HTTP_SERVER . 'news/' . '</loc>';
		 $output .= '<changefreq>weekly</changefreq>';
		 $output .= '<priority>0.7</priority>';
		 $output .= '</url>';

		 $output .= '<url>';
		 $output .= '<loc>' . HTTP_SERVER . 'contact-us/' . '</loc>';
		 $output .= '<changefreq>weekly</changefreq>';
		 $output .= '<priority>0.5</priority>';
		 $output .= '</url>';
		 
		 $this->load->model('catalog/product');
		 
		 $products = $this->model_catalog_product->getProducts();
		 
		 foreach ($products as $product) {
			$output .= '<url>';
			$output .= '<loc>' . $this->url->link('product/product', 'product_id=' . $product['product_id']) . '</loc>';
			$output .= '<changefreq>weekly</changefreq>';
			$output .= '<priority>1.0</priority>';
			$output .= '</url>';   
		 }
		 
		 $this->load->model('catalog/category');
		 
		 $output .= $this->getCategories(0);
		 
		 $this->load->model('catalog/manufacturer');
		 
		 $manufacturers = $this->model_catalog_manufacturer->getManufacturers();
		 
		 foreach ($manufacturers as $manufacturer) {
			$output .= '<url>';
			$output .= '<loc>' . $this->url->link('product/manufacturer/info', 'manufacturer_id=' . $manufacturer['manufacturer_id']) . '</loc>';
			$output .= '<changefreq>weekly</changefreq>';
			$output .= '<priority>0.7</priority>';
			$output .= '</url>';   
			
			$products = $this->model_catalog_product->getProducts(array('filter_manufacturer_id' => $manufacturer['manufacturer_id']));
			
			//foreach ($products as $product) {
			//   $output .= '<url>';
			//   $output .= '<loc>' . $this->url->link('product/product', 'manufacturer_id=' . $manufacturer['manufacturer_id'] . '&product_id=' . $product['product_id']) . '</loc>';
			//   $output .= '<changefreq>weekly</changefreq>';
			//   $output .= '<priority>1.0</priority>';
			//   $output .= '</url>';   
			//}         
		 }
		 
		 $this->load->model('catalog/information');
		 
		 $informations = $this->model_catalog_information->getInformations();
		 
		 foreach ($informations as $information) {
			$output .= '<url>';
			$output .= '<loc>' . $this->url->link('information/information', 'information_id=' . $information['information_id']) . '</loc>';
			$output .= '<changefreq>weekly</changefreq>';
			$output .= '<priority>0.5</priority>';
			$output .= '</url>';   
		 }
		 
		 $this->load->model('catalog/news');
		 
		 $news = $this->model_catalog_news->geturlNews();
		 
		 foreach ($news as $item) {
			$output .= '<url>';
			$output .= '<loc>' . $this->url->link('information/news', 'news_id=' . $item['news_id']) . '</loc>';
			$output .= '<changefreq>weekly</changefreq>';
			$output .= '<priority>0.7</priority>';
			$output .= '</url>';   
		 }
		 
		 $output .= '</urlset>';
		 
		 $this->response->addHeader('Content-Type: application/xml');
		 $this->response->setOutput($output);
	  }
   }
   
   protected function getCategories($parent_id, $current_path = '') {
	  $output = '';
	  
	  $results = $this->model_catalog_category->getCategories($parent_id);
	  
	  foreach ($results as $result) {
		 if (!$current_path) {
			$new_path = $result['category_id'];
		 } else {
			$new_path = $current_path . '_' . $result['category_id'];
		 }

		 $output .= '<url>';
		 $output .= '<loc>' . $this->url->link('product/category', 'path=' . $new_path) . '</loc>';
		 $output .= '<changefreq>weekly</changefreq>';
		 $output .= '<priority>0.7</priority>';
		 $output .= '</url>';         

		 $products = $this->model_catalog_product->getProducts(array('filter_category_id' => $result['category_id']));
		 
		// foreach ($products as $product) {
		//	$output .= '<url>';
		//	$output .= '<loc>' . $this->url->link('product/product', 'path=' . $new_path . '&product_id=' . $product['product_id']) . '</loc>';
		//	$output .= '<changefreq>weekly</changefreq>';
		//	$output .= '<priority>1.0</priority>';
		//	$output .= '</url>';   
		//}   
		 
		   $output .= $this->getCategories($result['category_id'], $new_path);
	  }

	  return $output;
   }      
}
?>
Только не забываем редактировать catalog/model/catalog/news.php как написано выше. Спрашивайте лучше в личку. Edited by alferus
  • +1 1

Share this post


Link to post
Share on other sites

Большое спасибо! А подскажите как удалить из sitemap родительские категории?

Share this post


Link to post
Share on other sites

Большое спасибо! А подскажите как удалить из sitemap родительские категории?

 

В смысле удалить из него ссылки на категории вида "domain/category/" ? Нужно в файле /catalog/controller/feed/google_sitemap.php закомментить так:

//$output .= '<url>';//$output .= '<loc>' . $this->url->link('product/category', 'path=' . $new_path) . '</loc>';
//$output .= '<changefreq>weekly</changefreq>';
//$output .= '<priority>0.7</priority>';
//$output .= '</url>';   

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Similar Content

    • By anton12121
      Дорогие знающие, подскажите
      Не генерится Google Sitemap, в чем может быть причина?
      https://pryzha.by/index.php?route=extension/feed/google_sitemap

    • By Kazbek86
      Доброго времени суток!
       
      Возникла проблема с Google Sitemap, в чем может быть проблема? Помогите решить.
       
      This page contains the following errors:
      error on line 1 at column 101703: xmlParseEntityRef: no name Below is a rendering of the page up to the first error.
      index sitemap.xml
    • By pachok89
      Есть 2 страницы(dostavka-i-oplata.html, soglashenie.html) скрытые в robots из индекса, но они по прежнему добавляются в сайтмап.
      Можно как-то запретить добавление в sitemap этих страниц?
    • By snastik
      650.00 руб
      Скачать/Купить дополнение


      Sitemap.pro + Sitemap.XXL(Cron)
      Sitemap.pro + Sitemap.XXL(Cron)
      --------------------------------------------------------------------------------------------------------
      Оптимизированный генератор Sitemap.xml для поисковых систем.
      Генерирует как динамический так и статичный файл.
      Супер быстрый.
      Стабильно работает с любым количеством товаров и категорий.
      Настраиваемый вывод (вы можете включать/отключать ссылки на товары, производителей и категории).
      Не требует "танцев с бубном" просто установили, и заработал!
      Генерирует карту сайта для магазинов 50 000+ товаров по Cron

      -----------------------------------------------------
      Краткий F.A.Q.
      Для чего нужен этот модуль ?
      - Модуль генерирует xml-feed (карту сайта) со всеми ссылками вашего магазина для загрузки в Yandex-webmaster и Google-webmaster.
      Так ведь есть же стандартный модуль зачем мне покупать этот ?
      - Стандартный модуль использует стандартную модель генерации массивов при формировании списка товаров и списка категорий.
      При наличии большого количества товаров (от 500) и категорий (от 200) стандартный модуль, или генерирует feed очень долго, или же просто выпадает в ошибку (timeout error), или (memory limit), зависит от конфигурации вашего хостинга.
      При этом стандартный модуль существенно нагружает сервер. Sitemap.pro использует оптимизированную облегченную модель выборки данных для формирования списка ссылок, а также использует кеширование данных, что позволяет более чем в 5 раз ускорить генерацию карты сайта, и разгрузить сервер.
      Также в версиях OcStore 1.5.5.x и в оригинальном OPencart стандартный модуль создает дубли ссылок на товары (скольким категориям товар назначен столько и создаст).
      Sitemap Pro - создает уникальные ссылки!
      Рекомендуются использование SeoPro.
      Снизит ли модуль нагрузку на базу данных?
      - Частично да, если у вас засилие ботов поисковых систем, или хакеры решили завалить ваш сервер через множественные запросы на ссылку стандартного модуля sitemap (а это достаточно большая уязвимость в больших магазинах), модуль существенно снизит нагрузку на сервер баз данных за счет использования кешированных результатов. Скорость повторной генерации карты сайта на магазине с 6ю тысячами товаров и 100 категорий занимает менее 2-х секунд.
      Google сайтмап принял а Yandex не хочет, решит ли этот модуль мои проблемы?
      - Да однозначно. У Yandexа - очень низкое время ожидания ответа от сервера при проверке sitemap, что то около 10 секунд, даже если вы дождались генерации страницы с картой сайта в браузере, это не значит что Yandex ее дождется.
      У меня небольшой магазин в нем 100 товаров, зачем мне он нужен?
      - Совершенно верно, вам это пока не нужен. Желаю успехов в бизнесе, чтобы вы выросли в большой магазин и он вам понадобился.
      У меня в магазине более 1000 товаров, будет ли работать стандартный выдает ошибку?
      - Да однозначно до 10 000 товаров - гарантировано!
      У меня в магазине более 10 000 товаров, будет ли работать?
      - Тестировался на магазине в 24к товаров. Работает.
      У меня версия магазина 1.5.xxx - любая, будет ли у меня работать ?
      Модуль работает на всей линейке Opencart, Ocstore 1.5.x.
      Как установить модуль ?
      Просто залейте его в корень вашего сайта и используйте как стандартный канал продвижения google sitemap.
      Какой адрес указывать вебмастере?
      Еcли у вас до этого был настроен стандартный модуль гуглсайтмап - ничего не меняйте. Если вы раньше его не использовали, поставьте SitemapPro? активируйте в админке Дополнения > Каналы продвижения > ГуглСайтмап.
      И используйте адрес указанный в настройках канала.
      Что делать если у вас более 50 тысяч товаров?
      Используйте дополнение Sitemap.Pro XXL и создавайте sitemap через CRON-планировщик
      В Google попали все станицы сайта, а в Yandex 2-3% поможет ли это дополнение.
      И да и нет. К сожалению индексация Яндексом зависит не только от того что его известили о наличии страницы на вашем сайте. Как минимум на ней еще должен быть контент и желательно уникальный. Подобные проблемы часто возникают с магазинами, в которых либо много спарсенного (неуникального контента), либо с магазинами с выгрузкой товаров из складских баз типа 1с, в которых описания товаров отсутствуют.
      И с одной стороны для таких магазинов с большим количеством товара, вы беспроблемно разместите карту сайта в вебмастерах поисковиков, с другой стороны гарантии того что ваши страницы с бедным, или позаимствованным контнентом будут проиндексированы - никакой.
      При установке модуль перезаписывает системные файлы, не забывайте делать резервные копии.
      В случае необходимости технической поддержки пишите в личку:
      Адрес сайта.
      Доступ в административную часть
      Доступ на ftp

      Техническая поддержка сайтам на локальном хостинге не оказывается.
      Техническая поддержка не связанная с работоспособностью модуля платная.
      Автор модуля не несет ответственности за работоспособность модуля и ошибки возникшие в его работе связанные с использованием неоригинального шаблона, сторонних или сильно модифицированных версий движка, использования дополнений от сторонних разработчиков, вызывающих конфликты с кодом данного дополнения.
      Автор гарантирует работу модуля на оригинальном движке OcStore 1.5.х B Opencart 1.5.х скачанных с официальных сайтов.
      Автор не гарантирует работоспособность модуля и не осуществляет консультации и поддержку дополнения, в случае использования покупателем (ворованных, купленных в складчину дополнений, для которых у покупателя отсутствует поддержка авторов дополнений)
      Инструкция по установке Sitemap XXL находится в архиве с дополнением. Внимательно прочитайте Readme.txt перед установкой.
      Добавил snastik Добавлено 23.12.2013 Категория SEO, карта сайта, оптимизация Системные требования Сайт разработчика opencart.pro Старая цена Метод активации Ioncube Loader OpenCart ocStore OpenCart.Pro, ocShop  
    • By fazli
      Здравствуйте.
      Перестал работать Google Sitemap —
      https://takhta.ru/index.php?route=extension/feed/google_sitemap
      ЧПУ включено Использовать SSL тоже включено
      в .htaccess прописано так:
       
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.