Ruslan Brest, rb.labtodo.com
Backend web-developer: CodeIgniter, PHP, MySQL, OpenCart, PrestaShop, MaxSite CMS

Opencart 1.5.1.3: добавляем главную страницу в sitemap.xml

Просмотров: 14599 RSS 4
Howto » SEO » OpenCart

Оказывается, в sitemap.xml (Google sitemap) нет ссылки на главную страницу сайта. Добавляем несколько строк в catalog/controller/feed/google_sitemap.php:

commit acf2aa3f70fdb171846ffe81b74f2682cce8e639
Author: Ruslan Brest <rb@labtodo.com>
Date:   Wed Feb 22 13:09:20 2012 +0200
    [+] Add home page address to sitemap.xml
diff --git a/upload/catalog/controller/feed/google_sitemap.php b/upload/catalog/controller/feed/google_sitemap.php
index 3d6d475..7a3f750 100644
--- a/upload/catalog/controller/feed/google_sitemap.php
+++ b/upload/catalog/controller/feed/google_sitemap.php
@@ -5,6 +5,12 @@ class ControllerFeedGoogleSitemap extends Controller {
 		 $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>';
+
 		 $this->load->model('catalog/product');
 
 		 $products = $this->model_catalog_product->getProducts();
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru digg.com friendfeed.com liveinternet.ru livejournal.ru yandex.ru del.icio.us
Комментариев: 4
  1. 2012-05-17 в 07:27:14 | Сергей

    Руслан, а каким образом можно добавить в основную карту сайта еще одну, дело в том, что у меня вместе с магазинов, в подкаталоге установлен блог на wordpress в формате site.ru/blog/, соответственно имею 2 разных карты сайта, вот как можно было бы карту блога "запихнуть" в основную?

  2. 2012-05-17 в 18:23:12 | Ruslan Brest

    В файле robots.txt может быть указано расположение карты сайта. Директив может быть несколько.

    http://support.google.com/webmasters/bin/answer.py?hl=ru&answer=75712

    http://www.google.com/robots.txt

    http://stackoverflow.com/questions/2594179/multiple-sitemap-entries-in-robots-txt

    http://www.sitemaps.org/protocol.html#submit_robots

  3. Добавил в .htaccess редирект

    RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]

    Теперь карту сайта можно открыть по короткому имени site.ru/sitemap.xml

    Но при добавлении короткой ссылки в яндекс выходит ошибка:

    Указанный URL выполняет перенаправление, поэтому не рекомендуется добавлять его в качестве файла Sitemap. Используйте URL цели перенаправления.

    Можно ли как-нибудь сделать чтоб карта сайта открывалась именно по ссылке site.ru/sitemap.xml без перенаправления?

  4. 2012-10-30 в 21:12:40 | Ruslan Brest

    Вот с точно такой же директивой в .htaccess содержимое ответа a4u.com.ua/sitemap.xml, там ясно видно в ответе сервера: 200 OK. Не вижу никакого перенаправления, см. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes. Где там Яндекс его видит? Либо выясните это у них, либо дайте им то, что просят - длинный адрес.

    Либо возможен вариант, что ваш сервер действительно отдаёт что-то другое по этому запросу, а не "HTTP/1.1 200 OK". В это я больше склонен поверить.

    GET http://a4u.com.ua/sitemap.xml
    200 OK
    Request
    GET /sitemap.xml HTTP/1.1
    User-Agent: Opera/9.80 (X11; Linux i686; U; Edition Next; en) Presto/2.11.310 Version/12.50
    Host: a4u.com.ua
    Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/webp, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
    Accept-Language: en-NZ,en;q=0.9
    Accept-Encoding: gzip, deflate
    Cookie: ...
    Connection: Keep-Alive
    Response
    HTTP/1.1 200 OK
    Server: nginx/1.2.1
    Date: Tue, 30 Oct 2012 09:01:37 GMT
    Content-Type: application/xml
    Connection: keep-alive
    X-Powered-By: PHP/5.2.17
    Expires: Thu, 19 Nov 1981 08:52:00 GMT
    Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
    Pragma: no-cache
    Set-Cookie: ...
    Vary: Accept-Encoding,User-Agent
    Content-Encoding: gzip
Оставьте комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

Авторизация  Facebook. MaxSiteAuth. Loginza

(обязательно)