Skip to main content

kitconcept.seo

Pypi Pypi version License

kitconcept, GmbH

SEO enhancements for the Plone Content Management System. kitconcept.seo works with the latest Plone 6 and its default frontend Volto. It might still work with Plone Classic but that is not officially supported. If you are looking for a full featured SEO solution for Plone Classic or older versions of Plone, we suggest looking into fourdigits.seo.

Features

  • Allows to override meta title and meta description per page
  • Allows to set the noindex header to exclude pages from being indexed
  • Allows to set a canonical URL
  • Allows to set Open Graph title, description and image

Examples

This add-on can be seen in action at the following sites:

Translations

This product has been translated into

  • German

  • Italian

  • Spanish

Installation

Install kitconcept.seo with pip:

pip install kitconcept.seo

And to create the Plone site:

make create_site

Enable the SEO behavior

To enable the SEO tab for a specific content type you have to enable the kitconcept.seo behavior. Go to the page setup and then to the Dexterity Content Types control panel. Choose the content type you want to enable SEO for and enable the kitconcept.seo behavior.

Enable the SEO behavior programmatically

Enable the kitconcept.seo behavior by adding the behavior to the Factory Type Information (FTI) of your type in your generic setup profile. E.g. to enable SEO for the document type, drop a Document.xml file into the profiles/default/types folder of your add-on product with the following content:

   <?xml version="1.0" encoding="utf-8"?>
   <object name="Document" meta_type="Dexterity FTI" i18n:domain="plone"
     xmlns:i18n="http://xml.zope.org/namespaces/i18n">
     <property name="behaviors" purge="False">
       <element value="kitconcept.seo" />
     </property>
   </object>

Add to Volto project or add-on

To add kitconcept.seo to your Volto project/add-on you need to edit the component you want to use it for. If you want use it for your whole page you can use it in the View.jsx (see here for further information on editing views in Volto).

Than you use react-helmet Volto helper to set the title and description of the component. So import react-helmet with:

   import { Helmet } from '@plone/volto/helpers';

And finally add this to the jsx code of your component:

   <Helmet
          title={
            this.props.content.seo_title
              ? this.props.content.seo_title
              : this.props.content.title
          }
          meta={
            this.props.content.seo_description
              ? [
                  {
                    name: 'description',
                    content: this.props.content.seo_description,
                  },
                ]
              : [
                  {
                    name: 'description',
                    content: this.props.content.description,
                  },
                ]
          }
          bodyAttributes={{
            class: `view-${viewName.toLowerCase()}`,
          }}
        />

Usage

In your Volto page you need to go to the edit mode of the page you want to add a title and description for SEO and open the properties of the page by clicking the properties under the save button. Choose SEO there and add a title and description in the fields. When you are done hit the save button.

Contribute

License

The project is licensed under GPLv2.

Contributors

  • kitconcept GmbH [info@kitconcept.com]

Changelog

2.1.3 (2026-01-27)

Bug fixes:

  • Fix removal of pkg_resources namespace. @davisagli

2.1.2 (2026-01-26)

Bug fixes:

  • Add new widget for seo title and description. @iFlameing

2.1.1 (2025-11-04)

New features:

  • Add Spanish translations #22 [macagua] (#22)

Internal:

  • Fix metadata for the package. @ericof
  • Use pkgutil instead of deprecated pkg_resources. @ericof

2.1.0 (2024-05-30)

New features:

  • Add Plone 6 Support. @tisto (#13)
  • Set the X-Robots-Tag response header when seo_noindex is True. @sneridagh, @davisagli (#17)

Internal:

  • Update internal package structure. @sneridagh, @davisagli (#16)

2.0.1 (2021-11-01)

  • Explicitly include dependencies (supporting pip installations) [ericof]

  • Use plone/setup-plone@v1.0.0 in Github actions [ericof]

2.0.0 (2021-09-24)

  • Add Python 3.8/3.9 support [tisto]

  • Drop Python 2 support. [tisto]

  • Drop Plone 5 support. [tisto]

  • Add Italian translations. [cekk]

1.4.0 (2020-04-08)

  • Remove maxlength parameter from seo fields. [tisto]

1.3.0 (2020-03-24)

  • Add Open Graph title, description and image. [tisto]

  • Add German translation. [tisto]

1.2.1 (2020-01-16)

  • Re-release 1.2.0. [tisto]

1.2.0 (2020-01-16)

  • Add canonical_url option. [tisto]

1.1.0 (2020-01-10)

  • Add noindex option. [tisto]

1.0.0 (2019-05-14)

  • Python 3 compatibility. [tisto]

  • Plone 5.2 compatibility. [tisto]

  • Remove unnecessary plone.directives.form test dependency. [tisto]

  • Use black formatter. [tisto]

1.0.0a1 (2018-07-09)

  • Initial release. [kitconcept]

Metadata

Release files for kitconcept.seo 2.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kitconcept.seo 2.1.3
File Size Uploaded
kitconcept_seo-2.1.3.tar.gz 26.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kitconcept.seo 2.1.3
File Interpreter ABI Platform
kitconcept_seo-2.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 52.0 kB

Release files / kitconcept_seo-2.1.3.tar.gz

Download URL kitconcept_seo-2.1.3.tar.gz
Size 26.5 kB
Tags Source
SHA-256 checksum
How to use checksums
fbee56178f890f986f3f1583105ea657cb7bd0cb85d5a5b09c3ffe2fb3eadf32
BLAKE2b-256 checksum
How to use checksums
4023a563e7bd94f26d45494554740f301e0e852f1fdc2891b82a8a8b53dcaf15
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6

Release files / kitconcept_seo-2.1.3-py3-none-any.whl

Download URL kitconcept_seo-2.1.3-py3-none-any.whl
Size 25.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6cbaa28f439f454644f0f5dc22cd1abc17a5b02d88a95fb4e8611b829fd72770
BLAKE2b-256 checksum
How to use checksums
1628f6a3bcccbebd87b4c457f8081dd7f059bdf173fff94e2f08879569887d25
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.6
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page