Posted to Ben Finklea's blog on May 24th, 2010

On-Page Drupal SEO Tips for Headings

Search engine-optimizing your website is a process that takes time and knowledge. There is no magic SEO wand that you can wave to instantaneously appear #1 in Google – the closest thing to it in our opinion, The SEO Checklist, is the most efficient way to SEO a Drupal-powered site. But with every completed stage of the process, you are making progress!

After keyword research, your next step in the SEO process is on-page optimization, aka configuring and writing website elements that affect the way your site is presented to search engines and human readers. You need to configure and writing your page titles, rename your site, set up great navigation, optimize and use “clean” URLs, all while using keywords along the way.

One of the most important on-page elements your site needs to have optimized is your headings. Not to be confused with page titles, headings are the visible text at the top of a web page and are read by both spiders and human alike. Join me after the jump for on-page Drupal SEO tips for your website’s headings.


HTML, and its follow-ons, allow for a special kind of text called Headings. Headings are different from page titles in that they are visible while page titles are not. Headings normally show up large and bold at the top of your website. These are excellent indicators of what the page is about and should be essential to the site structure. Unfortunately, they are easily abused.

For general SEO best practices, you should use only one H1 tag on each page of your website. However, many site owners put H1 tags around nearly anything that they want bolded, bigger, or search engine-optimized. This is a mistake and it’s confusing to both human readers and search engine spiders.

For example: What if you are standing in a bookstore and opened a book called My Life in Brazil. You open to Chapter 1 and see the title, Chapter 1: I like Brazil, but later in the book you see big, bold title says ‘How to Be a Successful Chef’ and a chapter or two later you read ‘How to Play Chess’. What is this book about?! Chances are you are going to put it back on the shelf and head over to the coffee shop for a latte. Unfortunately, many Drupal site owners are making this same mistake.

What Google Has to Say

Matt Cutts, the director of Google's search spam prevention team, released a video in early 2009 that said that having 2 or 3 H1 tags per page is OK if they're truly defining sections of the page that should be set off as different ideas or concepts. Check out the video for yourself:

HTML Header Tags

As an identifier, the H1 tag on your web site works just like a chapter title in a book. The text between H1 and /H1 should communicate exactly what that one page is all about. If there is further information or subsections on the page, you can use H2, H3, all the way up to H6 heading tags to show hierarchical organization on the page. While it is OK to have multiple H2 to H6 tags,
be sure to only use a single H1 on any one page of your web site.

Imagine that you're writing an outline. So, each H2 tag should be a subtopic of the H1 tag. Don't use a hanging heading tag, either. Only use an H6 if you have an H5 above it, do not use an H5 unless you have an H4 above it, and so on. Make sure the body text in each section is relevant to the headings above it.

Each page has its own headings. The headings from your front page don't carry over to any other page. Ideally, each page of your site has a different heading that accurately reflects its own unique content to your users and the search engines.

How Drupal Handles Headings

The default Drupal theme—Garland—doesn't handle H1 tags particularly well. In fact, it assumes that the most important thing on every single page of your web site is the site name. While it may be important for the front page to have the H1 as the site name (or maybe not, more on that a bit later), it is certainly not the most important thing on every single page of your site. On the deeper pages, the most important thing on the page will vary. It could be a category, a product, a service, the name of your CEO, or whatever that page is about.

Other themes are even worse. I won't name them outright but some themes (Pushbutton) put H1 tags around the entire node titles on the front page. That's a disaster. It's like saying that this page is about, well, everything. I'm not saying not to use those themes. They're actually nice, usable, and compatible themes. Just be sure you pay attention and fix any SEO-related problems with the theme that you choose.

Ideally, here's how you want to do your heading tags in Drupal:

• Front page of your site: H1 should be around the most important keywords that you want to rank for your front page. If you list nodes on your front page, put H2 tags around each node title.

• Single Node view: H1 should be around the most important keywords that you want to rank for that particular page. Use H2 around any subsection headings of that page—this is likely done in the node body.

• Lists (nodes, users, taxonomies, and so on): H1 should be around the most important keywords that describe that list. (For example, if it's a category page on an e-commerce site, what are the keywords that describe that category?). Put H2 around the titles in the list.

In Drupal, the best way to build H1 tags into your site is to put them into the theme. Be sparing though! Too many headings make a page hard to read and difficult for the search engines to determine what it's all about.

Thank You For Reading!

Did you find this post entertaining, engaging, or helpful? Please repost, retweet, or redistribute to any of the social sites of your choice, and please subscribe to our RSS feed to receive daily fodder. For every RSS subscription Volacci gets, a kitten earns its whiskers. You like kittens, don’t you? Do the right thing, then. Subscribe.

I am also are very interested in what you have to say in response to this blog post. As always I am very grateful for you, our reader, and greatly value your input. Please start a conversation with a comment below.