Drupal SEO 入门

转自: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 添加规则对搜索引擎的爬虫进行屏蔽。 

文章说明

  • 参考文章地址:
    1. Drupal SEO Tutorial Update
    2. drupal Seo 插件
  • Cityreader 对原文进行翻译,结合了自己的理解和注释。
  • 转载本文请留言,请保留作者名和网页地址:)
  • Petal SEO 为您提供更多精彩的 Drupal 文章

Drupal SEO 常用模块

本文罗列了 Drupal SEO 常用模块,定期更新中……

模块 简介 链接 推荐
Pathauto 基于文章标题自动生成对搜索引擎友好的链接。 This is currently the recommended release for 6.x.
Google Analytics 网站统计与客户追踪。 This is currently the recommended release for 6.x.
Page title 允许您为网站所有的 node 页面设置 <title> 标签。 This is currently the recommended release for 6.x.
Global redirect 修正开启简洁链接和 Pathauto 模块后出现常见的链接问题。 This is currently the recommended release for 6.x.
Taxonomy title 允许您为网站所有的 taxonomy 页面设置 <title> 标签。 This is currently the recommended release for 6.x.
Meta tags (曾用名:Nodewords) 允许您自由编辑您网站上node、分类、view等页面上的 meta 标签。 This is currently the recommended release for 6.x.
XML Site map 创建和 Sitemaps.org 标准相兼容的,搜索引擎可读的动态网站地图。 This is currently the recommended release for 6.x.
URL list 创建纯文本的网站地图,包含您网站上的所有链接。 This is currently the recommended release for 6.x.
Site map 创建纯文本的网站地图。 This is currently the recommended release for 6.x.
Syndication 创建一个网页,包含所有的 RSS feed。 This is currently the recommended release for 6.x.

文章说明

  • 参考文章:Search Engine Optimization
  • Cityreader 对原文进行翻译,结合了自己的理解和注释。
  • 转载本文请留言,请保留作者名和网页地址:)
  • Petal SEO 为您提供更多精彩的 Drupal 文章

SEO Drupal .htaccess 文件(适合multi-site)

Drupal版本: 

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 为我们提供了两种解决方案:

  1. 把链接 http://mypetal.com 重定向到 http://www.mypetal.com
  2. 把链接 http://www.mypetal.com 重定向到 http://mypetal.com

这两种方案都是为了确保只有一种形式的链接,没有优劣之分。

第1种方案,查找下面代码:

  # RewriteCond %{HTTP_HOST} ^ example\. com$ [NC]
  # RewriteRule ^(.*)$ http://www. example. com/$1 [L,R=301]

删除上面高亮显示的 #,并把 example com 改为您的域名。

第2种方案,查找下面代码:

  # RewriteCond %{HTTP_HOST} ^ example\. com$ [NC]
  # RewriteRule ^(.*)$ http://www. example. com/$1 [L,R=301]

删除上面高亮显示的 #,并把 example com 改为您的域名。 

Multi-site(多站点)下 Drupal .htaccess 配置

 第1种方案,查找下面代码:

  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

在后面添加如下代码:

  RewriteCond %{HTTP_HOST} ^([a-z0-9-]+\.[a-z]{2,6})$ [NC]
  RewriteRule ^ http://www.%1%{REQUEST_URI} [L,R=301]

第2种方案,查找下面代码:

  # RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
  # RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

在后面添加如下代码:

  RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301]

参考内容

修改 Drupal 的 robots.txt 文件

Drupal版本: 

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 设置的禁止爬虫访问的实际存在的目录。 

# Directories
Disallow: /database/
Disallow: /includes/
Disallow: /misc/
Disallow: /modules/
Disallow: /sites/
Disallow: /themes/
Disallow: /scripts/
Disallow: /updates/
Disallow: /profiles/
这部分可以保持不变。只要记住由于默认设置中 Drupal 禁止爬虫抓取 /sites//modules/ 以及 /themes/ 这三个目录,所以爬虫抓取不到您网站的 logo 图片。但是如果您自定义了 logo 图片,记得把它放在其他文件夹内 (如: /files/ ),然后用一个关键字作为名字,重明名 logo 图片。

文件

下面这部分是 Drupal 的根目录下的默认文件。我重来没有看到这些文嘉被加入索引,但是如果你喜欢可以保留他们不变。但是不要删除 CHANGELOG.txt 这个文件,因为就算过了一段时间,它还是能提醒您 Drupal 的版本号。

# FilesDisallow: /xmlrpc.php
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 文件中最重要的一部分,因为这里有些问题: 

# Paths (clean URLs)
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 中的相应规则。 

# Paths (clean URLs)
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-formhttp://mypetal.com/user/register?destination=comment/reply/806%2523comment-form。在默认的 robots.txt 中的规则是不会屏蔽搜索引擎的爬虫抓取这些链接,但是如果您删除上面高亮显示部分末尾的斜线。 

没有开启 Clean URLs 功能的路径

下面这部分针对与没有开启 Clean URLs 模块下的规则,您可以参照上面开启 Clean URLs 模块的修改逻辑来修改下面这部分。

# Paths (no 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(重定向):把动态链接重定向到简介链接。

其他规则

我同时推荐您在仔细阅读并理解后添加下面的规则:

在网站中,每个模块都可能添加额外的链接,这样会增加大量的重复内容的页面,同时在搜索引擎抓取页面时增加服务器的负担。在这里为核心模块定制一些额外的规则。

Disallow: /node$

http://mypetal.com/node 页面和 http://mypetal.com/ 页面重复。

Disallow: /user$

添加上面这条规则可以阻止爬虫抓取 http://mypetal.com/node 页面。如果您想对搜索引擎屏蔽所有用 user 页面,只需删除最后的。

Disallow: /*sort=

如果安装论坛模块、视图模块(Views)或其他包含有按**排序(Sort by **)功能的模块,就需要以上这条规则。

Disallow: /search$

添加上面这条规则可以阻止爬虫抓取 http://mypetal.com/search 链接。而这个链接会进行一个302 redirect 重定向到 http://mypetal.com/search/node 这个页面,而这个页面已经被 Drupal 默认的 Robots.txt 规则屏蔽。

Disallow: [ front page]  (请把 [front page] 改为您指定的首页)

如果您在 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 配置攻略

Drupal版本: 

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 是个好东西,在这里它同样能帮我们解决这个问题,但前提是:

  1. 您使用的服务器(/虚拟主机)支持 .htaccess
  2. 您使用的 php 服务器(/虚拟主机)安装了mod_rewrite 模块,换句话说您可以正常开启使用 Clean URLs 功能

现在就开始修改 .htaccess

重要提示:在修改 .htaccess 时,如果有任何错误(包括书写和格式错误),都将可能引起 错误代码 500 的错误,甚至于使网页无法打开!所以请在修改前,备份原文件,仔细阅读并理解下面内容,修改后请检查网页打开是否正常,并尝试打开不同网站的 robots.txt 是否正常显示,例如:http://mypetal.com/robots.txt 和 http://car.mypetal.com/robots.txt。

打开 /.htaccess 文件,查找:

RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

在后面添加如下规则: 

   RewriteCond %{HTTP_HOST} \.([a-z0-9-]+\.[a-z]{2,6})$ [NC]
  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行规则中的高亮显示的第一行规则。

猜你喜欢

转载自hao3721.iteye.com/blog/1933163
seo