Adding Meta Tags to Drupal Content
Search engine optimization (SEO) is often at the top of the to-do list when planning a site.
There was a time when the <meta> tag had been considered one way to help your pages rise to the top of a search engine result. Although that is not always the case anymore, it can still be useful to meta tags available to search engines so they can use it if they choose.
In this tutorial, we'll explore the Meta tags module, a fast and easy way to add metadata to your nodes, terms, and users.
If you used the Nodewords module in Drupal 6, this is the best replacement in Drupal 7.
Let's install the Meta tags module and see what else it can do.
Enable the modules
The Meta tags module requires you to install three modules:
- Meta tags: http://drupal.org/project/metatag
- CTools: http://drupal.org/project/ctools
- Token: http://drupal.org/project/token
You will see that the Meta Tags module comes with additional modules you can enable, depending on the needs of your site. In this tutorial, we are focusing on the default Meta Tags module.
Configure Meta Tags Module
The Meta Tags module comes already configured but you can make changes.
- Click on Configuration in the black admin menu bar.
- Click on Meta tags in the Search and Metadata box on the left side of the screen.
Notice there are four global settings. Click on each and observe what you get by default. All nodes, terms, and users will have the same configuration by default. But that doesn't have to be the case.
Add a Default Meta Tag
Lets configure the meta tags for the Article content type.
- Click on Add a meta tag default
- Selet Article from the Type dropdown.
- Enter the token [node:content-type:description] in the abstract field.
When you create an Article node from now on, the description of the Article content type will appear as such:
<meta name="abstract" content="Use articles for time-sensitive content like news, press releases or blog posts." />
Notice the Inheritance
The Article content type is node, obviously, therefore it appears under the Node metatag. You may have noticed that the default tokens were included in the Article meta tag. That's because they were inherited but that doesn't mean you can't provided something else.
For example, you could place the [node:summary] token in the abstract and the [node:content-type:description] in the Description, it's up to you. Of course there are other tokens you can choose from (see the link "Browse available tokens" at the bottom of the token edit form).
Let's see what this does when we create a node
Go to Add content and add an Article. Scroll down and click on the Meta tags tab. Notice your options. We can see the token we added to the Articles meta tag but notice we can also edit these fields. Your users can do the same if they have permission.
Do users have to enter meta tag data?
The answer is no. As we have demonstrated so far, the fields in the meta tag module can be populated using the data associated with the token. For example, if we return the Configuration > Meta tags and click edit for the Article meta tag, we can add the token for the tag field that comes with the Article content type. This will automatically include the terms your user inserts into the Tags field.
For my example, I entered the term Drupal into the Tags field and now my meta tag reflects the same.
<meta name="keywords" content="Drupal" />
Terms and Users
The process is the same when setting up meta data for vocabulary terms and users. As you might have guessed, your users might have the ability to add vocabulary terms to the Tags field but they aren't given the opportunity to add meta data for that term. This is something you will need to take into consideration when planning the user of meta data via the Meta Tags module.
The permissions for the Meta Tags module are simple. You can administer and you can edit if you have permission to edit the node, term, or user. Another thing to note is the edit feature is an all or nothing deal. You might want to give users access to edit their meta data but restrict their ability to edit the meta data when they create a node. At this time, the level of permission granularity does not appear to an option.
The power of the token makes this Meta Tags module a handy tool. It's one thing to get someone to enter data into the fields you provide, it might be another to get them to do the same for meta data. The tokens solve this problem and give you the option to control what you want to be included - making this an SEO feature that runs itself.
Note - When I created this tutorial, I noticed that the text I enter for the abstract and keyword for terms and users was not available if I wanted to edit it, like it was for a node. The data was stored and continued to display when I viewed the source of the page. There are a couple of patches located here http://drupal.org/node/1845326 and the developers are asking that we test it for them.