Запись sitemap.xml в файл для Opencart 2.x и 3.x — блог Окатьев.Ру

d0b7d0b0d0bfd0b8d181d18c-sitemap-xml-d0b2-d184d0b0d0b9d0bb-d0b4d0bbd18f-opencart-2-x-d0b8-3-x-d0b1d0bbd0bed0b3-d0bed0bad0b0d182 Без рубрики

Создаём физический sitemap.xml и снимаем нагрузку с БД

Запись sitemap.xml в файл для Opencart 2.x и 3.x — блог Окатьев.Ру

Привет! Решил поделиться с тобой полезным решением для web-движка Opencart 2.x и 3.x. Речь пойдёт о том, как добавить файл sitemap Opencart 2 и Opencart 3.

Данное решение позволяет исключить постоянное обращение поисковых роботов к встроенному в Opencart генератору sitemap, который пересоздаёт карту сайта каждый раз при каждом новом обращении к скрипту (генерирует карту сайта «на лету»), что тем самым очень сильно нагружает web-сервер, на котором стоит сайт, а также позволит генерировать вам две разные карты сайта для Google и Yandex соответственно.

Также подходит для ocStore 2.x, 3.x и других модификаций движка.

Создание и правка файлов

Как добавить файл sitemap Opencart 2 и Opencart 3? Подключись через FTP-клиент к корневой директории твоего сайта и создай в ней файл с расширением *.php и названием sitemap-1JzDeTT, после этого выставь права 0755 на этот файл и открой его в любом удобном для тебятекстовом редакторе (для Windows я рекомендую использовать Notepad++, а для OS X — TextWrangler или Coda). 

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

Затем скопируй и вставь в него следующий код:

Данный кусок кода предназначен для тех людей, у которых установлено два генератора sitemap на сайте: Google Sitemap (стоковый модуль) и Yandex Sitemap в разеделе «Дополнения» > «Каналы продвижения»

Для записи Google Sitemap и Yandex Sitemap в файл под Opencart 2.x

Скачать файл для Yandex и Google под Opencart 2.x

Для записи Google Sitemap и Yandex Sitemap в файл под Opencart 3.x

Скачать файл для Yandex и Google под Opencart 3.x

Обрати своё внимание на переменную HTTP_SERVER в коде. Используй её, если твой сайт доступен только по незащищенному протоколу http, либо используй переменную HTTPS_SERVER, если твой сайт доступен только по защищенному протоколу https.

Если у тебя установлен только стоковый модуль генерации карты сайта для Opencart — Google Sitemap, то тебе необходимо скопировать и вставить в созданный файл следующий кусок кода:

Для записи Google Sitemap в файл под Opencart 2.x

Скачать файл для Google под Opencart 2.x

Для записи Google Sitemap в файл под Opencart 3.x

Скачать файл для Google под Opencart 3.x

Соответственно, если ты используешь только модуль для Opencart — Yandex Sitemap, тогда тебе потребуется кусок кода, приведенный ниже:

Для записи Yandex Sitemap в файл под Opencart 2.x

Скачать файл для Yandex под Opencart 2.x

Для записи Yandex Sitemap в файл под Opencart 3.x

Скачать файл для Yandex под Opencart 3.x

Проверка работоспособности скрипта

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

Для этого тебе необходимо напрямую обратиться к данному файлу через браузер, если всё прошло без ошибок, то ты увидишь сообщение об успешной генерации статических файлов sitemap в своём браузере:

Запись sitemap.xml в файл для Opencart 2.x и 3.x — блог Окатьев.Ру

Пример вывода об успешной генерации sitemap для Google и Yandex

Также в корневой директории твоего сайта, рядом с файлом sitemap-1JzDeTT.php появятся новые файлы: для первого случая — 1_g_sitemap.xml и 1_ya_sitemap.xml, а для остальных — sitemap.xml

Запись sitemap.xml в файл для Opencart 2.x и 3.x — блог Окатьев.Ру

Для первого случая — 1_g_sitemap.xml и 1_ya_sitemap.xml

Добавляем задание в планировщик CRON

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

Далее ты можешь добавить команду через GUI-панель управления хостинга

/usr/bin/wget -O - -q -t 1 'http://site.ru/sitemap-1JzDeTT.php' > /dev/null 2>&1

Где site.ru — домен твоего сайта.

или, если у тебя есть доступ к файловой системе web-сервера (VPS, VDS), тогда ты можешь напрямую отредактировать файл crontab через SSH или sFTP:

vi /etc/crontab

или

nano /etc/crontab

и перед символом # добавить:

30  3   * * *   root    /usr/bin/wget -O - -q -t 1 'http://site.ru/sitemap-1JzDeTT.php' > /dev/null 2>&1

Где site.ru — домен твоего сайта.

Сохранить и закрыть текстовый редактор в терминале.

Вывод

Теперь каждый день в 03:30 твоя карта сайта будет автоматически обновляться в файл, соответственно поисковым роботам ты указываешь путь к физическому файлу — /1_ya_sitemap.xml или 1_g_sitemap.xml, а не к динамическому — /index.php?route=feed/google_sitemap или /index.php?route=extension/feed/google_sitemap в Opencart 3.

Таким образом, генерация карты твоего сайта «на лету» будет происходить один раз в сутки по расписанию, а роботы будут «терзать» статический файлик, не нагружая при этом сервак.

Чтобы сделать «умный» файл robots.txt, который будет отдавать поисковому боту Яндекса (и ему подобным) файл sitemap.xml с упрощенной разметкой, а поисковому роботу от Google — sitemap.xml, который включает в себя изображения товаров, рекомендую тебе изучить эту статью: Создаём умный robots.txt на PHP.

Удачных доработок и до связи!

Оцените статью