How I Built an Automated SEO & Code-Quality Scorer for My Travel Camera Blog (0–100)

Automated Quality Gate

Every travel camera post has to do two jobs at once

Rank in search engines and run on clean, maintainable code. Manually checking both on 50+ HTML files was never going to scale — so I built a scoring system that grades each file on a 0–100 scale across four categories, and runs automatically on every change.

4 categories 0–100 scale 50+ HTML files Runs on every push

Here's exactly how it works, what each category measures, and how the workflow keeps my blog's SEO and code quality from quietly drifting.

01

The Scoring System (0–100 per Category)

Each HTML file gets four independent scores, each capped at 100 points.

On-Page SEO Score

100 pts

The basics that search engines and social platforms read first.

  • Title tag optimization15
  • Meta description15
  • H1 tag10
  • Canonical URL10
  • Image alt text10
  • Open Graph tags10
  • Twitter cards5
  • JSON-LD structured data10
  • Robots meta5
  • Viewport & lang10

E-E-A-T Score

100 pts

Experience, Expertise, Authoritativeness, and Trustworthiness — the signals that make Google and AI engines treat you as a real source.

  • Author name & bio30
  • Publication & modified dates20
  • About page link10
  • Contact info10
  • Expertise indicators10
  • Trust signals10
  • External authoritative links10

HTML Clean Code Score

100 pts

The code health that keeps the site fast and accessible.

  • HTML5 doctype10
  • Semantic elements15
  • Inline styles10
  • Deprecated tags10
  • Accessibility20
  • Meta charset5
  • Language attribute5
  • Clean URLs5
  • No debug code10
  • Heading hierarchy10

This is the same foundation that keeps travel content discoverable — well-written meta descriptions, descriptive alt text, and keywords placed naturally in headings [1].

02

What the Workflow Features

The scorer isn't a one-off script — it runs as a continuous quality gate.

Runs on every push / PR that changes HTML
Weekly scheduled runs to catch drift
Manual trigger option for on-demand audits
Comments on PRs with the full results
Creates issues for any score below 70%
Auto-closes issues once scores improve
Uploads detailed reports as build artifacts
Scales to 50+ HTML files without slowing down
03

Why This Matters for a Travel Camera Blog

A travel camera blog lives and dies on credibility. Readers trust you to recommend gear they'll spend hundreds on, and search engines reward that same trust through E-E-A-T signals. By treating SEO and code quality as automated, measurable thresholds — instead of things I "get around to" — I catch problems the moment they're introduced:

A missing alt text on a hero image fires a warning before it ever ships.
A broken internal link drags the internal-link score down, surfacing the gap.
A page that loses its author bio drops below 70% and opens an issue automatically.

The workflow becomes a silent editor that never gets tired — reviewing every page, every week, against the same standard.

04

Setting It Up

The pattern is simple: a CI workflow checks out the repo, runs the scoring script across all HTML files, writes a report, and posts the results back to the PR or as an issue. Because reports upload as artifacts, I keep a historical record of how each page's quality evolves over time — invaluable for spotting slow degradation.

Checkout repo → Score all HTML files → Write report → Comment on PR → Open / close issues → Upload artifacts

Built with GitHub Actions + a custom scoring script · Scoring weights are tunable per project.