Перейти к содержанию

Рекомендуемые сообщения

Делаю карту сайта этим генератором http://wonderwebware.com/sitemap-generator/ .Мало того что полно всякой мути типа дубля главной http://мой сайт/index.php?route=common/home, но еще при добавлении новых товаров стали появляться страницы типа http://мой сайт/index.php?route=product/search&keyword=Protherm скат 9к и http://мой сайт/index.php?route=checkout/cart&product_id=52 то есть на все любые вводимые товары еще эти две. Подскажите можно ли от этого избавится. С Уважением! Если есть желание посмотреть сайт http://www.protherm-rus.ru/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в robots.txt

добавляете

Disallow: /*route=account/login

Disallow: /*route=checkout/cart

Disallow: /*route=product/search

Disallow: /admin

Disallow: /catalog

Disallow: /download

Disallow: /export

Disallow: /system

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в robots.txt

добавляете

Disallow: /*route=account/login

Disallow: /*route=checkout/cart

Disallow: /*route=product/search

Disallow: /admin

Disallow: /catalog

Disallow: /download

Disallow: /export

Disallow: /system

Все это добавлено, яндекс сначала это загружает , а потом получается так . Допустим 160 загружено , 40 в индексе, 120 запрещено фаилом robots. Если сайт доделать полностью , то все увеличится в геометрической прогрессии. Чего не хотелось бы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

google_sitemap.zip

  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Yesvik!

Есть замечание по файлу. Каталоги и товары генерирует замечательно, но совсем не генерирует страницы новостей, контакты, прайс (ссылка есть в модуле "Информация" и в хедере). Сразу оговорюсь, что все эти ссылки в ЧПУ не генерируются, почему-то. Мне это не принципиально, т.к. дублей этих страниц нет, но они и в карту сайта не попадают, котрую формирует выше выложенный файл.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо, Yesvik!

Есть замечание по файлу. Каталоги и товары генерирует замечательно, но совсем не генерирует страницы новостей, контакты, прайс (ссылка есть в модуле "Информация" и в хедере). Сразу оговорюсь, что все эти ссылки в ЧПУ не генерируются, почему-то. Мне это не принципиально, т.к. дублей этих страниц нет, но они и в карту сайта не попадают, котрую формирует выше выложенный файл.

Новости и прайс это дополнительные модули о которых генератор ничего не знает и ему надо растолковать что откуда брать, а контакты вообще не нужны в карте...
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

В отличии от Вашего в моём есть добавленный текст (выделен красным).

Это на что-то повлияет, оставить или удалить ?

1 <?php

2 class ControllerFeedGoogleSitemap extends Controller {

3 public function index() {

4 if ($this->config->get('google_sitemap_status')) {

5 $output = '<?xml version="1.0" encoding="UTF-8"?>';

6 $output .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';

7

8 $this->load->model('tool/seo_url');

9

10 $this->load->model('catalog/product');

11

12 $products = $this->model_catalog_product->getProducts();

13

14 foreach ($products as $product) {

15 $output .= '<url>';

16 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id'])) . '</loc>';

17 $output .= '<changefreq>weekly</changefreq>';

18 $output .= '<priority>1.0</priority>';

19 $output .= '</url>';

20 }

21

22 $this->load->model('catalog/category');

23

24 $categories = $this->model_catalog_category->getCategories();

25

26 $output .= $this->getCategories(0);

27

28 $this->load->model('catalog/manufacturer');

29

30 $manufacturers = $this->model_catalog_manufacturer->getManufacturers();

31

32 foreach ($manufacturers as $manufacturer) {

33 $output .= '<url>';

34 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/manufacturer&manufacturer_id=' . $manufacturer['manufacturer_id'])) . '</loc>';

35 $output .= '<changefreq>weekly</changefreq>';

36 $output .= '<priority>0.7</priority>';

37 $output .= '</url>';

38

39 $products = $this->model_catalog_product->getProductsByManufacturerId($manufacturer['manufacturer_id']);

40

41 foreach ($products as $product) {

42 $output .= '<url>';

43 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&manufacturer_id=' . $manufacturer['manufacturer_id'] . '&product_id=' . $product['product_id'])) . '</loc>';

44 $output .= '<changefreq>weekly</changefreq>';

45 $output .= '<priority>1.0</priority>';

46 $output .= '</url>';

47 }

48 }

49

50 $this->load->model('catalog/information');

51

52 $informations = $this->model_catalog_information->getInformations();

53

54 foreach ($informations as $information) {

55 $output .= '<url>';

56 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=information/information&information_id=' . $information['information_id'])) . '</loc>';

57 $output .= '<changefreq>weekly</changefreq>';

58 $output .= '<priority>0.5</priority>';

59 $output .= '</url>';

60 }

61

62 $output .= '</urlset>';

63

64 $this->response->addHeader('Content-Type: application/xml');

65 $this->response->setOutput($output);

66 }

67 }

68

69 protected function getCategories($parent_id, $current_path = '') {

70 $output = '';

71

72 $results = $this->model_catalog_category->getCategories($parent_id);

73

74 foreach ($results as $result) {

75 if (!$current_path) {

76 $new_path = $result['category_id'];

77 } else {

78 $new_path = $current_path . '_' . $result['category_id'];

79 }

80

81 $output .= '<url>';

82 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/category&path=' . $new_path)) . '</loc>';

83 $output .= '<changefreq>weekly</changefreq>';

84 $output .= '<priority>0.7</priority>';

85 $output .= '</url>';

86

87 $products = $this->model_catalog_product->getProductsByCategoryId($result['category_id']);

88

89 foreach ($products as $product) {

90 $output .= '<url>';

91 $output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=product/product&path=' . $new_path . '&product_id=' . $product['product_id'])) . '</loc>';

92 $output .= '<changefreq>weekly</changefreq>';

93 $output .= '<priority>1.0</priority>';

94 $output .= '</url>';

95 }

96

97 $output .= $this->getCategories($result['category_id'], $new_path);

98 }

99

100 return $output;

101 }

102 }

103 ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В отличии от Вашего в моём есть добавленный текст (выделен красным).

Это на что-то повлияет, оставить или удалить ?

Удали, это повторный вывод ссылок на страницы товаров.
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чтобы в сайтмэп присутствовали ссылки на новости надо перед строкой

$output .= '</urlset>';
добавить

$this->load->model('catalog/news');
		 
$news = $this->model_catalog_news->getNews();
		 
foreach ($news as $item) {
	$output .= '<url>';
	$output .= '<loc>' . str_replace('&', '&', $this->model_tool_seo_url->rewrite(HTTP_SERVER . 'index.php?route=information/news&news_id=' . $item['news_id'])) . '</loc>';
	$output .= '<changefreq>weekly</changefreq>';
	$output .= '<priority>0.5</priority>';
	$output .= '</url>';   
}

А для того что-бы формировалось ЧПУ надо сделать правки в seo_url.php, об этом написано в инструкции к модулю.

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

  • +1 4

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Удали, это повторный вывод ссылок на страницы товаров.

Одного подлечил! Большое спасибо! Но тут ещё один пациент на пороге не посмотрите ?

Фамилия google_base.php

<?php
class ControllerFeedGoogleBase extends Controller {
public function index() {
	if ($this->config->get('google_base_status')) {
		$output  = '<?xml version="1.0" encoding="UTF-8" ?>';
		$output .= '<rss version="2.0" xmlns:g="http-~~-//base.google.com/ns/1.0">';
           $output .= '<channel>';
		$output .= '<title>' . $this->config->get('config_name') . '</title>';
		$output .= '<description>' . $this->config->get('config_meta_description') . '</description>';
		$output .= '<link>' . HTTP_SERVER . '</link>';

		$this->load->model('catalog/category');

		$this->load->model('catalog/product');

		$this->load->model('tool/image');

		$products = $this->model_catalog_product->getProducts();

		foreach ($products as $product) {
			if ($product['description']) {
				$output .= '<item>';
				$output .= '<title>' . html_entity_decode($product['name'], ENT_QUOTES, 'UTF-8') . '</title>';
				$output .= '<link>' . HTTP_SERVER . 'index.php?route=product/product&product_id=' . $product['product_id'] . '</link>';
				$output .= '<description>' . $product['description'] . '</description>';
				$output .= '<g:brand>' . html_entity_decode($product['manufacturer'], ENT_QUOTES, 'UTF-8') . '</g:brand>';
				$output .= '<g:condition>new</g:condition>';
				$output .= '<g:id>' . $product['product_id'] . '</g:id>';

				if ($product['image']) {
					$output .= '<g:image_link>' . $this->model_tool_image->resize($product['image'], 500, 500) . '</g:image_link>';
				} else {
					$output .= '<g:image_link>' . $this->model_tool_image->resize('no_image.jpg', 500, 500) . '</g:image_link>';
				}

				$output .= '<g:mpn>' . $product['model'] . '</g:mpn>';

				$special = $this->model_catalog_product->getProductSpecial($product['product_id']);

				$supported_currencies = array ('USD', 'EUR', 'GBP');

                   if (in_array($this->currency->getCode(), $supported_currencies)) {
                       $currency = $this->currency->getCode();
                   } else {
                       $currency = ($this->config->get('google_base_status')) ? $this->config->get('google_base_status') : 'USD';
                   }

                   if ($special) {
                       $output .= '<g:price>' .  $this->currency->format($this->tax->calculate($special, $product['tax_class_id']), $currency, FALSE, FALSE) . '</g:price>';
                   } else {
                       $output .= '<g:price>' . $this->currency->format($this->tax->calculate($product['price'], $product['tax_class_id']), $currency, FALSE, FALSE) . '</g:price>';
                   }

				$categories = $this->model_catalog_product->getCategories($product['product_id']);

				foreach ($categories as $category) {
					$path = $this->getPath($category['category_id']);

					if ($path) {
						$string = '';

						foreach (explode('_', $path) as $path_id) {
							$category_info = $this->model_catalog_category->getCategory($path_id);

							if ($category_info) {
								if (!$string) {
									$string = $category_info['name'];
								} else {
									$string .= ' > ' . $category_info['name'];
								}
							}
						}

						$output .= '<g:product_type>' . $string . '</g:product_type>';
					}
				}

				$output .= '<g:quantity>' . $product['quantity'] . '</g:quantity>';
				$output .= '<g:upc>' . $product['model'] . '</g:upc>';
				$output .= '<g:weight>' . $this->weight->format($product['weight'], $product['weight_class']) . '</g:weight>';
				$output .= '</item>';
			}
		}

		$output .= '</channel>';
		$output .= '</rss>';

		$this->response->addHeader('Content-Type: application/rss+xml');
		$this->response->setOutput($output, 0);
	}
}

protected function getPath($parent_id, $current_path = '') {
	$category_info = $this->model_catalog_category->getCategory($parent_id);

	if ($category_info) {
		if (!$current_path) {
			$new_path = $category_info['category_id'];
		} else {
			$new_path = $category_info['category_id'] . '_' . $current_path;
		}

		$path = $this->getPath($category_info['parent_id'], $new_path);

		if ($path) {
			return $path;
		} else {
			return $new_path;
		}
	}
}
}
?>

Лечение требуется ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю что особого смысла выгружать в Google Base нет, но если хочется...

google_base.zip

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я думаю что особого смысла выгружать в Google Base нет, но если хочется...

Заменил у себя и эти письмена, на Ваши.

Теперь я, за железной дверью! :)

Спасибо!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если используется https://opencartforum.com/files/file/49-w-pricelist/ и надо ссылку на прайслист добавить в сайтмэп

перед строкой

$output .= '</urlset>';
добавить

$output .= '<url>';
$output .= '<loc>' . HTTP_SERVER . 'index.php?route=common/wpricelist</loc>';
$output .= '<changefreq>weekly</changefreq>';
$output .= '<priority>0.5</priority>';
$output .= '</url>';   
  • +1 3

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

А как тогда сообщить поисковику, допустим яндексу о местоположении карты. Ту созданную я заливал в корень и в роботсе указывал путь. Спасибо

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как тогда сообщить поисковику, допустим яндексу о местоположении карты. Ту созданную я заливал в корень и в роботсе указывал путь. Спасибо

Так же...

Заходиш в админке Дополнения -> Каналы товаров, устанавливаеш Google Sitemap, заходиш в настройки Google Sitemap, выставляеш Статус: Включено, а чуть ниже увидиш Адрес который и надо скармливать поисковикам.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Yesvik скажите пожалуйста, а в ocstore v0.2.0. google_sitemap и Google Base желательно тоже поменять на выложенные Вами выше файлы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Yesvik скажите пожалуйста, а в ocstore v0.2.0. google_sitemap и Google Base желательно тоже поменять на выложенные Вами выше файлы?

Да.
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отлично модуль News page снова в строю, но маленькая загвоздка по seo_url. В приложенной инструкции к нему говорится об изменении контроллера catalog/controller/common/seo_url.php, а именно такие инструкции. Добавьте после строк:

if ($url[0] == 'information_id') {
	$this->request->get['information_id'] = $url[1];
}

эти строки

if ($url[0] == 'news_id') {
	$this->request->get['news_id'] = $url[1];
}

И вставьте до } в блоке:

if (isset($this->request->get['product_id'])) {
	$this->request->get['route'] = 'product/product';
} elseif (isset($this->request->get['path'])) {
	$this->request->get['route'] = 'product/category';
} elseif (isset($this->request->get['manufacturer_id'])) {
	$this->request->get['route'] = 'product/manufacturer';
} elseif (isset($this->request->get['information_id'])) {
	$this->request->get['route'] = 'information/information';
}

строку

} elseif (isset($this->request->get['news_id'])) {
	$this->request->get['route'] = 'information/news';

Да и в файлике catalog/model/tool/seo_url.php вы не найдет строчку:

if (($key == 'product_id') || ($key == 'manufacturer_id') || ($key == 'information_id') || ($key == 'news_id')) {

в которую надо бы добавить условие || ($key == 'news_id')

Но в текущем уже seo_url таких строк к сожалению нет. Возникает известный русский вопрос что делать Изображение .

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если не понимаеш как работают сторонние генераторы лучше не трогай их.

Прикрепляю исправленный google_sitemap, используй его.

Сюда изменения внёс:

/catalog/controller/feed/google_base.php

/catalog/controller/feed/google_sitemap.php

а сюда:

/admin/controller/feed/google_base.php

/admin/controller/feed/google_sitemap.php

изменения нужны какие нибудь?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В Админ ----> Главная :: Каналы товаров :: Google Sitemap

стоит адрес - Изображение, открываю его в браузере, всё хорошо (на мой взгляд) только вот главную страницу найти не могу.

Вопрос: так и задумано или это только у меня ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не нужны

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не нужны

А про главную в sitemap - е , должна быть отдельная строка с адресом главной страницы?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой смысл?

Главная страница содержится в URL каждой страницы.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А какой смысл?

Главная страница содержится в URL каждой страницы.

Всё. Теперь понятно. Успокоился. :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.