搜索引擎很流行,查资料、看新闻,不是上 Google,就是找度娘。于是乎,网站也需要针对搜索引擎进行优化,以提升自己在搜索结果中的排名。这种优化称为面向搜索引擎的优化,英文是 Search Engine Optimization,简称为 SEO。
SEO 中最基础的一步是站点地图(Sitemap)。站点地图是一个 XML 格式的文件,它的作用是告诉搜索引擎,你的站点中有哪些页面,每个页面的地址是什么,多久更新一次之类的信息,以便于搜索引擎更好地索引你的站点。虽然搜索引擎都有爬虫来扫描每一个站点,但爬虫不一定能扫描整个站点,比如一些AJAX的页面,对爬虫就不太友好。提供站点地图,能极大地抵消这些困扰。
站点地图的格式很简单,和 RSS 类似,如下。如果有多个页面,只需要并列地写一排的<url>标签和内容即可。
1 2 3 4 5 6 7 8 |
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>http://leonax.net/</loc> <lastmod>2014-08-13</lastmod> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> </urlset> |
做出站点地图之后,可以把它添加进 robots.txt 中,以后有爬虫来的时候,它就知道站点中有多少页面了。robots.txt 的语法如下:
1 |
Sitemap: http://leonax.net/sitemap.xml |
这样是不是就可以了呢?大多数的 SEO 文章到这里就结束了。但是,站点地图还可以进一步针对不同的搜索引擎做不同的优化,让我们分别来看一下:
由于 Google 同时支持 HTTP 和 HTTPS 的索引,如果你的站点也同时支持 HTTP 和 HTTPS ,在过渡期间你可以把两个版本的站点地图都提交给它。具体做法是,在 Google 的站长工具中,添加并验证两个版本的网站,然后分别提交不同的站点地图。
另外,Google 还允许在站点地图中添加多媒体信息,如图片和视频,格式如下。提交多媒体信息的好处是,Google 会把它们显示在搜索结果中,使你的页面看上去更吸引人。详情请参考站点地图格式和准则。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"> <url> <loc>http://www.example.com/foo.html</loc> <image:image> <image:loc>http://example.com/image.jpg</image:loc> </image:image> <video:video> <video:content_loc> http://www.example.com/video123.flv </video:content_loc> <video:player_loc allow_embed="yes" autoplay="ap=1"> http://www.example.com/videoplayer.swf?video=123 </video:player_loc> <video:thumbnail_loc> http://www.example.com/thumbs/123.jpg </video:thumbnail_loc> <video:title>Grilling steaks for summer</video:title> <video:description> Get perfectly done steaks every time </video:description> </video:video> </url> </urlset> |
百度
百度的站点地图规范中并不包含多媒体信息,但它有另一个特性:手机(小屏幕)适配。它可以帮助百度区分站点中的 PC 和手机/平板适用的页面。有些站点可以使用的不同的子域名来应对不同的设备,使用这种格式就可以在搜索结果是显示更适合用户浏览的结果。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<?xml version="1.0"encoding="UTF-8"?> <urlset> <url> <!--必填标签,表示PC页的url地址 --> <loc><![CDATA[http://www.yoursite.html/yoursite.html]]></loc> <data> <display> <!—可选标签,表示该PC页对应的html5版式的手机页的url地址 --> <html5_url><![CDATA[http://html5.yoursite.html/yoursite.html]]></html5_url> <!—可选标签,表示该PC页对应的wml版式的手机页的url地址 --> <wml_url><![CDATA[http://wml.yoursite.html/yoursite.html]]></wml_url> <!—可选标签,表示该PC页对应的xhtml版式的手机页的url地址 --> <xhtml_url><![CDATA[http://xhtml.yoursite.html/yoursite.html]]></xhtml_url> </display> </data> </url> </urlset> |
由于百度的格式和 Google 并不兼容,你可能需要制做两份站点地图,分开提交才可以。
至于其它的搜索引擎,暂时还不知道有更多的格式支持,如果它们有更新,我会及时添加在这里。
所以手动的方式比使用 Google XML Sitemaps 之类的插件更有效?
另:文章第二行打错一个字。
多数插件会使用Google的格式输出,百度的就照顾不了了,我之前用过Yoast SEO也是这样,并且不可自定义。后来就自己写了段程序输出sitemap。
国内做谷歌的太少了,基本都是搞百度优化
我的博客来自 Google 和百度的流量基本打平,所以同时进行优化会好一点。
我没有地图,GOOGLE支持FEED RSS提交站点地图,我就提交了一下,然后就没有然后了。至于百度,我在ROBOTS.TXT里直接禁止它访问。