Карты сайта полезны для поисковых роботов, чтобы лучше узнать структуру вашего сайта. Они особенно полезны, если ваш сайт содержит несколько сотен страниц. Вы можете войти в Google Webmaster или Bing Master (или другие подобные инструменты веб-сайта), чтобы отправить карты сайта вручную. Если у вас много карт сайта (или много сайтов), это будет головной болью. Как насчет автоматической отправки файлов Sitemap (чтобы поисковые системы знали, что у вас есть обновления)?
карта сайта
Сначала определите массив URL-адресов карты сайта с помощью PHP :
$sitemaps = array(
"<a class="vglnk" target="_blank" href="https://helloacm.com/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>",
"<a class="vglnk" target="_blank" href="https://codingforspeed.com/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>codingforspeed</span><span>.</span><span>com</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>",
"<a class="vglnk" target="_blank" href="https://codingforspeed.com/forum/sitemap.php" rel="nofollow"><span>https</span><span>://</span><span>codingforspeed</span><span>.</span><span>com</span><span>/</span><span>forum</span><span>/</span><span>sitemap</span><span>.</span><span>php</span></a>",
"<a class="vglnk" target="_blank" href="https://uploadbeta.com/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>uploadbeta</span><span>.</span><span>com</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>",
"<a class="vglnk" target="_blank" href="https://rot47.net/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>rot47</span><span>.</span><span>net</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>",
"<a class="vglnk" target="_blank" href="https://justyy.com/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>justyy</span><span>.</span><span>com</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>",
"<a class="vglnk" target="_blank" href="https://steakovercooked.com/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>steakovercooked</span><span>.</span><span>com</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>",
"<a class="vglnk" target="_blank" href="https://steakovercooked.com/wedding/sitemap.xml" rel="nofollow"><span>https</span><span>://</span><span>steakovercooked</span><span>.</span><span>com</span><span>/</span><span>wedding</span><span>/</span><span>sitemap</span><span>.</span><span>xml</span></a>"
);
Затем определите две функции:
// cUrl handler to ping the Sitemap submission URLs for Search Engines…
function Submit($url){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
return $httpCode;
}
function SubmitSiteMap($url) {
$returnCode = Submit($url);
if ($returnCode != 200) {
echo "Error $returnCode: $url <BR/>";
} else {
echo "Submitted $returnCode: $url <BR/>";
}
}
Затем все, что вам нужно сделать, это повторить все карты сайта и отправить их в разные поисковые системы:
foreach ($sitemaps as $sitemapUrl) {
$sitemapUrl = htmlentities($sitemapUrl);
//Google
$url = "<a class="vglnk" target="_blank" href="http://www.google.com/webmasters/sitemaps/ping?sitemap=".$sitemapUrl" rel="nofollow"><span>http</span><span>://</span><span>www</span><span>.</span><span>google</span><span>.</span><span>com</span><span>/</span><span>webmasters</span><span>/</span><span>sitemaps</span><span>/</span><span>ping</span><span>?</span><span>sitemap</span><span>=".$</span><span>sitemapUrl</span></a>;
SubmitSiteMap($url);
//Bing / MSN
$url = "<a class="vglnk" target="_blank" href="http://www.bing.com/webmaster/ping.aspx?siteMap=".$sitemapUrl" rel="nofollow"><span>http</span><span>://</span><span>www</span><span>.</span><span>bing</span><span>.</span><span>com</span><span>/</span><span>webmaster</span><span>/</span><span>ping</span><span>.</span><span>aspx</span><span>?</span><span>siteMap</span><span>=".$</span><span>sitemapUrl</span></a>;
SubmitSiteMap($url);
// Live
$url = "<a class="vglnk" target="_blank" href="http://webmaster.live.com/ping.aspx?siteMap=".$sitemapUrl" rel="nofollow"><span>http</span><span>://</span><span>webmaster</span><span>.</span><span>live</span><span>.</span><span>com</span><span>/</span><span>ping</span><span>.</span><span>aspx</span><span>?</span><span>siteMap</span><span>=".$</span><span>sitemapUrl</span></a>;
SubmitSiteMap($url);
// moreover
$url = "<a class="vglnk" target="_blank" href="http://api.moreover.com/ping?sitemap=".$sitemapUrl" rel="nofollow"><span>http</span><span>://</span><span>api</span><span>.</span><span>moreover</span><span>.</span><span>com</span><span>/</span><span>ping</span><span>?</span><span>sitemap</span><span>=".$</span><span>sitemapUrl</span></a>;
SubmitSiteMap($url);
}
Добавьте следующее в начало, которое не устанавливает ограничение по времени, если вы хотите добавить это задание в crontab.
Наконец, вы можете добавить это в crontab -e
@daily php submit_sitemap.php
Кроме того, функцию Submit можно упростить, используя file_get_contents, если вы не хотите знать, прошла ли отправка успешно (без кода возврата).
function Submit($url) {
file_get_contents($url);
}
Полный исходный код доступен на github: submit_sitemaps.php