如果网站中文章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?
强烈推荐
- 英国代购-畅购英伦
- TopCashBack 返现 (英国购物必备, 积少成多, 我2年来一共得了3000多英镑)
- Quidco 返现 (也是很不错的英国返现网站, 返现率高)
- 注册就送10美元, 免费使用2个月的 DigitalOcean 云主机(性价比超高, 每月只需5美元)
- 注册就送10美元, 免费使用4个月的 Vultr 云主机(性价比超高, 每月只需2.5美元)
- 注册就送10美元, 免费使用2个月的 阿里 云主机(性价比超高, 每月只需4.5美元)
- 注册就送20美元, 免费使用4个月的 Linode 云主机(性价比超高, 每月只需5美元) (折扣码: PodCastInit2022)
- PlusNet 英国光纤(超快, 超划算! 用户名 doctorlai)
- 刷了美国运通信用卡一年得到的积分 换了 485英镑
- 注册就送50英镑 – 英国最便宜最划算的电气提供商
- 能把比特币莱特币变现的银行卡! 不需要手续费就可以把虚拟货币法币兑换
微信公众号: 小赖子的英国生活和资讯 JustYYUK