sitemap.xml是一种站点地图协议,此协议文件基于早期的robots.txt文件协议,并有所升级。向搜索引擎中提交了sitemap.xml的 网站将更有利于搜索引擎网页爬行机器人的爬行索引,这样将提高索引网站内容的效率和准确度。
一共有六个标签,changefreq:页面内容更新频率;
lastmod:页面最后修改时间;
loc:页面永久链接地址;
priority:相对于其他页面的优先权(这个标签可以不使用);
url:相对于前 4个标签的父标签;
urlset:相对于前5个标签的父标签。
你可以向搜索引擎提供多个Sitemap文件,但提供的每个Sitemap文件包括的网址不得超过50,000 个,并且未压缩时不能大于10MB 。
向Google提交网站地图Sitemap: 通过网址http://www.google.com/webmasters管理提交;
向Yahoo!提交网站地图Sitemap: 通过网址http://siteexplorer.search.yahoo.com管理提交;
向MSN提交网站地图Sitemap: 用URL直接提交:http://api.moreover.com/ping?u=http%3A//your.domainname/sitemap.xml。这是向MSN直接提交网站地图的后门URL。注意”:”被%3A替换掉。
向ASK提交网站地图Sitemap: 直接提交。http://submissions.ask.com/ping?sitemap=http%3A//your.domainname/sitemap.xml。注意”:”被%3A替换掉。
sitemap.xml文件格式如下:
那怎么制作sitemap.xml。最笨的方法就是按照这六个标签的规则,自己手写了。
如果网站的页面太多了,这个就会变成了一个超级郁闷的体力劳动。于是就有不少sitemap.xml的生成工具出现了,但是现在大部分的sitemap.xml生成工具都是在客户端输入网址,让工具在网站自行寻找链接生成,这样的模式,Rookie感觉效率比较低,而且没有办法对生成链接做控制。终于在网上找到了一个比较好的方法,适用于将内容生成静态页面的网站。有人将生成sitemap.xml的功能,写成了asp和php的页面,在页面上可以控制需要生成哪些链接。按照你的需要修改页面后,再把页面上传到你的网站空间,访问这个页面就是你所需要的sitemap.xml文件。然后就保存成为xml文件格式,再上传到你的空间,再将链接提交给支持sitemap.xml的搜索引擎。
Asp文件,将蓝色代码复制到文本文件,再保存成sitemap.asp,修改相关设置后,上传到服务器,访问即可<%
session(”server”)=”http://www.grzz.com.cn“ ‘将此http://www.grzz.com.cn改成你的域名
vDir = “/” ‘制作SiteMap的目录
set objfso = CreateObject(”Scripting.FileSystemObject”)
root = Server.MapPath(vDir)
response.ContentType = “text/xml”
response.write “”
response.write “”
Set objFolder = objFSO.GetFolder(root)
Set colFiles = objFolder.Files
For Each objFile In colFiles
response.write getfilelink(objFile.Path,objfile.dateLastModified)
Next
ShowSubFolders(objFolder)
response.write “ ”
set fso = nothing
Sub ShowSubFolders(objFolder)
Set colFolders = objFolder.SubFolders
For Each objSubFolder In colFolders
if folderpermission(objSubFolder.Path) then
response.write getfilelink(objSubFolder.Path,objSubFolder.dateLastModified)
Set colFiles = objSubFolder.Files
For Each objFile In colFiles
response.write getfilelink(objFile.Path,objFile.dateLastModified)
Next
ShowSubFolders(objSubFolder)
end if
Next
End Sub
Function getfilelink(file,datafile)
‘changefreq更改参数:always, hourly, daily, weekly, monthly, yearly , never
file=replace(file,root,”")
file=replace(file,”\”,”/”)
If FileExtensionIsBad(file) then Exit Function
if month(datafile)<10 then filedatem=”0″
if day(datafile)<10 then filedated=”0″
filedate=year(datafile)&”-”&filedatem&month(datafile)&”-”&filedated&day(datafile)
getfilelink = “”&server.htmlencode(session(”server”)&vDir&file)&” ”&filedate&” weekly ”
Response.Flush
End Function
Function Folderpermission(pathName)
’需要过滤的目录(不列在SiteMap里面)
PathExclusion=Array(”\ad”,”\admin”,”\aspnet_client”,”\Count”,”\data”,”\Inc”,”\upload”,”\template”)
Folderpermission =True
for each PathExcluded in PathExclusion
if instr(ucase(pathName),ucase(PathExcluded))>0 then
Folderpermission = False
exit for
end if
next
End Function
Function FileExtensionIsBad(sFileName)
Dim sFileExtension, bFileExtensionIsValid, sFileExt
Extensions = Array(”html”)
‘设置列表的文件名,扩展名不在其中的话SiteMap则不会收录该扩展名的文件
if len(trim(sFileName)) = 0 then
FileExtensionIsBad = true
Exit Function
end if
sFileExtension = right(sFileName, len(sFileName) - instrrev(sFileName, “.”))
bFileExtensionIsValid = false ‘assume extension is bad
for each sFileExt in extensions
if ucase(sFileExt) = ucase(sFileExtension) then
bFileExtensionIsValid = True
exit for
end if
next
FileExtensionIsBad = not bFileExtensionIsValid
End Function
%>
”;
if(is_dir($directory . “/” . $file)) {
//echo “point2
”;
$disallowed_abs = fl_contains($directory.”/”.$file, $disallow_dir); // handle directories with pathes
$disallowed = ar_contains($file, $disallow_dir); // handle directories only without pathes
$allowed_abs = fl_contains($directory.”/”.$file, $allow_dir);
$allowed = ar_contains($file, $allow_dir);
if ($disallowed || $disallowed_abs) continue;
if ($allowed_abs || $allowed){
$tmp2 = changeOffset(getFiles($directory . “/” . $file, $directory_orig, $directory_offset), $directory_orig, $directory_offset);
if(is_array($tmp2)) {
$tmp = array_merge($tmp, $tmp2);
}
}
} else { // files
if (fl_contains($file, $disallow_file)) continue;
array_push($tmp, str_replace($directory_orig, $directory_offset, $directory.”/”.$file));
}
}
}
// Finish off the function
closedir($dir);
return $tmp;
}
}
$a = getFiles($page_root);
echo ‘’;
?>
foreach ($a as $file) {
?>
echo utf8_encode($website.$file); ?>
echo utf8_encode(date(”Y-m-d\TH:i:s”, filectime($page_root.$file)). substr(date(”O”),0,3) . “:” . substr(date(”O”),3));?>
echo utf8_encode($changefreq); ?>
}
?>