HeadSpace 2


Download: HeadSpace
Note: This plugin is no longer actively maintained

HeadSpace is a powerful all-in-one plugin to manage meta-data and handle a wide range of SEO tasks. With it you can tag your posts, create custom titles and descriptions that improve your page ranking, change the theme or run disabled plugins on specific pages, and a whole lot more.

Because the configuration of meta-data can be a complicated and tiresome process HeadSpace provides several shortcuts to reduce your effort:

  • Meta-data nesting – data is collected not only from the page itself, but nested parent pages
  • Dynamic data extracted – why repeat yourself when you can extract data from the post itself?
  • Full GUI interface – data is entered alongside post content, and with a full auto-suggested AJAX interface for tags and keywords
  • Mass-editing – now you can edit meta-data for all pages and posts at one go!

HeadSpace is modular in nature and provides a full set of modules that allow you to configure your site exactly as you want and without requiring several conflicting plugins – everything is contained within one consistent interface. These modules include:

  • Page-specific modules that can be applied to posts, pages, categories, archives, search pages, 404 pages, and the home page!
    • Page titles – SEO optimized titles
    • Tags and keywords are auto-suggested using a smart algorithm or via Yahoo and work on both posts and pages (pages can also be set to appear in tag archives)
    • Page-specific plugins – have plugins that run only on specific pages!
    • Theme-specific plugins – change your site theme on specific pages!
    • Description – what appears in search engine listing
    • More text – change the ‘more text’ for each post
    • JavaScript & CSS – add JavaScript or CSS files to a post
    • No index – configure whether a page is indexed by search engines
    • No follow – configure whether links receive a follow/nofollow attribute
    • Site name & description
    • RSS name & description
    • Anything else you want – HeadSpace allows custom meta-data
  • Site-wide modules:
    • Configure auto-formatting (wpautop), auto-fancy quotes, auto-clickable links, and disable visual editing
    • Tracking codes for Google Analytics (new & old code), Crazy Egg, StatCounter, 103bees, Mint, FeedBurner Stats, Yahoo! Site Explorer, HitTail, Google Webmaster, Piwik, and Apture, with the ability to not track registered users
    • Google section targeting
    • First Time Visitor – display a special message to visitors when they first visit your site (based upon idea by Seth Godin)
    • Disable Widgets
    • Change PHP memory limit, timeout, and error reporting level

Due to the number of meta-data plugins available for WordPress, HeadSpace will import data from these plugins:

  • UTW (Ultimate Tag Warrior)
  • SEO Title tags
  • All-in-one SEO
  • Jerome’s Keywords
  • Simple Tagging
  • lud.icro.us HeadMeta
  • HeadMeta description
  • More Unique

Now there’s no reason not to use it!

HeadSpace is available in the following languages (all included within the plugin):

If you can provide a language translation then please get in contact with the author. A PO file is provided with the plugin to be used in translating with poEdit.

People upgrading from previous versions should be aware that you must reconfigure the plugin. As much of your existing configuration will be retained, and existing custom meta data for posts should be completely safe.


The plugin is simple to install:

  1. Download headspace2.zip
  2. Unzip
  3. Upload headspace2 directory to your /wp-content/plugins directory – the directory must be called headspace2.
  4. Go to the plugin management page and enable the plugin
  5. Configure the options from the Options/HeadSpace page
  6. Ensure your theme calls wp_head in header.php (most themes do this anyway – see wp-content/themes/default/header.php as an example)

You can find full details of installing a plugin on the plugin installation page. Note that, depending on your site configuration, you may need to increase the amount of available memory to 32MB. Details of doing this can be found here.


It is useful to understand the process involved in generating meta-data for a WordPress page. HeadSpace allows meta-data to be both nested and dynamically generated from the page itself.


This is a fairly simple concept, but one that requires explanation. When a page is to be displayed, HeadSpace looks at the page type and retrieves meta-data from all available sources. For example, when displaying a post, HeadSpace will first look at the post’s meta-data, then it will look at meta-data set for all posts, then it will look at global meta-data. When displaying a category page, HeadSpace will look first at the category meta-data, then at global meta-data.

The reason for this nesting is that you can configure HeadSpace as little as possible, but get the maximum effect. For example, adding a tag of ‘scuba’ to the global ‘tag’ settings will mean that every page will have the ‘scuba’ tag set, in addition to whatever specific meta-data the page may contain.

Inheritance After

Note that nesting can be disabled.

Dynamically generated meta-data

Dynamic meta-data is simply meta-data that is taken from the post being displayed. In practical terms this means you can insert special tags into HeadSpace meta-data that are replaced when a post is to be displayed. These tags are:

Tag Inserts
%%date%% Date of the current post/page
%%title%% Title of the current post/page
%%sitename%% The site’s name
%%excerpt%% Excerpt of the current post/page (auto-generated if necessary)
%%excerpt_only%% Excerpt of the current post/page (not auto-generated)
%%modified%% Modified date of the current post/page
%%id%% Post/page ID
%%userid%% Post/page author’s ID
%%name%% Post/page author’s name
%%category%% List of categories the post/page belongs to
%%category_description%% Category description
%%searchphrase%% Search phrase
%%currentdate%% Current date
%%currenttime%% Current time
%%page%% Current page and total pages (i.e. page 1 of 3)


HeadSpace has site modules and page modules. Site modules affect the site as a whole, while page modules affect individual pages. Both are configured from the Options/HeadSpace/Modules page of the administration section. Page modules appear as:

Page Modules

Modules can be dragged and dropped into the appropriate areas. Modules in the ‘simple’ area will always when editing meta-data. Modules in the ‘advanced’ area will only appear when a link is pressed.

Site modules appear as:

Site Modules

Note that some modules have an edit button allowing further configuration. Disabled modules do not run and use no resources.

Page Settings

Configuration of page settings takes place from the HeadSpace administration page:

Page Settings

Clicking any of the sections will allow the meta-data to be configured:

The exact details and the order in which they appear is determined by your page modules. Note that advanced modules are hidden behind an ‘advanced’ link that, when clicked, will expand to show the advanced modules.

Post & Page Settings

The plugin adds an extra section to the post and page editing screen:

Admin Edit

Like for page settings the exact details and order is determined by your page modules. The settings defined here always take precedence over settings defined elsewhere.

Category Settings

You can also configure HeadSpace settings when editing a category from the Category Management page.

Category settings are applied when viewing a category page, and will inherit settings from the general category settings, as well as the global settings.


HeadSpace provides a mass-editing interface which allows you to change meta-data across all posts and pages. The interface is found in the Manage/Meta-data administration page:

Mass Edit

You can select the type of meta-data from the drop-down menu.

Tags or keywords

If the tag module is enabled then HeadSpace will automatically suggest tags for posts based upon previous tags. A smart-matching algorithm is used so that matches will be made when words have the same root. For example, if you previously defined the tag ‘elevate’ then the smart-matching algorithm will detect ‘elevator’, ‘elevated’, ‘elevating’, and ‘elevates’.

Tags are added with a special interface:


You can either manually enter tags in the input box, or you can click on a tag to have it added. Tags can be suggested using a smart HeadSpace algorithm, or you can enable a Yahoo option to have Yahoo suggest tags.

Support & Bugs

If you need further information then these are good guides and introductions to HeadSpace:

This plugin is no longer actively maintained.

1,428 thoughts on “HeadSpace 2”

  1. This is so strange; My HeadSpace plugin disappeared!

    I installed it and activated it and was using it. Now today when I made a new post the new tag words stuff wasn’t there. So I open my plugin page in admin and HeadSpace lwasn’t in my plugins list? I checked and the folder, "headspace2" is still in the ‘plugins’ folder. What could be happening? I checked and I do see ‘wp_head’ in header.php. Can someone help me find out what is going on?

  2. Nice plugin, but either doesn’t support 2.3.2, or has conflicts with my other plugins.

    On top of every page I get the text "herehere" and if I try to use the Disable WordPress Widgets module, I get fatal errors due to undefined function wp_register_sidebar_widget..

  3. HeadSpace fully supports WP 2.3.2 (this site uses it, along with the disable widgets module). No where in the plugin does it output ‘herehere’, so this may possibly be something you’ve entered into one of the HeadSpace meta-data fields. I’m confused as to why your site should output that error message as the wp_register_sidebar_widget function is available in WP 2.3.2. There could possibly be some interaction with other plugins you have installed so if you have the opportunity to locate which plugin may be causing the problem then please do report it at the HeadSpace bug tracker.

    Mieszkania Poznan, too short for what purposes? 100 is a good number for most search engines, and if you want more you can configure the description length to suit your requirements

    Joni, the only thing to prevent HS from appearing in your plugins list is if the headspace2/headspace.php file got deleted.

    Wally, the Connections/Adsense theme does not appear to called wp_footer, so there is no way for HS to insert any data there. See wp-content/themes/default/footer.php for an example. With regards the section targetting, it was only looking for the_content. I’ve added the_excerpt too.

    Ravi, I’ve added your report to the issue tracker

    GA Harrison, can you create a bug report and attach the HTML for the non-working page?

  4. Sorry to post this here, but I tried to enroll for the support forum. I did not receive a password, so I tried to post in the feature tracker, and that gave me an error (sorry didn’t write it down).

    Anyhoo, regarding the_content and the_excerpt for ad setion targetting, could you also add the_excerpt_reloaded please? Also, when you say it’s missing wp_footer, does that just have to be added to footer.php?

  5. Wally, yes, put wp_footer in an appropriate place in footer.php – look at the default theme for an example of a good place. I’ve no record of you attempting to register so I’m not sure why it didnt work – maybe a server blip. The issue tracker is currently a bit unstable (I’m overloading my host far too much!) so you may need to refresh if it throws an error.

  6. I’m having problems using HeadSpace as everything I try gives me the following error:

    Method Not Implemented
    POST to /wp-content/plugins/headspace2/ajax.php not supported.

    Any help much appreciated

  7. John, yes, it’s here:
    Everything about the plugin seems to be where it should be after running through the installation docs.

  8. John, I’m afraid I’m not really competent enough to understand most of what’s being said in those posts. I’ll probably screw things up totally if I delve too deeply.

    I think the safest option is to uninstall the plugin.
    Thanks for your help.

  9. I’m trying to debug my headspace problem. I’m pretty sure I finally found the problem plugin: Angsuman’s Translator Plugin Pro. If you remember awhile back, my headspace installation suddenly stopped working. Having it installed actually disabled the WYSIWYG editor. Anyway, I’m getting this error on debug (before even activating the plugin)

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/theodycc/public_html/abelcreative/wp-content/plugins/headspace2/models/headspace.php:307) in /home/theodycc/public_html/abelcreative/wp-content/plugins/translator/translator.php(15) : eval()'d code on line 1

  10. Hi John.

    Still can’t seem to enroll in the forum, so here goes. I have another plugin called Onlywire Autosubmitter. It uses Onlywire’s API to submit to a bunch of bookmarking sites. Right now all it submits is the URL and title. I would like to add a description and tags to the API submit. The meta data created by Headspace would be ideal, but I’m not sure how to get to it. Could you tell me: at what point in the posting process is the meta-data being generated? (And, is there a way to determine which plug-in is executing first?) Do you have any hooks I could use to extract meta description and meta keywords? I can modify the Onlywire plug-in without a problem, I just need to learn how to get to your data. Any suggestions are appreciated.

    P.S. – Unless, of course, you think it would be cool to add the Onlywire API to Headspace 🙂 It’s a pretty simple API

  11. Hi, Can someone tell me how I can use the tag in the title tag of the tag page. So my title is: ‘tag’ >> my website When I use %%tag%%, my title is showing all the tags of my posts which contain that tag. I just want the single tag.

  12. Has anyone ran into this error on the “Manage” “meta-data” page:

    Warning: Invalid argument supplied for foreach() in .....plugins/headspace2/view/admin/mass_edit.php on line 17

    This is a great plugin and it works wonderfully on another WP blog; but getting the error above on another. Any assistance is appreciated.

  13. […] поэтому рекомендую Вам просто превосходный плагин Headspace2. Все, что Вам нужно, это скачать его, активировать и […]

  14. Greg, fixed.

    Tine, which tag? The %%tag%% code shows all tags. If you wanted to pick out a particular tag then it would be easier just to put that tag directly into the title

    Wally, you can get access to meta data using the MetaData class defined in headspace_library.php. For example, to get the description for post 5 use MetaData::get_description (5)

    Jeromy, it seems that the debug output from HeadSpace is causing the translation plugin problems. If any debug is appearing then capture it and disable debug mode. If no debug is appearing then you’ll need to disable the translation plugin first.

  15. […] Meta-data nesting – data is collected not only from the page itself, but nested parent pages Dynamic data extracted – why repeat yourself when you can extract data from the post itself? Full GUI interface – data is entered alongside post content, and with a full auto-suggested AJAX interface for tags and keywords Mass-editing – now you can edit meta-data for all pages and posts at one go! HeadSpace2: Advanced meta-data manager for SEO titles, tags, descriptions, and more […]

  16. Hi John
    Thanks for great plugin.
    But if “Page-specific Themes” is appropriated ,error massage has come.
    Warning: Cannot modify header information – headers already sent by
    (output started at C:\xampp\htdocs\wp\wp-content\plugins\headspace2\models\headspace.php:307)
    in C:\xampp\htdocs\wp\wp-includes\pluggable.php on line 390

    Pls give me your advice!!!

  17. […] незаменимыми помошниками будут плагины All in One SEO Pack и HeadSpace2. Именно они в ответе за эти тэги. Далее, все наши записи […]

  18. I noticed a few people had commented on the alphabetical sorting of keywords…is there a way to turn this feature off? It is my understanding that the more important keyword phrases should be first. When they keywords and phrases are alphabetized, then the more important phrases are possibly being placed at the end of your list. Any feedback would be appreciated. Thanks.

  19. Does not work well with WordPress 2.5 that was released today. The interface on the WRITE screen does not load properly. It is missing the customized fields. So I cant write keywords from within the WRITE screen. I have to go back to MANAGE > META DATA and put the keywords in there in order for it to work.

  20. While I do not have any error messages at the moment to contribute, I just wanted to see how things are going since this is an amazing plugin and with our 2.5 upgrade it’s not working 🙁

    Let us know! We will gladly contribute to the cause when the download it ready and working!!

  21. HeadSpace was mostly working with WP 2.5 apart from the tag editing when writing posts. I’ve fixed this and added a few of the feature requests. It should (fingers crossed) still be backwards compatible to WP 2.0

    Mark, meta keywords have little-to-no effect, and the order of keywords have even less effect. WordPress 2.3+ orders them alphabetically

  22. Hello,

    I have an error on the write screen : “Element.remove is not a function” with the last version.
    Don’t know if I am the only one ?

    Thanks for this plugin.


  23. Im still not seeing the Keyword field on the WRITE screen. Should I be with 3.4 ? That’s one of the key things that makes this plugin so convenient.

  24. Hi John,
    If I remember correctly, in some old version of Headspace2, there was an option to “automatically” add the first 150 words from the post content for the meta-description field. It seems that there is no option to “automatically” generate the meta-description for the latest version (although you still have the option to cut the length of the meta-description characters however =).

    Anyway, please, if you can, please, re-add that option again… In the meantime, I will attempt to re-use Head Meta Plugin to automatically generate the meta-description.

    Anyhow, Headspace2 is still the best SEO plugin + versatility in my ‘humble’ opinion =P.

  25. Hi John, I’d tried enter %excerpt% into the Meta-Description field of ” Global Settings – applied to everything unless otherwise specified”. However, I get this 500 Error afterward (turning off Headspace2 plugin eliminate the Error):

    Internal Server Error
    The server encountered an internal error or misconfiguration and was unable to complete your request.

    Please contact the server administrator, webmaster@webdesigndevelopment.minttree.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

    More information about this error may be available in the server error log.

    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
    Apache/1.3.39 Server at webdesigndevelopment.org Port 80

    *Let me know if you want to login to take a look =P.
    **Best regards,

    ~Mint Tree~

  26. Can you raise this as a bug in the issue tracker? I’m trying to keep the comments free of error messages and more focussed on using the plugin. Can you also provide some more details (possibly sending me a login) as I cannot recreate the problem.

  27. Sent you my contribution to the cause – the pounds to dollars threw me LOL!

    Thanks for working so hard on this I really, really missed it not working with the 2.5 upgrade, now voila! there are my long awaited tag choices!

  28. The First Time Visitor module doesn’t seem to want to work for me. Could it have something to do with having had What Would Seth Godin Do previously installed? I’m on WP 2.3.3, and everything else in Headspace is working fine.

  29. HeadSpace2 is one of the most awesome plug-ins for WordPress I’ve seen in a long time. Much props!!!

    Would seriously love to see a future version offer controls for noarchive or not per page type, alongside the noindex and nofollow options already included.

  30. Hi John,
    Description for Home Page and Categories are not displayed. I cannot set the max length, it invariable zero in Modules -> Description…


  31. I do seo work for this client (link above) they had someone create a new theme with a static home page. What code might I put on this page to use Headspace.

  32. Hi!!

    I have moved from All in one Plugin to Headspace2 because I adjust much more better to the strategies I am trying to develop. So, congratulations for the Plugin.

    But I have 2 questions (using WordPress 2.5):
    1. How can I get rid of the » added at the begining of the title of each post or page?
    2. Is there any way to separate tags (from WordPress installation) and keywords (directly from Headspace Plugin)?

    For future improvements, here are my proposals:
    1. Being able to define a default structure by category: now you can define a default structure por title and descriptions not defined specifically in each post/page, so making this by category would be much more powerful.
    2. Being able to use custom fields (as tokens) into the title or description.

    Thanks for your help and kind regards.

  33. Hmmm. Tried to get into the feature and issue trackers to post this, but got a bad gateway error for both. I will try to post in the forum, but will also leave it here just in case. This is a feature request, and it would really make my day (month? year?) if it could be done. In the mass meta data manipulation, could you also add an option to modify the category? I know category really doesn’t fall into the meta-data arena like tags and page title, etc., but you do already have a page-slug option there, so I thought “Why not?”. My reason is that I deal with some multi-author blogs, and sometimes the selected category really doesn’t match everything else. Could you please, please, please add that?

  34. Hi John.
    The HeadSpace2 is incredible.

    I wish to suggest a feature, but as ‘feature tracker’ is not working, I’m sending it from here.
    Have you planning to create a HeadSpace2 based plugin to behave in the footer, instead of in header ?
    The HeadSpace2 is awesome, but I didn’t discover any other to do the same in the footer.

    #2 Instead of create a new plugin, could you add a option to insert things in the footer?

    Thanks anyway!!

  35. hi!
    First,I like your projects very much after trying lots of them.
    Now I have a little qustion about HeadSpace2.Even I’ve checked the comments above,I didn’t find how to fix it.So please help if you can see me.

    My problem is that the title which was HeadSpace set AND the default title which was my theme set WORK together!Just like this:
    (My blog Name) >> (HeadSpace2 set title) – WordPress
    Hexy’s logs >> Home – Hexy’s logs – WordPress

    I don’t think it’s the situation expected.I do think it should be:
    (HeadSpace2 set title)
    Home – Hexy’s logs

    Isn’t it?

    I just think that maybe the theme’s header.php or wp_head is lack of a Judgement(IF).I tried to hide the part of theme’s header.php,only left the ,but the title disapeared completely!

    I wonder how to fix that,or my situation is normal??
    Hope you can see this..please….

  36. Just checked out the plugin. It’s a great plugin however, there is one fatal flaw for me.

    I read throught the two part tutorial and didn’t see anything here. . . maybe I’m over looking it.

    Anyway, the mapping of keywords to tags kills the plugin for me. Why? Because there are often keywords that I don’t want visible on page while having tags visible on page. With this plugin I have no choice on how to seperate out keywords Vs tags.

    Maybe the option to have tags be keywords but also a keyword meta field only? That way we could put whatever keywords we want into the keyword field and if you choose to have tags as keywords then they would be put into that field as well.

    Other than that, the plugiin looks amazing. Wish I could use it.

Comments are closed.