2026-08-10-seo-audit.md
countries/tn/reports/2026-08-10-seo-audit.md
SEO Audit — tunisie-electricite.com — 2026-08-10
Diffed against reports/2026-08-04-seo-audit.md. git log origin/develop --since=2026-08-04 -- sites/tunisie-electricite.com departments/tunisia-energy returns two commits, both already known and expected to have landed:
efa0fef6405— PR #12649 ("[tn] SEO fixes 2026-07-27"), merged 2026-08-04 10:35 UTC (a few hours after the last audit ran) — the mechanical fixes carried in that PR since 07-27: sitemap generators for/coupures/*, title/meta template rewrites for the outage pages, homepage Organization/WebSite JSON-LD, and the 2 static-page title trims.bb71ff45bac— PR #14134 ("[tn] Content freshness 2026-08"), merged earlier — the/stegELMED accuracy fix and the dead source-link removal on/tarifs.
Both are content/template changes, so every page they touched was re-verified live rather than carried forward. No open countryos/tn PR exists (gh pr list checked first) — the backlog from the last 4 audits is, for the first time, actually clear.
1. Live site health
All 16 checked URLs returned 200 OK, response times 0.14–0.62s (no cold-cache spike this time). sitemap.xml and robots.txt both healthy.
| URL | Status |
|---|---|
/, /tarifs, /tarifs-gaz, /steg, /coupures, /annuaire, /sitemap.xml, /robots.txt |
200 |
/steg/coupures, /steg/facture, /steg/numero-vert, /steg/raccordement, /steg/raccordement-gaz, /steg/service-client, /steg/solaire, /mentions-legales |
200 |
2. Page audits (13 static pages)
| Page | Score | Δ | Note |
|---|---|---|---|
/tarifs |
96 | +1 | dead steg.com.tn/clients_res/... source link removed (PR #14134); title 65, meta 140 |
/tarifs-gaz |
93 | — | unchanged |
/coupures |
92 | — | unchanged |
/steg |
91 | — | ELMED bullet corrected (PR #14134, factual accuracy, not an SEO score driver); title 52, meta 157 |
/steg/raccordement-gaz |
90 | +6 | title fixed 76→52 chars (was the last open title outlier) |
/steg/numero-vert |
90 | — | only /steg/* subpage with FAQPage schema |
/steg/solaire |
89 | +7 | title fixed 71→51 chars |
/steg/service-client |
88 | — | unchanged |
/steg/facture |
87 | — | unchanged |
/steg/raccordement |
86 | — | unchanged |
/mentions-legales |
82 | — | unchanged, low-priority legal page |
/steg/coupures |
80 | — | still no schema beyond breadcrumb |
/ (homepage) |
89 | +13 | Organization + WebSite JSON-LD added (was the only page with zero structured data) — confirmed live, 2 application/ld+json blocks |
Directory templates (/annuaire/*, 1+24+261 = 286 pages): unchanged, ~85/100, BreadcrumbList confirmed present.
Outage pages (/coupures/{gouvernorat}[/{municipality}], 374 pages) — re-scored this run, both systemic gaps from 07-27/08-04 now closed:
- Sitemap:
grep -c '/coupures/' sitemap.xml→ 374 (was 0). Total sitemap URLs now 673. - Title/meta length: re-verified against the actual longest names in
outage-governorates.php/outage-municipalities.php(not just the audit's worst-case example, per the 07-27 lesson) — worst case is now exactly 65 chars for the longest municipality title ("El Achech Boujarboue El Aouadna Majel Eddarj", Sfax — the same name that drove the 07-27 template redesign) and 60 chars for the longest governorate title ("Sidi Bouzid"). Both fit under the 65-char guideline, no page in the family exceeds it. - Estimated family score: ~90/100 (up from an effective ~65-70 while both gaps were open).
3. Directory spot-check (5 pages)
/annuaire/le-kef, /le-kef/nebeur, /annuaire/gafsa, /gafsa/metlaoui, plus a correctness check on /coupures/la-manouba/oued-ellil (the outage-page governorate slug is la-manouba, not manouba — same class of slug-guessing mistake flagged in two earlier journal entries, caught before it was reported as a false 404) — all 200, real data, correct title/meta.
4. Fix-tracking — both open PRs from the last 2 runs are now merged and verified live
- PR #12649 (07-27 seo-fixes): merged 2026-08-04, all 4 fixes confirmed live (§2 above, §1 sitemap check).
- PR #14134 (08-04 content-freshness): merged, both fixes confirmed live (ELMED bullet on
/steg, dead link removed from/tarifs).
This is the first audit since tracking started (07-02) where every previously-open mechanical item is closed and no countryos/tn PR is sitting in review.
5. Still open — non-mechanical, unchanged
- ogImage: still 0/13 static pages + 0/374 outage pages (
og:imageabsent from<head>on both/and/tarifs, spot-checked). Flagged 5 runs running now — needs a/generate-article-imagepass, not a text edit. - FAQ accordions on
/steg/*subpages: only/steg/numero-verthasFAQPageschema./steg/facture,/steg/raccordement,/steg/raccordement-gaz,/steg/service-client,/steg/solaire,/steg/coupures(6 pages) have none. Content-structure work, needs editorial judgment — not auto-appliable per the monorepo skill's own rules (schema/new-section additions are explicitly excluded from quick-win auto-apply). /steg/coupuresstill has no on-page schema beyond the breadcrumb (subset of the FAQ point above — it has no FAQ section to generate FAQPage schema from).
Top actions (ranked by impact/effort)
- [Non-mechanical] ogImage site-wide — highest page-count impact (387 pages with none), needs
/generate-article-image, 5th run flagged. - [Non-mechanical] Add FAQ sections (→ FAQPage schema) to the 6
/steg/*subpages that lack one — editorial content work. - No mechanical items this run — nothing left in the backlog that a text-only fix can address.
Chain decision
Zero mechanical items found this run (both prior PRs merged and verified; the only two remaining gaps — ogImage, FAQ content — are explicitly non-mechanical per the skill's own definition). Per the skill's threshold (chain only when ≥2 mechanical items), did not trigger tn:seo-fixes. No open PR exists either, so this isn't a "wait for review" skip like the last 2 runs — it's a genuine clean backlog.