Карта сайта для Yandex и Google: автообновление sitemap

Поясните пожалуйста, должна ли sitemap автоматически обновляться с помощью стандартного модуля “Карта сайта для Yandex и Google” или нет?
У меня автоматически не обновляется, надо вручную. А что тогда значат все эти настройки “Частота обновления”?

Не должна. Увы, но автоматически не генерируется сайтмап.
Частота обновления нужна, чтоб сайт сообщал поисковикам, что нужно пройтись по сайтмапу.

Можете такое решение использовать. В папке сайта создайте php-файл с содержимым:

<?php

define('AREA', 'A');

define('ACCOUNT_TYPE', 'admin');

require(dirname(FILE) . '/init.php');

fn_google_sitemap_get_content();

и затем в Cron поставьте задачу на выполнение этого php-скрипта.

4 лайка

Создал задачу:
php /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php

Выдаёт ошибку при запуске:
u0557436$ php /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php PHP Notice: Use of undefined constant FILE - assumed 'FILE' in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7 PHP Warning: require(./init.php): failed to open stream: No such file or directory in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7 PHP Warning: require(./init.php): failed to open stream: No such file or directory in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7 PHP Fatal error: require(): Failed opening required './init.php' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/u0557436/data/www/bb-engineering.ru/sitemap_update.php on line 7

1 лайк

Попробуйте вместо require(dirname(FILE) . '/init.php'); вставить полный путь к init.php в корне сайта.

Например, require('/var/html/site.ru/init.php');

1 лайк

Получилось, спасибо!

1 лайк

Попробовал запустить этот php файл, но он не сработал.
Думал, что я с путями напутал и обратился к хостерам, так они мне сказали, что в файле много ошибок, но какие не сказали, только лишь указали на лишнюю точку в строке require(dirname(FILE) . ‘/init.php’);

2019-07-17_17-41-47

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

Также, хочу поинтересоваться, что означает в строке define(‘ACCOUNT_TYPE’, ‘admin’); этот ‘admin’?

2019-07-17_17-53-02

Если не сложно, подскажите, что не так делаю?

Этот скрипт выкладывала техподдержка на форуме. Он почему-то не работает, если не указать полный путь к init.php.

То есть код должены выглядеть так:

<?php
define('AREA', 'A');
define('ACCOUNT_TYPE', 'admin');
require('/home/site.ru/init.php');
fn_google_sitemap_get_content();

Только таким образом смог завести его.

Пробовал и с полным путем, но также не срабатывает. :roll_eyes:

Сейчас проверил у себя, добавил товар, запустил скрипт и в сайтмап товар добавился.

Не подскажу, с чем связано у вас, но основная проблема может быть в пути – проверьте валидность кавычек и чтоб путь начинался с корня сервера, как в примере выше.

С этим все нормально. Я по дате смотрю, изменился файл или нет.

А, что означает ‘admin’ в строке define(‘ACCOUNT_TYPE’, ‘admin’); ?

И еще, имеет значение таб или пробел для этого скрипта?


Проблема решилась, Таб ( tab ) ИМЕЕТ ЗНАЧЕНИЕ!

А, что означает ‘admin’ в строке define(‘ACCOUNT_TYPE’, ‘admin’); ?

Аккаунт, из-под которого будет выполняться функция fn_google_sitemap_get_content();

И еще, имеет значение таб или пробел для этого скрипта?

Никак не влияет на выполнение кода

Ну не знаю. Как только изменил пробелы на tab, так сразу и заработало.

Не сталкивался, чтоб пробелы вместо табуляции как-то влияли на выполнение кода. Это тема является древним холиваром (типа "зачем два раза нажимать на пробел, если можно один раз нажать на tab).

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

Ошибка 500 пишет.

а с Ультимэйт по cron как сделать? надо чтоб для каждой витрины генерилась.

Попробуйте создать cron задчаи для каждой витрины с доп параметром (switch_company_id=123)

где 123 - ID страницы

Форум обрезал нижние подчеркивания. __FILE__ вместо FILE

3 лайка

Всем привет! Это не спам, сразу говорю ))
У меня вопрос к специалистам. Я занимаюсь сайтом ювелирной тематики . Параллельно существует 3 сайта на бесплатный хостах, что-то типа визитов со ссылками на основной сайт. На этих серверах в корневых папках сайтов лежат файлы созданный одной из служб для автоматического создания sitemap (https://www.xml-sitemaps.com/ ) Но, эти файлы, как и любые другие созданные другими авто.службами, не принимаются в гугл_серч_панели. В ней просто красным пишется “Не получено”. На основном сайте всё прекрасно получено. Подскажите пожалуйста, где зарыта собака?

Запустила крон. выдает ошибку:

uxxxx$ php /var/www/uxxxx/data/www/site.ru/sitemap_update.php
PHP Parse error:  syntax error, unexpected '[' in /var/www/uxxxx/data/www/site.ru/init.php on line 90

Открываю init на 90 строке:

В чем может быть проблема?

Поставьте 7 версию PHP на сервере, вы видимо на очень старой работаете.