✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Як автоматично подати карти сайту за допомогою PHP?

14

Карти сайту корисні пошуковим роботам, щоб краще знати структуру вашого сайту. Вони особливо корисні, якщо ваш сайт містить кілька сотень сторінок. Ви можете ввійти в Google Webmaster або Bing Master (або інші подібні інструменти для веб-сайтів), щоб надіслати карти сайту вручну. Якщо у вас багато карт сайту (або багато веб-сайтів), це буде головним болем. Як щодо автоматичного надсилання карт сайту (щоб пошукові системи знали, що у вас є оновлення)?

карта сайту

Спочатку визначте масив 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

Джерело запису: helloacm.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі