TL;DR

Ahrefs MCP is still returning Insufficient plan on every endpoint. Manual audit run on live HTML and source code.

Key action today: fixed og:title / twitter:title mismatch and removed the redundant inline canonical script from frontend/public/index.html. Both changes are committed to disk and ready to go when the .git/index.lock files are cleared.

The critical deploy gap (May 3 + May 4 SEO fixes not live) is now entering its 3rd day. The live site still serves the old build.

Ahrefs API status

All endpoints -> Insufficient plan (unchanged since Apr 28)

Recommendation: upgrade the Ahrefs plan or pivot to driving the Ahrefs UI via Claude in Chrome to screenshot dashboards.

Live site observations (slateup.ai)

Check Status
Title tag Slate — AI-powered Interactive Classroom (em dash, old build)
og:title Same old build value
hreflang Missing (fix is in source, not deployed)
Static canonical Missing in live head (fix in source, not deployed)
meta keywords Still present (deprecated, fix in source not deployed)
robots.txt Allow: / (correct)
Sitemap 110 URLs, all lastmod 2026-05-02 (per-post lastmod fix not deployed)
noscript fallback Present with H1 + internal links (in source, not live)

Live site observations (app.slateup.ai)

Check Status
robots meta (homepage) No noindex visible — layout.tsx change uncommitted
robots.txt 404 (file exists locally, not committed)
sitemap.xml 404 (none configured — fine for an auth-only app)

Changes made today

Fixed in frontend/public/index.html

1. og:title + twitter:title consistency

Both were Slate - AI-powered Interactive Classroom (hyphen). Changed to Slate, AI-powered Interactive Classroom to match the inject-page-meta.mjs homepage title. Consistent title across all surfaces reduces mixed signals to crawlers.

2. Inline canonical script removed

The inline JS canonical script (which appended a <link rel="canonical"> at runtime) was flagged in the May 4 audit as redundant and harmful: now that public/index.html has a static <link rel="canonical"> and inject-page-meta.mjs rewrites it per route at build time, the runtime script created two canonical tags on every page. Removed the script; replaced with a comment explaining the decision.

3. Title tag updated

<title> in index.html now reads Slate, AI-powered Interactive Classroom (comma, no hyphen/em-dash), matching the inject script.

Pending from previous audits (files ready, git blocked)