转自:http://drupalsh.cn/node/416
Drupal 核心模块中就包含了可选的 SEO 优化选项,此外还有一些有益的 Drupal 的第三方模块,他们都可以帮助 Drupal 的使用者提升搜索引擎的排名。本文就将介绍一些 Drupal SEO 时必装模块和相应的设置,希望对您有所帮助。但是这只是 Drupal SEO 的开始……
- 开启简洁链接(Clean URLs)
- 开启 Path 模块 (从 Drupal 4.3 开始进入 Drupal 核心模块)
Path 模块可以让您通过添加路径别名(path alias),来达到自定义链接名的效果。例如 http://www.mypetal.com/node/7 可以定义为 http://www.mypetal.com/library/drupal-seo 。
- 开启 Pathauto 模块 (http://drupal.org/project/pathauto)
Pathauto 模块能够为不同类型的页面(nodes, categories, users)自动生成路经别名(path alias),而不在需要用户手动定义路径别名。
- 设置 Pathauto 模块,在修改 node 的标题时,禁止 Pathauto 模块二次修改路径别名。
- 开启 Global Redirect 模块(http://drupal.org/project/globalredirect)
Global Redirect 模块在页面拥有路径别名的情况下,移除该页面的原始路径,这样可以减少网站的重复内容页面,有利于 SEO。
- 开启 Meta Tags (nodewords)模块(http://drupal.org/project/nodewords)
Meta Tags 模块可以让您为每个 node、user、view 或 panel 页面设置多种 meta tags,例如:keywords 和 description,有利于 SEO。
- 开启 Page Title 模块(http://drupal.org/project/page_title)
Page Title 模块能让您自定义页面标题,有利于 SEO。
- 使用 Drupal XML Sitemap 模块
- 调整 .htaccess 文件to redirect to "www" or remove the "www" subdomain.
- 调整您网站主题的 HTML headers -- 许多主题设置不正确。
- 调整您网站的 robots.txt 文件。在 Drupal 6 中 Drupal 默认的 robots.txt 文件还是有一些问题。
- 检查安装的第三方模块是否新增了一些重复的链接,如果有,使用在 robots.txt 添加规则对搜索引擎的爬虫进行屏蔽。
文章说明
- 参考文章地址:
- Cityreader 对原文进行翻译,结合了自己的理解和注释。
- 转载本文请留言,请保留作者名和网页地址:)
- Petal SEO 为您提供更多精彩的 Drupal 文章
Drupal SEO 常用模块
本文罗列了 Drupal SEO 常用模块,定期更新中……
模块 | 简介 | 链接 | 推荐 | |
---|---|---|---|---|
Pathauto | 基于文章标题自动生成对搜索引擎友好的链接。 | 模块下载 · 使用说明 | ![]() | |
Google Analytics | 网站统计与客户追踪。 | 模块下载 · 使用说明 | ![]() | |
Page title | 允许您为网站所有的 node 页面设置 <title> 标签。 | 模块下载 · 使用说明 | ![]() | |
Global redirect | 修正开启简洁链接和 Pathauto 模块后出现常见的链接问题。 | 模块下载 · 使用说明 | ![]() | |
Taxonomy title | 允许您为网站所有的 taxonomy 页面设置 <title> 标签。 | 模块下载 · 使用说明 | ![]() | |
Meta tags (曾用名:Nodewords) | 允许您自由编辑您网站上node、分类、view等页面上的 meta 标签。 | 模块下载 · 使用说明 | ![]() | |
XML Site map | 创建和 Sitemaps.org 标准相兼容的,搜索引擎可读的动态网站地图。 | 模块下载 · 使用说明 | ![]() | |
URL list | 创建纯文本的网站地图,包含您网站上的所有链接。 | 模块下载 · 使用说明 | ![]() | |
Site map | 创建纯文本的网站地图。 | 模块下载 · 使用说明 | ![]() | |
Syndication | 创建一个网页,包含所有的 RSS feed。 | 模块下载 · 使用说明 | ![]() |
文章说明
- 参考文章:Search Engine Optimization
- Cityreader 对原文进行翻译,结合了自己的理解和注释。
- 转载本文请留言,请保留作者名和网页地址:)
- Petal SEO 为您提供更多精彩的 Drupal 文章
SEO Drupal .htaccess 文件(适合multi-site)
6.x
如果要对基于 Drupal 建立的网站进行 SEO (Search Engine Optimization——搜索引擎自然结果优化),那么就一定要尽量避免网站内的重复页面。因为当搜索引擎的爬虫抓取到大量的重复页面时,搜索引擎就 会降低对网站页面的打分,当然这种影响可能并不太容易被察觉。
当我们使用 Drupal 时通常会碰到这样的问题,例如:页面 http://www.mypetal.com/node/12 和页面 http://mypetal.com/node/12 显示的是相同的内容。或许您会认为这是大惊小怪,但事实上这是两个独立的页面,它们的内容重复,这一点对 SEO 不利。好在 Drupal 开发者早已为我们考虑到了这点,只要做个略施小计就能唤醒这个功能:)
注意:本文只针对拥有一级域名的网站,二级域名的网站不存在这个问题。
默认安装下 Drupal .htaccess 配置
Drupal 默认的 .htaccess 为我们提供了两种解决方案:
- 把链接 http://mypetal.com 重定向到 http://www.mypetal.com
- 把链接 http://www.mypetal.com 重定向到 http://mypetal.com
这两种方案都是为了确保只有一种形式的链接,没有优劣之分。
第1种方案,查找下面代码:
# RewriteRule ^(.*)$ http://www. example. com/$1 [L,R=301]
删除上面高亮显示的 #,并把 example 和 com 改为您的域名。
第2种方案,查找下面代码:
# RewriteRule ^(.*)$ http://www. example. com/$1 [L,R=301]
删除上面高亮显示的 #,并把 example 和 com 改为您的域名。
Multi-site(多站点)下 Drupal .htaccess 配置
第1种方案,查找下面代码:
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
在后面添加如下代码:
RewriteRule ^ http://www.%1%{REQUEST_URI} [L,R=301]
第2种方案,查找下面代码:
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
在后面添加如下代码:
RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]
参考内容
修改 Drupal 的 robots.txt 文件
6.x
在 SEO (Search Engine Optimization——搜索引擎优化) 时关键的一点是为搜索引擎的爬虫提供一个好的、干净的链接地址,这就意味着在一个网站内不能有内容重复的两 个或以上不同链接地址的页面。 然后这个问题在对 Drupal SEO 时尤为突出。而且如果使用的第三方模块中存在一些不合理的链接,那么这个问题就会更加严重了。
这时我们就要用到 robots.txt 这个文件,它的作用是限制爬虫机器人抓取文件范围。从 Drupal 5 时代起,Drupal 安装包里就包含了这个文件了,它的位置在安装包的根目录下。但是它还不够完美,需要一些改善。
修改Drupal 的默认 robots.txt 文件
抓取延时
第一步要做的就是注释掉 Crawl-delay 这行。除非您的网站规模很大,或者备受爬行机器人的困扰,如果不是这样,那么不需要这行。
Crawl-delay: 10
在 Robots.txt 中,下面提及到规则都可以帮助减少爬虫收取重复内容的数量。
目录
下面这部分是在默认 robots.txt 文件中 Drupal 设置的禁止爬虫访问的实际存在的目录。
Disallow: /database/
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /sites/
Disallow: /themes/
Disallow: /scripts/
Disallow: /updates/
Disallow: /profiles/
文件
下面这部分是 Drupal 的根目录下的默认文件。我重来没有看到这些文嘉被加入索引,但是如果你喜欢可以保留他们不变。但是不要删除 CHANGELOG.txt 这个文件,因为就算过了一段时间,它还是能提醒您 Drupal 的版本号。
Disallow: /CHANGELOG.txt
Disallow: /cron.php
Disallow: /INSTALL.mysql.txt
Disallow: /INSTALL.pgsql.txt
Disallow: /install.php
Disallow: /INSTALL.txt
Disallow: /LICENSE.txt
Disallow: /MAINTAINERS.txt
Disallow: /update.php
Disallow: /UPGRADE.txt
Disallow: /xmlcpc.php
开启 Clean URLs 功能的路径
这是默认 robots.txt 文件中最重要的一部分,因为这里有些问题:
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /contact/
Disallow: /logout/
Disallow: /node/add/
Disallow: /search/
Disallow: /user/register/
Disallow: /user/password/
Disallow: /user/login/
在 Drupal 中,链接的尾部不包含斜线,所以您可以参照下面高亮显示的位置修改 Robots.txt 中的相应规则。
Disallow: /admin/
Disallow: /comment/reply/
Disallow: /contact
Disallow: /logout
Disallow: /node/add
Disallow: /search/
Disallow: /user/register
Disallow: /user/password
Disallow: /user/login
举例来说,每个 node 页面上的“Login or register to post comments”(登录或注册后发表评论)链接地址形式如下:http://mypetal.com/user/login?destination=comment/reply/806%2523comment-form 和 http://mypetal.com/user/register?destination=comment/reply/806%2523comment-form。在默认的 robots.txt 中的规则是不会屏蔽搜索引擎的爬虫抓取这些链接,但是如果您删除上面高亮显示部分末尾的斜线。
没有开启 Clean URLs 功能的路径
下面这部分针对与没有开启 Clean URLs 模块下的规则,您可以参照上面开启 Clean URLs 模块的修改逻辑来修改下面这部分。
Disallow: /?q=admin/
Disallow: /?q=aggregator/
Disallow: /?q=comment/reply/
Disallow: /?q=contact/
Disallow: /?q=logout/
Disallow: /?q=node/add/
Disallow: /?q=search/
Disallow: /?q=user/password/
Disallow: /?q=user/register/
Disallow: /?q=user/login/
如果您没有开启 Clean URLs 模块,并且提交到搜索引擎并生成索引,那么这种页面:http://example.com/?q=node/25 就会拥有 PageRank。如果您正打算开启 Clean URLs 模块,那么别忘了在 .htaccess 中设置301 redirects(重定向):把动态链接重定向到简介链接。
其他规则
我同时推荐您在仔细阅读并理解后添加下面的规则:
在网站中,每个模块都可能添加额外的链接,这样会增加大量的重复内容的页面,同时在搜索引擎抓取页面时增加服务器的负担。在这里为核心模块定制一些额外的规则。
http://mypetal.com/node 页面和 http://mypetal.com/ 页面重复。
添加上面这条规则可以阻止爬虫抓取 http://mypetal.com/node 页面。如果您想对搜索引擎屏蔽所有用 user 页面,只需删除最后的。
如果安装论坛模块、视图模块(Views)或其他包含有按**排序(Sort by **)功能的模块,就需要以上这条规则。
添加上面这条规则可以阻止爬虫抓取 http://mypetal.com/search 链接。而这个链接会进行一个302 redirect 重定向到 http://mypetal.com/search/node 这个页面,而这个页面已经被 Drupal 默认的 Robots.txt 规则屏蔽。
如果您在 Home › Administer › Site configuration 页面改变了默认首页,这样可以对爬虫屏蔽这个链接。或者您可以选择使用 Global Redirect 模块,它会自动重地向到真正的首页页面。
文章说明
- 原文地址:http://tips.webdesign10.com/robots-txt-and-drupal (For Drupal 5)
- Cityreader 对原文进行翻译,并针对 Drupal 6 版本做了相应改动,结合了自己的理解和注释。
- 转载本文请留言,请保留作者名和网页地址:)
Drupal 多站点(multi-site) robots.txt 配置攻略
6.x
Drupal 凭借其强大的扩展性备受使用者的亲睐,而且 multi-site 配置更是一绝(multi-site 是指只用一套 Drupal 程序,同时结合域名的设置,就可以建立多个网站)。本文主要讲述如何在 multi-site 下为每个网站配备的独立 robots.txt 文件。
Multi-site 下 robots.txt 的困惑
在使用 multi-site 技术建立多个网站时可能会碰到这样的问题:一个网站希望被搜索引擎收录,允许爬虫抓取网页,而同一个 Drupal 系统下的另一个网站出于某种原因不希望被搜索引擎爬虫抓取网页。举例来说:网站1 mypetal.com 希望网页被 Google 收录,但是 网站2 car.mypetal.com 是一个案例演示网站,期中的数据不希望被收录到 Google 中。但是当我们打开 Drupal 根目录时就会发现只有一个 robots.txt 文件,这就意味着所有站点都是使用这个 robots.txt,如果修改就会影响到全部站点。
好在我们不是第一个碰到这个问题的人,只要善用搜索功能,不论是搜索 drupal.org 还是 google.com 相信都会找到满意的答案。下面就是我结合自己的搜索结果整理的两个解决方案。
方案1:使用 Drupal 的第三方模块 RobotTxts
从 Drupal 5 时代起,对应这个问题就给出了第三方解决方案 RobotsTxt 模块,点击这里进入 http://drupal.org/project/robotstxt。这个模块使用原理就是:每个网站都可以在后台设置 robots 内容,然后保存在数据库系统变量的表中,当搜索引擎访问时动态生成 robots.txt 文件内容。因为每个网站都有独立的系统变量数据表,所以就可以设置不同的 robots.txt 的访问规则。
这个模块使用起来十分方便,但美中不足是又增加了一个模块,对于我们这些租用虚拟主机、系统资源配额捉襟见肘、对 Drupal 第三方模块无限渴望、但又多装几个模块就会白屏的人来说,势必又是增加一笔内存开销。所以如果像我们一样的拮据,我还为您准备了第二种解决方案。
方案2:设置 .htaccess 让暴风雨来得更猛烈些吧
.htaccess 是个好东西,在这里它同样能帮我们解决这个问题,但前提是:
- 您使用的服务器(/虚拟主机)支持 .htaccess
- 您使用的 php 服务器(/虚拟主机)安装了mod_rewrite 模块,换句话说您可以正常开启使用 Clean URLs 功能
现在就开始修改 .htaccess
重要提示:在修改 .htaccess 时,如果有任何错误(包括书写和格式错误),都将可能引起 错误代码 500 的错误,甚至于使网页无法打开!所以请在修改前,备份原文件,仔细阅读并理解下面内容,修改后请检查网页打开是否正常,并尝试打开不同网站的 robots.txt 是否正常显示,例如:http://mypetal.com/robots.txt 和 http://car.mypetal.com/robots.txt。
打开 /.htaccess 文件,查找:
在后面添加如下规则:
RewriteCond %{REQUEST_URI} !^(.*)/sites/(.*)$ [NC]
RewriteRule ^(.*)robots.txt$ /sites/%{HTTP_HOST}/files/robots.txt [L]
注意这三行代码针对的是二级子域名的网站,例如二级子域名网站 car.mypetal.com,当 搜索引擎爬虫读取该网站的 robots.txt 时会自动定位到 /sites/car.mypetal.com/files/ robots.txt 文件。而对于一级域名网站 mypetal.com,仍然读取的是 /robots.txt 文件。这是我所希望的解决方案,但是如果您在一个 Drupal 系统上同时建立多个一级域名的网站,例如同时有 mypetal.com 和 cooos.com, 那么请您先阅读 SEO Drupal .htaccess 文件(适合multi-site),修改诸如: www.mypetal.com 重定向到 mypetal.com 的文章后,删除上面3行规则中的高亮显示的第一行规则。