Si vous possédez un sitemap dynamique, vous pouvez notifier google, yahoo et ask de sa mise à jour. Renvoie HTTP/1.1 200 OK si tout s'est bien passé. Vous mettez dans un crontab ce script ainsi que la génération du sitemap et c'est gagné (0 0 * * * et 0 12 * * * pour respectivement minuit et midi tous les jours).
$sitemapUrl = 'http://www.monsite.com/sitemap.xml';
//google
$google_return = pingSitemap($sitemapUrl, 'http://www.google.com/webmasters/sitemaps/ping?sitemap=');
//ask
$ask_return = pingSitemap($sitemapUrl, 'http://submissions.ask.com/ping?sitemap=');
//yahoo
$yahoo_return = pingSitemap($sitemapUrl, 'http://search.yahooapis.com/SiteExplorerService/V1/ping?sitemap=');
function pingSitemap ($sitemapUrl, $notifyUrl) {
$fileName =
$notifyUrl .
urlencode($sitemapUrl);
if (!
isset($url["port"])) $url["port"] =
80;
if (!
isset($url["path"])) $url["path"] =
"/";
$url["port"],
&$errno, &$errstr, 30);
if ($fp) {
$head = "";
$httpRequest = "HEAD ". $url["path"] ."?"
.$url["query"] ." HTTP/1.1\r\n"
."Host: ". $url["host"] ."\r\n"
."Connection: close\r\n\r\n";
fputs($fp,
$httpRequest);
return $head;
}
return "ERROR";
}