Effective use of a page title element, meta description and meta keyword tags can lead to significantly better search results for your site's content. Achieving better results in any Serendipity blog is easy thanks to the Serendipity "HTML Meta-Tags" plugin.
I have recently completed modifications to version 0.8 of this plugin with the assistance of the Serendipity user and developer community. These new and modified features unleash the hidden power of a plugin that may make the difference between an entire Serendipity weblog, or specific blog entry, being found by the masses and one that is rarely, if ever, viewed by anyone other than its author.
Monday, November 5. 2007
Better search results with meta details
The objective of anyone distributing content via the internet is to connect that content with those who are seeking it. In the baseball-themed movie "Field of Dreams", there is a ghostly whisper repeating "If you build it, he will come". This does not necessarily apply to blogs. Just because you "build it" does not guarantee anyone will come!
Have you noticed I have not been focussing on your site/domain/homepage? While you certainly want your primary start/home page to be a frequent landing page (and we will discuss that), it is your regularly submitted content that will draw new and loyal visitors alike. So let go of the mindset "get them to my site" and embrace the notion of "get them to my content". This is the objective of the HTML META-tags plugin!
This article discusses the plugin from a functional perspective - "how" this plugin actually achieves the objective of better search engine results. What comprises effective title elements, meta descriptions and meta keywords is an area of expertise unto itself, most often associated with the acronym SEO and is beyond the scope of this article.
Without the HTML META-tags plugin
Your Serendipity template will emit a page title element via the index.tpl file. The specific code usually looks something like this:
The title element emitted by that code will be dependent upon what page the visitor is viewing. From your start page, the title element will, by default, be emitted as your blog title. On a single entry page, Serendipity will emit the title element as "entry title - blog title". For an archive page (ie, all entries for a given month), the title element will be emitted as "blog title - entries from month, year". Serendipity does a good job of generating the title element under most circumstances. The single entry page, however, does not always generate the ideal page title element. If I really want to call a visitor's attention to this particular article, then how is appending my blog's name going to help me in search results? Similarly - just because the entry title is easy to read does not mean it is the most effective from a search engine perspective.
Note also that, by default, Serendipity is not generating any meta description, which is another possible opportunity for search engine friendly information. Keywords are likewise not generated by default. Both of these meta tags are beneficial to the entire site, as well as any particular entry - both as terms of search, as well as the content of a generated SERP. These limitations are exactly what the HTML META-tags plugin was designed to improve upon. Using the plugin, we can change certain default behavior site-wide as well as on a per-entry basis.
Fine tune search results with the HTML META-tags plugin
Following plugin installation, proceed to "Configure Plugins" and select the HTML META-tags plugin. The configuration screen looks like Figure 1 below:

HTML Tags for keywords: The html tags you provide here will help the plugin generate automated keywords for every entry for which you do not provide an entry-specific keyword phrase. The default is the bold and strong tags, but you can populate this field with whatever HTML tags you desire. Note the leading "<" and trailing ">" characters are omitted from the tag list. The plugin will search the entry body (NOT the extended body) looking for these HTML tags, and if it finds them, the text enclosed within those tags will be used to generate meta keywords. If the auto-generation of an entry keyword results in a blank value (ie, nothing in the entry was enclosed within the specified tags), the plugin will use the "HTML default meta keywords" value discussed below, provided it too is not blank. If both evaluate to blank, no meta keyword phrase will be emitted.
HTML default meta description: The description you provide here will serve as the site-wide meta description tag for all pages except single entry pages. The meta description tag is returned by some search engines as the result of a search query on its SERP. Second only to the title element, the meta description plays a vital role in how/when/why your site, or entry specific page, is returned by a search query. As previously mentioned, this default value is for non-single entry pages, such as your start page, archive pages, or any other page that does not offer an option to provide its own specifically targeted meta description tag.
HTML default meta keywords: The keywords you provide here serve as the site-wide meta keywords tag for all pages, including single-entry pages if entry-specific keywords are not provided for a particular entry. While meta keywords do not carry much, if any relevance in search engine results (thanks to previous abuse), they can still contribute to the overall search equation. Specific words used here should be those contained within the entry title, first or second paragraph of your entry, page title element, meta description or entry heading.
Direct traffic with entry-specific meta data
Your most powerful search results can occur based on an entry specific values. Selecting "Edit Entries" or "New Entry" from your Serendipity Admin panel will reveal Figure 2 below in the Advanced Options portion of the entry editor page:

Note that all fields are entry-specific and have "fall back" provisions if blank. The length of each field is computed for word and character count each time the entry is saved, which will prove useful for those optimizing the total word and character count combination of page title element, meta description and meta keyword phrase. As noted, suggestions regarding word and character count/length are merely suggestions, and do not represent any actual technical limitation.
META-Description: The description you provide here serves as the entry specific meta description. If this field is left empty, the plugin will auto-generate a meta description consisting of the first 120 characters of the entry body. If that first 120 characters is sufficient, leave it alone! No need to "re-invent the wheel". If, however, the first 120 characters does not provide the concise description you desire, then override with a value that better describes the entry.
Meta-Keywords: The keywords you provide here serves as the entry specific meta keyword phrase. If blank, the plugin will attempt to automatically generate a keyword phrase based on the plugin configuration field "HTML Tags for keywords". If the auto-generation of an entry keyword results in nothing (ie, the function returns a blank value), the plugin will use the "HTML default meta keywords" for the entry.
HTML page title element: The HTML page title element is very important to most search engines. Savvy blog authors will use this fact to their advantage - supplying entry-specific page title elements for maximum search engine results. As noted, if this field is not provided, the resulting page title element will be generated according to the template default value. For most templates, this will result in a page title element of "Entry Title - Blog Title".
Plugin Optimization
Users may need to make slight changes to get the most from this plugin. These steps are optional, but should ensure the maximum benefit from using the HTML META - tag plugin.
Plugin Placement: Ideally, the plugin will be listed as the first plugin that emits content into the <head> portion of your generated source. Examples of other plugins that emit content into the document <head> include the HTML-Code inside head (HTML-Head Nugget) plugin, Google Analytics and others. Drag the HTML META - tag plugin to a point where it is listed above these other event plugins.
Frontend Hook Placement: When a component of Serendipity "calls" something else, it is referred to as a "hook" (overly simplified explanation). In plain language, your template's index.tpl file allows plugins to insert code where needed. This particular plugin is designed to insert code into the <head> portion of your generated source as mentioned above. Ideally, the output of the HTML META - tags plugin will be inserted immediately after a template's page title element.
Review your template's index.tpl file using your favorite text editor. Within the first several lines of that file, you should see something that looks like this:
Somewhere after those lines, but still contained within the <head> tag should be this:
You need to be careful here - a second instance of this code will also exist after the closing </head> tag. You want the instance of this expression before the closing </head> tag. Ideally, what we want is to relocate this "hook" so that is occurs immediately after the <title> element. In other words, what we would really like to see is this:
If modifying your template's index.tpl file is beyond your "comfort zone", do not proceed with the modifications!!! The plugin will work without these modifications, albeit at less than optimal. You also have the opportunity to ask for assistance on the s9y user forums, or personally ask me for assistance.
Conclusion
The HTML META - tag plugin should not be considered "optional". It is a "necessity" for anyone committed to connecting the content of their Serendipity site to users who may benefit from that content. Generating content is, afterall, the point of hosting your blog, so you stand nothing to lose, and everything to gain, by optimizing key information search engines utilize to get better search results.
If you enjoyed this article, please bookmark it at your favorite social bookmarking sites using the Bookmark button below so that others will enjoy it as well!
=Don=
Have you noticed I have not been focussing on your site/domain/homepage? While you certainly want your primary start/home page to be a frequent landing page (and we will discuss that), it is your regularly submitted content that will draw new and loyal visitors alike. So let go of the mindset "get them to my site" and embrace the notion of "get them to my content". This is the objective of the HTML META-tags plugin!
This article discusses the plugin from a functional perspective - "how" this plugin actually achieves the objective of better search engine results. What comprises effective title elements, meta descriptions and meta keywords is an area of expertise unto itself, most often associated with the acronym SEO and is beyond the scope of this article.
Without the HTML META-tags plugin
Your Serendipity template will emit a page title element via the index.tpl file. The specific code usually looks something like this:
<title>{$head_title|@default:$blogTitle}{if $head_subtitle} - {$head_subtitle}{/if}</title>. The title element emitted by that code will be dependent upon what page the visitor is viewing. From your start page, the title element will, by default, be emitted as your blog title. On a single entry page, Serendipity will emit the title element as "entry title - blog title". For an archive page (ie, all entries for a given month), the title element will be emitted as "blog title - entries from month, year". Serendipity does a good job of generating the title element under most circumstances. The single entry page, however, does not always generate the ideal page title element. If I really want to call a visitor's attention to this particular article, then how is appending my blog's name going to help me in search results? Similarly - just because the entry title is easy to read does not mean it is the most effective from a search engine perspective.
Note also that, by default, Serendipity is not generating any meta description, which is another possible opportunity for search engine friendly information. Keywords are likewise not generated by default. Both of these meta tags are beneficial to the entire site, as well as any particular entry - both as terms of search, as well as the content of a generated SERP. These limitations are exactly what the HTML META-tags plugin was designed to improve upon. Using the plugin, we can change certain default behavior site-wide as well as on a per-entry basis.
Fine tune search results with the HTML META-tags plugin
Following plugin installation, proceed to "Configure Plugins" and select the HTML META-tags plugin. The configuration screen looks like Figure 1 below:

Figure 1 - HTML META-tag configuration
HTML Tags for keywords: The html tags you provide here will help the plugin generate automated keywords for every entry for which you do not provide an entry-specific keyword phrase. The default is the bold and strong tags, but you can populate this field with whatever HTML tags you desire. Note the leading "<" and trailing ">" characters are omitted from the tag list. The plugin will search the entry body (NOT the extended body) looking for these HTML tags, and if it finds them, the text enclosed within those tags will be used to generate meta keywords. If the auto-generation of an entry keyword results in a blank value (ie, nothing in the entry was enclosed within the specified tags), the plugin will use the "HTML default meta keywords" value discussed below, provided it too is not blank. If both evaluate to blank, no meta keyword phrase will be emitted.
HTML default meta description: The description you provide here will serve as the site-wide meta description tag for all pages except single entry pages. The meta description tag is returned by some search engines as the result of a search query on its SERP. Second only to the title element, the meta description plays a vital role in how/when/why your site, or entry specific page, is returned by a search query. As previously mentioned, this default value is for non-single entry pages, such as your start page, archive pages, or any other page that does not offer an option to provide its own specifically targeted meta description tag.
HTML default meta keywords: The keywords you provide here serve as the site-wide meta keywords tag for all pages, including single-entry pages if entry-specific keywords are not provided for a particular entry. While meta keywords do not carry much, if any relevance in search engine results (thanks to previous abuse), they can still contribute to the overall search equation. Specific words used here should be those contained within the entry title, first or second paragraph of your entry, page title element, meta description or entry heading.
Direct traffic with entry-specific meta data
Your most powerful search results can occur based on an entry specific values. Selecting "Edit Entries" or "New Entry" from your Serendipity Admin panel will reveal Figure 2 below in the Advanced Options portion of the entry editor page:

Figure 2 - HTML META-tags entry properties
Note that all fields are entry-specific and have "fall back" provisions if blank. The length of each field is computed for word and character count each time the entry is saved, which will prove useful for those optimizing the total word and character count combination of page title element, meta description and meta keyword phrase. As noted, suggestions regarding word and character count/length are merely suggestions, and do not represent any actual technical limitation.
META-Description: The description you provide here serves as the entry specific meta description. If this field is left empty, the plugin will auto-generate a meta description consisting of the first 120 characters of the entry body. If that first 120 characters is sufficient, leave it alone! No need to "re-invent the wheel". If, however, the first 120 characters does not provide the concise description you desire, then override with a value that better describes the entry.
Meta-Keywords: The keywords you provide here serves as the entry specific meta keyword phrase. If blank, the plugin will attempt to automatically generate a keyword phrase based on the plugin configuration field "HTML Tags for keywords". If the auto-generation of an entry keyword results in nothing (ie, the function returns a blank value), the plugin will use the "HTML default meta keywords" for the entry.
HTML page title element: The HTML page title element is very important to most search engines. Savvy blog authors will use this fact to their advantage - supplying entry-specific page title elements for maximum search engine results. As noted, if this field is not provided, the resulting page title element will be generated according to the template default value. For most templates, this will result in a page title element of "Entry Title - Blog Title".
Plugin Optimization
Users may need to make slight changes to get the most from this plugin. These steps are optional, but should ensure the maximum benefit from using the HTML META - tag plugin.
Plugin Placement: Ideally, the plugin will be listed as the first plugin that emits content into the <head> portion of your generated source. Examples of other plugins that emit content into the document <head> include the HTML-Code inside head (HTML-Head Nugget) plugin, Google Analytics and others. Drag the HTML META - tag plugin to a point where it is listed above these other event plugins.
Frontend Hook Placement: When a component of Serendipity "calls" something else, it is referred to as a "hook" (overly simplified explanation). In plain language, your template's index.tpl file allows plugins to insert code where needed. This particular plugin is designed to insert code into the <head> portion of your generated source as mentioned above. Ideally, the output of the HTML META - tags plugin will be inserted immediately after a template's page title element.
Review your template's index.tpl file using your favorite text editor. Within the first several lines of that file, you should see something that looks like this:
<head>
<title>{$head_title|@default:$blogTitle}{if $head_subtitle} - {$head_subtitle}{/if}</title>
Somewhere after those lines, but still contained within the <head> tag should be this:
{serendipity_hookPlugin hook="frontend_header"}You need to be careful here - a second instance of this code will also exist after the closing </head> tag. You want the instance of this expression before the closing </head> tag. Ideally, what we want is to relocate this "hook" so that is occurs immediately after the <title> element. In other words, what we would really like to see is this:
<head>
<title>{$head_title|@default:$blogTitle}{if $head_subtitle} - {$head_subtitle}{/if}</title>
{serendipity_hookPlugin hook="frontend_header"}
If modifying your template's index.tpl file is beyond your "comfort zone", do not proceed with the modifications!!! The plugin will work without these modifications, albeit at less than optimal. You also have the opportunity to ask for assistance on the s9y user forums, or personally ask me for assistance.
Conclusion
The HTML META - tag plugin should not be considered "optional". It is a "necessity" for anyone committed to connecting the content of their Serendipity site to users who may benefit from that content. Generating content is, afterall, the point of hosting your blog, so you stand nothing to lose, and everything to gain, by optimizing key information search engines utilize to get better search results.
If you enjoyed this article, please bookmark it at your favorite social bookmarking sites using the Bookmark button below so that others will enjoy it as well!
=Don=
9 Comments
| 4 Trackbacks
Defined tags for this entry: Serendipity - Plugins, Serendipity - Tutorials
Trackbacks
Making your s9y template work better with SEO in mind
When it comes to SEO, I'm no expert, I know what makes sense, I take a lot that I see around the 'Net with a grain of salt, and whenever possible I experiment, and I take advice from experts. So far I've done OK, I usually rank in the top half dozen pages
When it comes to SEO, I'm no expert, I know what makes sense, I take a lot that I see around the 'Net with a grain of salt, and whenever possible I experiment, and I take advice from experts. So far I've done OK, I usually rank in the top half dozen pages
SEO and meta tags for s9y, updated plugin
Recently there has been a lot of discussion about using SEO on Serendipity powered blogs, which has resulted in at least one plugin update and many suggestions for SEO improvements in templates. The meta description event plugin has been updated by Don
Recently there has been a lot of discussion about using SEO on Serendipity powered blogs, which has resulted in at least one plugin update and many suggestions for SEO improvements in templates. The meta description event plugin has been updated by Don
Google now accounts for 63% of all searches
Google's share of Internet search in August has been announced by comScore, and accounted for 63% of all searches globally. This is a massive increase over previous figures and Serendipity bloggers can take advantage of s9y's naturally good code and a cou
Google's share of Internet search in August has been announced by comScore, and accounted for 63% of all searches globally. This is a massive increase over previous figures and Serendipity bloggers can take advantage of s9y's naturally good code and a cou
Custom meta details for Serendipity static pages
Your site's content can rank higher in search engine results through the use of page-specific title element, meta descriptions and meta keywords. The Serendipity HTML META-tags plugin simplifies this task for entries, as I discussed in Better search res
Your site's content can rank higher in search engine results through the use of page-specific title element, meta descriptions and meta keywords. The Serendipity HTML META-tags plugin simplifies this task for entries, as I discussed in Better search res


Doug Motel
Homepage
11/08/2007 01:34PM
Those of us at Site Optimized are proud of you Don. They said it couldn't be done but when we explained just how important it was to be able to have a less rigid system for generating title, description and keyword tags you really went for it and delivered exactly what we envisioned.
Great job....
---------------------------
Doug Motel
Founder
http://www.siteoptimized.com
Search Marketing & Compelling Content
merlia
Homepage
11/19/2007 12:00AM
Blankster
Homepage
11/23/2007 10:25AM
Greets from Switzerland,
Blankster
Don Chambers
Homepage
11/24/2007 10:26AM
@ Doug - the plugin modifications would never have occurred without your original suggestion.
@ Merlia - I have personally focussed on code and presentation for websites, and never really paid much attention to how the content was ultimately influencing visitor's abilities to find the content. The good news is a very minor amount of effort spent creating thoughtful title elements, descriptions and keywords can make a significant difference!
@ Blankster - I am please do hear the instructions were easy to follow and you were able to integrate it into your site.
ray
04/17/2008 03:56PM
It's me again! After looking for a more, robust META tag plugin for S9Y, I've come across your blog again!
While your plugin does a great job for single entries and auto-generated keywords, it doesn't cover the all-important area of blog categories.
After reading this, I feel that the category configuration in S9Y should be beefed up to include some additional fields dedicated to META keywords and descriptions.
--------
Right now, I utilize a "manual" method for this by editing the index.tpl file and using some if-else statements detecting the blog category and adding whatever META data I need such as using Feedburner RSS feeds for auto-discovery per blog category.
While this isn't great for GUI lovers, it does do the job!
Also your plugin capabilities for single entries can also be emulated using the advanced features of the "Extended Entry" S9Y plugin.
-Ray
Gis Auswertung
Homepage
07/14/2008 09:05AM
Konrad Bauckmeier
Homepage
09/29/2008 01:57AM
meta name="keywords" content= twice in your code.
Anna
Homepage
12/11/2008 10:25AM