如果网站中文章URL数目比较多几千几万的. 这时候站点地图 Sitemaps 就对搜索引擎很有帮助了. 平时你可以通过登陆 Google Webmaster 或者 Bing Master 之类的站点工具手动提交站点地图 (告诉搜索引擎网站有更新) 但是如果网站很多 站点地图很多的话 一个一个手动提交也是很累的.
以下通过 PHP 自动提交站点地图 并且可以很容易的通过 crontab 来设置成每天自动提交, 省去烦恼.
首先需要把站点地图的URL记在数组里:
1 2 3 4 5 6 7 8 9 10 11 | // 站点地图 URL, 记得替换成你自己的 $sitemaps = array( "https://helloacm.com/sitemap.xml", "https://codingforspeed.com/sitemap.xml", "https://codingforspeed.com/forum/sitemap.php", "https://uploadbeta.com/sitemap.xml", "https://rot47.net/sitemap.xml", "https://justyy.com/sitemap.xml", "https://steakovercooked.com/sitemap.xml", "https://steakovercooked.com/wedding/sitemap.xml" ); |
// 站点地图 URL, 记得替换成你自己的 $sitemaps = array( "https://helloacm.com/sitemap.xml", "https://codingforspeed.com/sitemap.xml", "https://codingforspeed.com/forum/sitemap.php", "https://uploadbeta.com/sitemap.xml", "https://rot47.net/sitemap.xml", "https://justyy.com/sitemap.xml", "https://steakovercooked.com/sitemap.xml", "https://steakovercooked.com/wedding/sitemap.xml" );
然后只需要定义两个函数:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | // cUrl 库用于访问 提交的URL 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 "错误 $returnCode: $url <br />"; } else { echo "成功提交 $returnCode: $url <br />"; } } |
// cUrl 库用于访问 提交的URL 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 "错误 $returnCode: $url <br />"; } else { echo "成功提交 $returnCode: $url <br />"; } }
最后只要需要把每个URL依次提交到搜索引擎里即可.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | foreach ($sitemaps as $sitemapUrl) { $sitemapUrl = htmlentities($sitemapUrl); //Google $url = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".$sitemapUrl; SubmitSiteMap($url); //Bing / MSN $url = "http://www.bing.com/webmaster/ping.aspx?siteMap=".$sitemapUrl; SubmitSiteMap($url); // Live $url = "http://webmaster.live.com/ping.aspx?siteMap=".$sitemapUrl; SubmitSiteMap($url); // moreover $url = "http://api.moreover.com/ping?sitemap=".$sitemapUrl; SubmitSiteMap($url); } |
foreach ($sitemaps as $sitemapUrl) { $sitemapUrl = htmlentities($sitemapUrl); //Google $url = "http://www.google.com/webmasters/sitemaps/ping?sitemap=".$sitemapUrl; SubmitSiteMap($url); //Bing / MSN $url = "http://www.bing.com/webmaster/ping.aspx?siteMap=".$sitemapUrl; SubmitSiteMap($url); // Live $url = "http://webmaster.live.com/ping.aspx?siteMap=".$sitemapUrl; SubmitSiteMap($url); // moreover $url = "http://api.moreover.com/ping?sitemap=".$sitemapUrl; SubmitSiteMap($url); }
最好在脚本开头去掉脚本执行时间限制.
1 | set_time_limit(999999); |
set_time_limit(999999);
如果你对提交的结果并不在意 其实可以把 Submit 替换成更为简单的 file_get_contents 并不需要复杂的 cURL 库.
1 2 3 | function Submit($url) { file_get_contents($url); } |
function Submit($url) { file_get_contents($url); }
最后 可以加入 crontab -e 的列表中 每天自动提交. 懒人推动科技进步!
1 | @daily php submit_sitemap.php |
@daily php submit_sitemap.php
源代码可以在 github中得到 submit_sitemaps.php, 记得把 sitemaps 改成你自己的.
英文: How to Submit Sitemaps using PHP automatically?
GD Star Rating
loading...
本文一共 318 个汉字, 你数一下对不对.loading...
上一篇: Adsense 广告违返条例
下一篇: 通过 ImageRecycle API 来进行图片或者PDF压缩
扫描二维码,分享本文到微信朋友圈
现在都懒得提交了,谷歌排名什么的貌似没啥用…
嗯 我也是懒
所以让机器替我提交
用插件建立sitemap省事,然后直接到搜索引擎站长平台提交一份搞定
嗯 主要是我有好几个站点 还是写份脚本省些事