SEO Lite


Bjorn Borresen

3rd Party (Free)

1262 downloads (last 90 days)

Creative Commons Attribution

EE Version Support

  • ExpressionEngine 2
  • ExpressionEngine 3


If an item is crossed out, it might be untested, not applicable or incompatible. Contact the developer to be sure.

  • Updater
  • Multi Site Manager
  • Stand Alone Entry Form
  • Low Variables
  • Content Elements
  • Better Workflow
  • Matrix
  • Grid
  • Webservice
  • Publisher


  • jQuery for the Control Panel

Add-On Type(s)



SEO Lite is the easiest way to make sure the title-tag is output on all pages on your site: one global embed / snippet and you're done. SEO Lite is a very lightweight module which will add a SEO tab to your publish page. It has an editable template that can be embedded in the header of your site. Using only one database query it should be perfect for high traffic sites.


Changelog for SEOLite
The dates in this changelog use international date format: YYYY-MM-DD (ISO8601)

1.5.1 - 2016-01-14
* EE3 release, requires 3.1.0 - 2014-10-07
* Added support for "photo_frame" in extra fields - more info here: - 2014-08-12
* Bugfix: {extra:desc} is now wrapped in htmlentities()

1.4.9 - 2014-07-14
* Adding global option to strip out pagination string from canonical URLs.

1.4.8 - 2014-05-07
* Support for "max_length" in extra text field + fix for extra fields for EE 2.8.1+

1.4.7 - 2014-03-19
* Added hooks: seo_lite_tab_content_save, seo_lite_tab_content and seo_lite_fetch_data


        // -------------------------------------------
        // Allows one to modify the SEO Lite saved in the tab (ie. for translation addons)
        // Params sent in:
        // - $where - an array of where (activerecord) on UPDATE .. already contains 'entry_id' and 'site_id'
        // - $table_name - the name of the table to pull data from (without db prefix, defaults to 'seolite_content')
        // - $content - the current content saved (an array of site_id, entry_id, title, keywords, description)
        // Return value:
        // Please return nothing at all or an array which contains 'where' and/or 'table_name' and/or 'content' to
        // replace any of these.
        // But remember the content must contain 'site_id', 'entry_id', 'title', 'keywords', 'description'
        // -------------------------------------------


            // -------------------------------------------
            // Allows one to modify the SEO Lite pulled up in the tab (ie. for translation addons)
            // Params sent in:
            // - $where - an array of where (activerecord) to check for .. already contains 'entry_id' and 'site_id'
            // - $table_name - the name of the table to pull data from (without db prefix, defaults to 'seolite_content')
            // Return value:
            // Please return nothing at all or an array which contains 'where' and/or 'table_name' to replace the existing
            // where array and table name to pull data from. This will be used to ->get(where, table_name) the data so
            // you can basically pull whatever from any table.
            // But remember the results must contain 'title', 'keywords', 'description' which SEO Lite rely on for the
            // tab content.
            // -------------------------------------------


            // -------------------------------------------
            // Allows one to pull from another table
            // Params sent in:
            // - The table name
            // Return data
            // May be an array containing 'table_name' (new name of table to pull from)
            // ------------------------------------------- - 2013-11-06
* Added tag parameters array to the seo_lite_template hook

        // -------------------------------------------
        // Allows one to modify the returned SEO Lite header template
        // Params sent in:
        // - Parsed tagdata (the template)
        // - Array: The SEO Lite / Entry variables collected ( [tag_prefix:title] etc.)
        // - The tag prefix used (needed to look up the var array reliably, but is often empty)
        // - Array: The SEO Lite tag parameters used (any kind of params can be added to SEO Lite, even ones SEO Lite don't recognize)
        // - A reference to the Seo_lite class (mod.seo_lite.php)
        // The returned html will replace the data returned by the {exp:seo_lite} tag.
        // Remember the last_call variable in case other add ons than yours use this hook: return $html.$this->EE->extensions->last_call;
        // -------------------------------------------
1.4.6 - 2013-11-06
* Added hook: "seo_lite_template" which will enable developers to modify the SEO Lite template before it is returned.
  This could be used similar to the CP's add_to_head hooks, if you'd like to add something to the headers globally from
  one of your addons. - 2013-10-29
* Fixes issue with old/new versions of the SEO Lite Assets extra field.

1.4.4 - 2013-05-16
* Fixed use of function that was deprecated in EE 2.6.1

1.4.3 - 2013-04-19
* Replace &nsbp; and   in all tag parameters with normal whitespace (since EE will remove space at the beginning of a parameter people are using   or   - we replace these with a standard space)

1.4.2 - 2013-02-19
* Bugfix for using SEO Lite as a tag pair inside an exp:channel:entries loop - use {exp:seo_lite:pair} now - ie. {exp:seo_lite:pair entry_id="{entry_id]"} Meta: {meta_description}{/exp:seo_lite:pair}
* Added support for hiding the keywords field (use $config['seolite_show_keywords_field'] = 'n'; in config/seolite.php. This can also be overridden in a master config if you use that)
* Support for Publisher
* Bugfix: if the client used soft-hypen tag in the title (­) it would display in the browser title as the tag
* Made {entry_title} available as a tag (no title prefix/postfix etc.)
* Fixed so that   won't be included in the title (if it is used in default_postfix)
* Bugfix: there was a regression bug where using the "category_url_title" parameter would not work

1.3.6 - 2012-09-18
* Fixed bug where pagination segment would be duplicated in the "canonical_url" tag on pagination pages (ie. /P4). This seems to have been introduced recently (2.5.x+?)

1.3.5 - 2012-02-23
* Increased the size of the "default_keywords" and "default_description" fields to 1024 in the database

1.3.4 - 2011-12-19
* Added support for config override of publish tab title (e.g. $config['seo_lite_tab_title'] = 'SEO';)

1.3.3 - 2011-10-14
* Fixed bug where {canonical_url} would be blank on standard channel entries

1.3.2 - 2011-09-27
* Changed constructor name

1.3.1 - 2011-09-02
* Fix for canonical URLs on pages / structure pages

1.3 - 2011-08-30
* Added support for category_url_title for fetching titles/descriptions of categories (for use as seo metadata)
* Added support for using seo_lite as a tag pair (if done the template won't be used, good for overriding etc.)
* Fixed minor bug in backend where the instructions would not hide after clicking view/hide

1.2.5 - 2011-03-18
* French language file added
* Renamed language key "welcome" to "seo_lite_welcome" as this sometimes confliced with other modules who used the same language key

1.2.4 - 2011-02-23

This update includes database changes and requires that you visit the module in the backend (EE will then automatically run the update script).)

* htmlspecialchars() all metadata before output (there were problems with the use of quotes etc. in default description)
* Increased size of the default keywords / descripton to 1024 chars
* Changed coltype of default_title_postfix to VARCHAR(60) instead of CHAR(60) (char would strip trailing space, thus the need for   .. that's no longer needed)

1.2.3 - 2011-02-21

* Added support for {canonical_url} for use in the SEOLite template like this:	
* Added 'ignore_last_segments' parameter which tells SEO Lite to ignore the X last url segments (ie. 2 would be logical for URL: entries/some_entry_here/sort/asc)
* Improved support for pages - the "Pages URI" will now override "URL Title"
* Minor change in how the "title_postfix" parameter works - the default postfix (specified in admin) will now always be added after this

Docs have been updated with the new tags:

Download SEO Lite

EE Support Downloads Add-On Version Release Date
2.8.0+ Download Nov 24, 2014
3.0.0+ Download 1.5.1 Jan 14, 2016

SEO Lite Links

This entry was created August 5, 2010, 12:21 pm.
This entry was last updated January 14, 2016, 8:36 am.

Disclaimer: Information about ExpressionEngine add-ons is provided as a service to you, the user, and every member of the ExpressionEngine community. devot:ee is not responsible if you hose, mangle, wreck, or otherwise destroy your EE website by installing an add-on that you found out about at this site, regardless of its rating, Favorites status, commercial or free status, or general popularity. Caveat EEmptor!

Returns: devot:ee has a 30-day return policy on all commercial add-ons sold through If you need to return an add-on, do not go to the developer or the developer's site, but rather visit our returns page at to initiate your return. If you have questions, email

12 Reviews:

Forrest 01.16.14

Rating - {addon_rating_average}

The no-brainer approach to SEO for Expression Engine. Bjørn has made a great contribution to the community with SEO Lite.

Jules6120 11.01.13

Rating - {addon_rating_average}

Great Add-on. Easy to set up and our clients love it.

E Alton 04.22.13

E Alton
Rating - {addon_rating_average}

Works perfectly with CMS entries *and* static templates. Bjorn also provides EXCELLENT support over on GetSatisfaction.

DanTreasure 03.03.13

Rating - {addon_rating_average}

This Add-on is a default install for me. Simple to implement and always works a charm! Thanks!

Portnull 08.25.11

Rating - {addon_rating_average}

a must have on every site.

Lima Bean 06.21.11

Lima Bean
Rating - {addon_rating_average}

Great work, this is going to save me a ton of time!

kellypacker 05.05.11

Rating - {addon_rating_average}

I was adding this functionality by hand to my sites, but this replaces it and makes it easier to maintain. The use_last_segment=‘yes’ parameter is brilliant!

5BYFIVE 03.04.11

Rating - {addon_rating_average}

I have my head section in an embed so I was wondering if this would work good. It was a snap to setup and worked absolutely perfectly! Thanks Bjorn!

Danny Veiga 01.26.11

Danny Veiga
Rating - {addon_rating_average}

3 words – Simple Yet Effective !

Definitely one of the easiest modules to use, my clients absolutely love it – Thanks Bjorn!

Establish 11.11.10

Rating - {addon_rating_average}

Great module! Makes the process I used before for Page Title and Meta Tags seem prehistoric!

Moonbeetle 10.08.10

Rating - {addon_rating_average}

Great add-on with versatile tag parameters for flexibility. Bjorn knows his stuff.

nevsie 08.13.10

Rating - {addon_rating_average}

Great little add-on and does exactly what i need. Only issue being that EE 2.1 still has a bug in it that means if your using a custom layout (why would you not be) the Tabs break and make this defunct. EE said they had fixed it, but they have not. come on EE.