0% 5h quota used · resets in 2h live · 08/09/2026 12:12 CEST

2026-07-02-seo-audit.md

countries/tn/reports/2026-07-02-seo-audit.md

seo-audit tn written 02/07/2026 17:02 next seo-audit →

SEO Audit — tunisie-electricite.com — 2026-07-02

First run — no prior report exists, so this is the baseline. Future runs should diff against this file and re-verify only pages that scored <8/10 or changed since (git log).

1. Live site health

All checked URLs returned 200 OK, response times 0.1–1.0s (no anomalies):

URL Status Time
/ 200 0.22s
/tarifs 200 0.87s
/tarifs-gaz 200 0.89s
/steg 200 0.86s
/coupures 200 0.83s
/annuaire 200 0.78s
/sitemap.xml 200 0.18s
/robots.txt 200 0.12s
/steg/coupures, /facture, /numero-vert, /raccordement-gaz, /raccordement, /service-client, /solaire 200 0.17–0.97s
/mentions-legales 200 0.87s

No critical availability issues.

2. Page audits (scored /100 per the monorepo SEO checklist)

Page Score Rating Key issue
/tarifs 89 Good Meta desc 172 chars (12 over)
/coupures 87 Good Meta desc 224 chars — worst offender site-wide
/steg 82 Good Title 85 chars (truncates in SERP); meta 193 chars
/steg/numero-vert 83 Good Meta desc 189 chars
/tarifs-gaz 76 Good No BreadcrumbList JSON-LD (only sibling /tarifs has it)
/steg/service-client 75 Good Thin body internal linking
/steg/facture 74 Good Meta desc 201 chars
/mentions-legales 72 Acceptable Low priority (legal boilerplate page)
/steg/raccordement 71 Needs work Meta desc 197 chars
/steg/raccordement-gaz 70 Needs work Meta desc 184 chars; only 1 body link
/ (homepage) 65 Needs work No links to /tarifs, /tarifs-gaz, /coupures, /steg in body; no schema at all
/steg/solaire 65 Needs work Zero body-content internal links
/steg/coupures 58 Needs work Zero body-content internal links; title 87 chars; overlaps /coupures (cannibalization risk)

Directory templates (annuaire/_index, _gouvernorat, _delegation — 1 + 24 + 261 = 286 generated pages): titles and meta descriptions are dynamic and unique per page (good programmatic SEO hygiene), but none carry BreadcrumbList JSON-LD — only the visual breadcrumb nav. Given the page count, this is the single highest-leverage structured-data gap on the site. Estimated ~75/100 each.

Site-wide pattern: every one of the 13 static pages has a meta description over the 160-character guideline (range: 163–224 chars), so Google truncates the crafted CTA copy on all of them in search results.

Internal links: cross-checked every static href="/..." against the real page list — zero broken internal links found.

3. Directory spot-check

Tested 3 random delegation pages (ben-arous/bou-mhel-el-bassatine, siliana/bou-arada, kebili/souk-el-ahad) plus their parent governorate pages — all resolve 200 with correct, unique title/meta/H1 populated from governorates.json + steg_agencies.json.

Note for future runs: delegation pages live at /{gouvernorat}/{delegation}, not /annuaire/{gouvernorat}/{delegation} — only the governorate list is under /annuaire/.

Top 5 actions (ranked by impact/effort)

  1. Trim all 13 meta descriptions to ≤160 chars. Every page exceeds it (worst: /coupures at 224, /steg/facture at 201, /steg/raccordement at 197, /steg at 193). High impact (CTR on every indexed page), low effort (copy edit).
  2. Add BreadcrumbList JSON-LD to the 3 annuaire templates (_index, _gouvernorat, _delegation), matching the pattern already used on 10/13 static pages. High impact (structured data across ~286 pages at once), low-medium effort.
  3. Add 3-5 contextual body links to /steg/coupures and /steg/solaire (currently zero outside the breadcrumb) and thicken /steg/raccordement-gaz / /steg/service-client. Obvious targets already exist: /coupures, /tarifs, /annuaire, sibling /steg/* pages.
  4. Link the homepage to /tarifs, /tarifs-gaz, /coupures, /steg. The homepage is the top-authority page on the site and currently sends zero body-content link equity to its own core sections.
  5. Shorten the two outlier titles/steg (85 chars) and /steg/coupures (87 chars) — to under ~65 chars so they stop truncating in SERPs; while there, give /tarifs-gaz the same BreadcrumbList JSON-LD as its sibling /tarifs for consistency.

Nice-to-have (not urgent): no ogImage is set on any page site-wide (social share previews are blank); most /steg/* subpages have natural Q&A content but no <x-accordion :schema> FAQ block (only /tarifs, /coupures, /steg/numero-vert have one).