PHP写站点地图sitemap代码分享以及robots.txt的SEO

摘要

sitemap是一段xml代码,用来表示网站有哪些内容,以方便搜索引擎快速了解并抓取网站。另外一方面,也不是每个网站都需要设置站点地图的,例如左侧功能导航做的非常好的网站,搜索引擎已进入就能够自动快速分析出网站的主要架构,对SEO非常友好。

自动生成sitemap的PHP代码很多,但是真正抽象出来可以复用的,却很少看见。

这里整理的一段代码,可以直接放在任意项目中使用。

 

$thread = DB::fetch_all("SELECT * FROM ".DB::table('forum_thread')." ORDER BY tid DESC");

// 创建一个DOMDocument对象
$dom = new DOMDocument("1.0","utf-8");
header("Content-Type: text/xml");
// 创建根节点
$root = $dom->createElement("urlset");
$dom->appendChild($root);
foreach($thread as $value){
    // 建立根下子节点track
    $track = $dom->createElement("url");
    $root->appendChild($track);
    // 建立track节点下元素
    $loc = $dom->createElement("loc");
        $track->appendChild($loc);
    $priority = $dom->createElement("priority");
        $track->appendChild($priority);
    $lastmod = $dom->createElement("lastmod");
        $track->appendChild($lastmod);
    $changefreq = $dom->createElement("changefreq");
        $track->appendChild($changefreq);

    // 赋值
    $text = $dom->createTextNode('http://localhost/thread-'.$value[tid].'-1-1.html');
    $loc->appendChild($text);
    $date = date("Y-m-d",time());
    $text = $dom->createTextNode($date);
    $lastmod->appendChild($text);
    $text = $dom->createTextNode(daily);
    $changefreq->appendChild($text);
    $text = $dom->createTextNode(0.8);
    $priority->appendChild($text);
}
//生成xml文件
$dom->save("sitemap.xml");exit;

 

顺便普及一下常识:sitemap是一段xml代码,用来表示网站有哪些内容,以方便搜索引擎快速了解并抓取网站。可以参考:

 

http://yanyubao.tseo.cn/saasdocs/xmlsitemap.xml

 

另外一方面,也不是每个网站都需要设置站点地图的,例如左侧功能导航做得非常好的网站,搜索引擎已进入就能够自动快速分析出网站的主要架构,对SEO非常友好。但这里例外的,是左侧的功能导航使用iframe来做的,会让搜索引擎不知道所以然。

当站点中有多个sitemap的时候,需要在robots.txt中说明,这样搜索引擎才知道,撰写的格式为:

 

Sitemap: http://yanyubao.tseo.cn/saasdocs/xmlsitemap.xml

Sitemap: http://yanyubao.tseo.cn/saasdocs/xmlsitemap02.xml

 

希望以上知识点对大家有帮助。

 

 

admin