Why is `djlint` warning me to add `<meta>` tags even though the file is linted?

I'm working on a Django web project and using djlint to lint and format my HTML templates. I ran the following command to lint one of my templates:

djlint html_files/analytics/reports/report_new.html

And I got this output:

Linting 1/1 files ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 00:00    

html_files/analytics/reports/report_new.html
────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
H030 3:0 Consider adding a meta description. <html lang="{{ lang 
H031 3:0 Consider adding meta keywords. <html lang="{{ lang 

Linted 1 file, found 2 errors.

Even though it says "found 2 errors", the file is actually linted and formatted just fine. There’s no crash, and the formatting is applied.

What I want to understand:

  • Why are these tagged as errors, when they’re really just recommendations?
  • Should these be treated as warnings or ignored?
  • Is it best practice to always include <meta name="description"> and <meta name="keywords"> in Django templates — even for internal dashboards?
  • How can I suppress or ignore these suggestions if I don’t want to include them?

Let me know if there's a way to configure djlint to stop flagging these without affecting actual linting or formatting.


What I’ve tried:

  • I checked the official djlint documentation, and these are listed under SEO-related suggestions.
  • I also tried this command and it worked to silence the warnings:
djlint html_files/analytics/reports/report_new.html --ignore H030,H031

These aren't actual errors — they're linting suggestions provided by djlint under its HTML best practices rules, specifically for SEO purposes.

What do H030 and H031 mean?

  • H030: Suggests adding a <meta name="description"> tag.

  • H031: Suggests adding a <meta name="keywords"> tag.

These are meant for public-facing web pages to improve search engine visibility, but for internal dashboards or admin panels (like mine), they're not necessary.


Solution 1: Add the tags (if applicable)

If your template is public-facing or you want to follow best practices, you can add the following inside your <head>:

<meta name="description" content="Create and manage analytic reports like incidents, users, and services.">
<meta name="keywords" content="analytics, reports, incidents, users, services, taskcall">

This will remove the warnings.

Solution 2: Ignore the warnings

If you're building an internal tool and don’t need SEO tags, just suppress these rules:

Option A – Command-line:

djlint html_files/analytics/reports/report_new.html --ignore H030,H031

Option B – Config file (djlint.toml or .djlintrc):

ignore = ["H030", "H031"]

Here is a minimal and clean djlint.toml config file you can include in your project root to automatically ignore those warnings every time you lint:

djlint.toml

# djlint configuration file

# Ignore specific rule codes
ignore = ["H030", "H031"]

# Optional: Set default file types (you can remove this if not needed)
extensions = [".html", ".htm", ".djhtml"]

# Optional: Enable formatting by default (if you use --reformat less often)
format = true

Where to put this?

Place the djlint.toml file in the root directory of your Django project (same level as manage.py). djlint will automatically pick it up when you run:

djlint path/to/templates/
Вернуться на верх