Skip to main content

Django Check SEO will check the SEO aspects of your site for you, and will provide advice in case of problems.""

Project description

Django Check SEO

Replacing some features of Yoast or SEMrush for django CMS users.

In other words, django-check-seo will tell you if you have problems concerning a broad range of SEO aspects of your pages.


The following instructions are for an installation on a djangocms-based website using python >= 3 & django >= 2, or for a djangocms-based website using python >= 2.7 & django >= 1.8.15.

  1. Install module using pipenv:
pipenv install django-check-seo
  • Or pip:
pip install django-check-seo
  1. Add it to your installed apps:
  1. Add it to your (before url(r'^', include('cms.urls')), or it will not work):
    url(r"^django-check-seo/", include("django_check_seo.urls")),
  • Or add this if you're using path:
    path("django-check-seo/", include("django_check_seo.urls")),
  1. Update your site parameters with correct url (example for dev environment)

  2. (optional) Configure the settings, and/or force http instead of https, and/or add authentification (see config).

  3. that's all folks!


This application need beautifulsoup4, requests, djangocms & djangocms_page_meta (==0.8.5 if using django < 1.11).


Basic settings

Basic config (used by default) is in django-check-seo/conf/

    "content_words_number": [300, 600],
    "internal_links": 1,
    "external_links": 1,
    "meta_title_length": [30, 60],
    "meta_description_length": [50, 160],
    "keywords_in_first_words": 50,
    "max_link_depth": 3,
    "max_url_length": 70,

If you need to change something, just define it in your mywebsite/ file in a dict named DJANGO_CHECK_SEO_SETTINGS.


If you put this in your file:

    "internal_links": 25,
    "meta_title_length": [15,30],

Then this will be the settings used by the application:

    "content_words_number": [300, 600],
    "internal_links": 25,
    "external_links": 1,
    "meta_title_length": [15,30],
    "meta_description_length": [50, 160],
    "keywords_in_first_words": 50,
    "max_link_depth": 3,
    "max_url_length": 70,

Use http instead of https

By default, the application will attempt to make requests in https.

To enable plain http queries, you can add a variable named DJANGO_CHECK_SEO_FORCE_HTTP set to True in your


# Force HTTP

# Force HTTPS (default case, same as not defining the variable)


The website you want to test may require a prior connection due to a .htaccess file (or may use wsgi-basic-auth), which prevents django-check-seo from accessing its html code.

To prevent this, you can specify the login informations (username/password) in the DJANGO_CHECK_SEO_AUTH dictionnary (in your website settings).

This dictionary must contain two keys named user and pass.


  • In mywebsite/
    "user": os.getenv("HTACCESS_USER"),
    "pass": os.getenv("HTACCESS_PASS"),
  • In .env file:
export HTACCESS_USER=myusername
export HTACCESS_PASS=mypassword


Want a screenshot?


Other screenshots and videos are available on the wiki.

Interested in finding out more?

Take a look at the wiki:

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for django-check-seo, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size django_check_seo-0.2.0-py3-none-any.whl (585.7 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size django-check-seo-0.2.0.tar.gz (566.5 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page