Page Title

The word "title" is a bit overloaded. Every piece of content in Drupal has a title, and so does every page. The page title is the one found in the HTML head inside the <title> tag. It is also used on SERPs (Search Engine Result Pages) and can greatly enhance your websites SEO (Search Engine Optimization).

This module gives you granular control over the page title. You can specify patterns for how the title should be structured and, on content creation pages, specify the page title separately to the content's title.

Page Title 2

What features are in Page Title 2?

  • Token Integration: This module integrates with the fantastic Token module. This opens up a whole world of extra stuff you can put into the page title such as the highest weighted term for a node or, in fact, any other content you'd like to shove in their via the Token API (you can even build your own TokenAPI addons to get stuff into the Page Title)! This is made even more funky when you enable the CCK module as CCK exposes field values to the Token Module.
  • Granular Control: Want the page title override field for the Book and Story node types, but not for Banner or Image? It's possible to enable the Page Title field for specific node types and, as a new feature, even on non-nodes too. Page titles can be set for terms and for users (since Page Title 2.1). This feature can be configured on the Admin > Content > Page Title page.
  • Token Patterns per-content type: You can configure each individual content types pattern (this applied to nodes and terms). For example: you may want a generic default pattern, however you want your forum nodes to use a different pattern (eg highest weighted term for a forum might be the board it's in). You simply set a default pattern and an overriding specific pattern for other content types, independent of whether the Page Title field is enabled for the type or not.
  • Other contexts... Page Title supports user profile, forum root and blog homepage contexts too. This means you could create a user with a username such as jbloggs but define the page title for user profiles and blog homepages to use a better name such as Joe Bloggs.
  • Pagination Suffix: One of the things you may noticed about Drupal in terms of SEO is that whenever you go through a paged list of content, the page title never changes. Google Webmaster Tools will flag this up as a problem as you essentially have several different pages all being identified with the same page title. A new feature, introduced in Page Title 2.1, is the ability to append the page number as a suffix pattern. This means any URL which contains something like page=2 in the query string will also have an optional token pattern suffixed onto the end of it. Important: for this feature to work properly, you need to be running Token 1.12 or later.
  • Views Integration: Page Title provides its own Page Display which allows you to provide a Page Title separately to the normal Title. There is also an option to provide a Page Title for each argument as well. This feature is still early and in need of testing. Feedback would be appreciated!

Handy modules which work with Page Title

There are now a few modules which help you use Page Title to get the best out of your SEO.

  • Content Optimizer - provides you with an inline keyword analysis of your content.
  • SEO Friend - Generate reports of content SEO across the site (eg, which pages are missing Page Titles or Meta Tags)


The Drupal 6 and 7 branches now both come equipped with a SimpleTest. This should help keep the module stable during development, however I would appreciate any feedback on the tests (eg, where is it lacking? What could I test better, and (importantly) how?).

Page Title API

Introduced in version 2.4, the module now has an API. There are 3 exposed hooks which allow your own module to alter the Page Title Pattern, Page Title token value and add settings to the Settings page.

The 3 hooks are:

  • hook_page_title_pattern_alter(&$pattern, &$types)
  • hook_page_title_alter(&$title)
  • hook_page_title_settings()

I am in the process of writing up some developer documentation on this but, in the mean time as a basic example of how to use the 3 hooks, see the implementations for core module support, such as the node module support.

Drupal version specific notes

Drupal 5

Due to Drupal 5's theming system, in addition to the normal installation steps, this module requires you to edit your theme’s template files. Installation information can be found in the documentation installation section.

Development for the Drupal 5 branch has ceased as 5.x-2.3 - I simply to not have the time to backport all the work to Drupal 5, especially now Drupal 7 released and Drupal 5 is no longer supported.

Drupal 6

The above does not apply to Drupal 6. You no longer need to change your theme due to Drupal 6's improved theming API! Thanks to wayland76 for pointing this out.

Views integration is here!. You can finally start to work on the SEO of your views Listing pages!

Drupal 7

There is now an official release for Drupal 7. Both the Drupal 6 and Drupal 7 branch in feature-sync.


I have approved the request to make this module as accessibly as possible my mglifford in his issue requesting improved accessibility (#D7AX). I am not an accessibility specialist, so any assistance here is appreciated.

Known issues/incompatibilities

  • There were previously issues with Fusion based themes. This has been resolved in Fusion 6.x-1.12.

Project Information