New Tool

page-profile

Profile any web page from your terminal.
HTTP status, meta tags, Open Graph, JSON-LD, headings, alt text, security headers — one command, no install.

Download (tar.gz) Single file Quick start →

How it works

$ python3 page_profile.py https://example.com
page-profile v1.1.0 — https://example.com
status: HTTP 200
──────────────────────────────────────────────────────
Title: Example Domain (14 chars)
Description: Missing
Canonical: —
Language: en
──────────────────────────────────────────────────────
Open Graph: All missing
Twitter Card: Missing
JSON-LD: — 0 blocks
Headings: 1 H1 — Example Domain
Security: No HSTS, no CSP
Score: 6.0/21.0 Grade: F

Or get JSON output for CI pipelines:

$ python3 page_profile.py https://example.com --json
{
"url": "https://example.com",
"status": 200,
"title": "Example Domain",
"canonical": null,
"score": 6.0,
"grade": "F"
}

Try it now — no install

Enter any URL and get the same report the CLI produces, right in your browser.

Quick start

Zero dependencies — uses only the Python standard library. Python 3.8+ required.

$ curl -O /downloads/page-profile/page_profile.py
$ python3 page_profile.py https://your-site.com

Or download the full package:

$ curl -O /downloads/page-profile/page-profile-1.1.0.tar.gz
$ tar xzf page-profile-1.1.0.tar.gz
$ cd page-profile-1.1.0
$ python3 page_profile.py https://your-site.com

What it checks

CategoryChecks
StatusHTTP status code, redirect chain
Core metaTitle (length), meta description (length), canonical URL, language, charset
SocialOpen Graph (og:title, og:description, og:image, og:type), Twitter Card
Structured dataJSON-LD block count and @types
ContentHeading 1-6 outline, image alt-text coverage
SecurityHSTS, CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy
i18nLanguage declaration, hreflang alternates
Score21-point weighted score with letter grade (A–F) and actionable penalties

Tiers

Free

$0
  • All checks: core, social, structure, security, i18n
  • Terminal report with score and grade
  • JSON output for CI pipelines
  • Redirect chain trace
  • Zero dependencies — single Python file
Download free →

Pro

$19
per year
  • Everything in Free, plus:
  • Comparison mode — diff two URLs side by side
  • Batch mode — profile multiple URLs, ranked by score
  • Client-ready HTML report
  • Offline license — no account, no phoning home
  • History tracking (free for everyone)
Available soon

Free vs Pro — side by side

Feature Free Pro
All checks (meta, social, security, i18n)
Score + grade report
JSON output for CI
Compare two URLs side by side
Batch mode (many URLs, ranked)
Client-ready HTML report
Price$0 forever$19/year

Pro is a one-time decision per year: offline license key, no account, no phoning home. If you audit pages for clients, the HTML report and batch mode pay for themselves on the first job.

Why use it?

Live example

Running against mahope.tools/:

$ python3 page_profile.py https://mahope.tools/
page-profile v1.1.0 — https://mahope.tools/
status: HTTP 200
──────────────────────────────────────────────────────
Title: EU Compliance Guides for Small Web Agencies
(68 chars)
Description: 214 chars (outside recommended 50-165)
Canonical:
OG: All three present
JSON-LD: 1 block (Series)
Images: 5/5 with alt text
Hreflang: 3 alternates
Score: 16.5/21.0 Grade: B

Free JSON API

Everything the web tool does is also a public REST endpoint — no key, no signup. Fetch any page and get structured JSON back: status, meta, Open Graph, JSON-LD, headings, alt-text coverage, security headers, plus a quality score and grade.

$ curl "https://mahope.tools/api/profile?url=https://example.com"
{ "ok": true, "status": 200, "title": "Example Domain",
"score": 7, "max_score": 21, "grade": "F", ... }

Fair use: 30 requests per visitor per day. For unlimited local runs, use the single-file Python CLI instead — same checks, no limits. Full docs: API reference · OpenAPI spec.

Frequently Asked Questions

Do I need to install anything?

No. page-profile is a single Python file using only the standard library. Download it, run it with Python 3.8+ — no pip install, no npm, no browser automation.

What does it check on a page?

HTTP status and redirects, title and meta description lengths, canonical URL, language, Open Graph and Twitter Card tags, JSON-LD structured data, heading outline, image alt-text coverage, and security headers (HSTS, CSP, X-Frame-Options and more).

Does it work on any website?

Yes. It works on any public URL regardless of platform — WordPress, Shopify, Webflow, Next.js, Squarespace or hand-written HTML. Nothing is installed on the target site.

Can I use it in CI pipelines?

Yes. Run with --json to get machine-readable output including the score and grade, so you can gate deploys on a minimum quality threshold.

What is the difference between Free and Pro?

The free version covers all checks, the terminal report with score and grade, and JSON output. Pro ($19/year) adds comparison mode between two URLs, batch mode and client-ready HTML reports. Keys work offline — no account needed.