Code Monkey home page Code Monkey logo

django-check-seo's Introduction

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.


PyPI PyPI - Downloads GitHub last commit


Install

(for django >= 1.8.15 & python >= 2.7)

  1. Install the module from PyPI:

    python3 -m pip install django-check-seo
    
  2. Add it in your INSTALLED_APPS:

        "django_check_seo",
    
  3. Add this in your urls.py (if you're using django-cms, put it before the cms.urls line or it will not work):

        path("django-check-seo/", include("django_check_seo.urls")),
    
    • Or add this if you're still using url (you shouldn't):
          url(r"^django-check-seo/", include("django_check_seo.urls")),
      
  4. Update your Django Site object parameters with a working url (here's an example for dev environment).

  5. (optional) Configure the settings (see config).

  6. that's all folks!


Misc

This application needs beautifulsoup4 (>=4.7.0) and djangocms_page_meta (==0.8.5 if using django < 1.11). It may be used with or without django-cms (a django-check-seo button will appear in the topbar if you're using django-cms).

If you're not using Django CMS, here's the link format to access your pages reports:

https://example.com/django-check-seo/?page=/example-page/
  -> will check https://example.com/example-page/

https://example.com/fr/django-check-seo/?page=/example-page/
  -> will check https://example.com/example-page/
     (using localized url (if you add django-check-seo in i18n_patterns))

Config

Basic settings

The basic config (used by default) is located in django-check-seo/conf/settings.py and looks like this:

DJANGO_CHECK_SEO_SETTINGS = {
    "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 a dict named DJANGO_CHECK_SEO_SETTINGS in your settings.py.

Custom settings example:

If you put this in your settings.py file:

DJANGO_CHECK_SEO_SETTINGS = {
    "internal_links": 25,
    "meta_title_length": [15,30],
}

Then this will be the settings used by the application:

DJANGO_CHECK_SEO_SETTINGS = {
    "content_words_number": [300, 600],
    "internal_links": 25,  # 1 if using default settings
    "external_links": 1,
    "meta_title_length": [15,30],  # [30, 60] if using default settings
    "meta_description_length": [50, 160],
    "keywords_in_first_words": 50,
    "max_link_depth": 3,
    "max_url_length": 70,
}

Want to know more ? See the wiki page Settings explained.


Select main content (exclude header/footer/...)

Since django-check-seo will count things like number of words on the main content and the number of internal links, it is important to only select the main content of the page (an address in the footer is not the main content of your page).

Django-check-seo use a string (named DJANGO_CHECK_SEO_EXCLUDE_CONTENT) of css selectors to exclude unwanted html nodes from the html content:

DJANGO_CHECK_SEO_EXCLUDE_CONTENT = "tag, .class, #id, tag > .child_class"

You can find a reference table of css selectors explained here (on mdn docs).

Example: See this issue's comment for an example.


Want a screenshot?

screenshot

Other (older) screenshots and videos are available on the wiki.


Unit tests

They are located in tests folder.

The file launch_tests.sh is here to manage tests launching for you. You only need python3-venv (for python3 venv) and virtualenv (for python2 venv) in order to make it work.


Contributing

See CONTRIBUTING.md.


Interested in finding out more?

Take a look at the wiki:

django-check-seo's People

Contributors

corentinbettiol avatar jgadelange avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.