Skip to content

SEO & AISEO improvement: Tiers 1–3 (metadata, structured data, content depth) - #349

Open
HarmlessHarm wants to merge 9 commits into
developfrom
claude/seo-aiseo-improvement-23j1m6
Open

SEO & AISEO improvement: Tiers 1–3 (metadata, structured data, content depth)#349
HarmlessHarm wants to merge 9 commits into
developfrom
claude/seo-aiseo-improvement-23j1m6

Conversation

@HarmlessHarm

Copy link
Copy Markdown
Collaborator

Summary

Implements Tiers 1–3 of the SEO & AISEO improvement plan (.planning/seo-aiseo-improvement.md). Resolves keyword cannibalization, adds structured data for AI crawlers, and deepens page content to become a source AI assistants cite.

Key Changes

Tier 1: Metadata & Internal Linking

  • Homepage pivot: Changed title from "Combat Tracker for D&D" to "D&D DM Tools - Combat Tracker, Encounter Builder & More" to own brand + suite, not the head term
  • Tool page titles sharpened: /tools/combat-tracker now "D&D Combat Tracker - Free Online Initiative Tracker for 5e" (includes "free"); /tools/encounter-builder now "D&D Encounter Builder - Free 5e Encounter & CR Difficulty Calculator"
  • H1 rule enforced: Each /tools/* page now has a keyword-bearing H1 via new heading prop on ToolsPage component (e.g., "D&D Combat Tracker", "D&D Encounter Builder")
  • Internal anchor text: Homepage feature chips now link to marketing pages (/tools/combat-tracker, /tools/encounter-builder) instead of deep app routes; anchor text contains target terms
  • Deep app routes: Added noindex,follow meta tags to /tools/*/build-*, /tools/*/create-*, /demo/run-encounter, /sign-in, /sign-up (via App.vue fallback title change)
  • Sitemap cleanup: Removed app routes (/sign-up, /sign-in, /tools/*/build-*, /tools/*/create-*) from public/sitemap.xml; added missing /tools/character-sync and /tools/homebrew-creation

Tier 2: Structured Data & Crawler Access

  • robots.txt: Added explicit Allow rules for AI crawlers (GPTBot, OAI-SearchBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended) and Sitemap: directive (codifies existing allow-all policy)
  • JSON-LD Organization: Added to homepage (src/views/Home.vue) with name, logo, founding date, contact, and social links
  • JSON-LD SoftwareApplication: Added to homepage (suite-level) and each /tools/* page (tool-scoped) with featureList and free Offer
  • JSON-LD BreadcrumbList: Added to ToolsPage component for all tool pages
  • JSON-LD FAQPage: Added to /tools/combat-tracker and /tools/encounter-builder (for AI extraction, not Google rich results)

Tier 3: Content Depth (AISEO)

  • Combat Tracker (src/views/Tools/CombatTracker.vue):

    • Added "How the Shieldmaiden combat tracker works" section (~200 words, self-contained prose)
    • Added "5e conditions the combat tracker helps you handle" with full reference table of all 15 SRD conditions + effects
    • Added "Combat rules Shieldmaiden handles for you" (concentration DC, resistances/vulnerabilities/immunities, temp HP, multi-target saves)
    • Added 10-question FAQ with answer-first structure (40–60 words each)
    • Added honest comparison section vs. Improved Initiative, D&D Beyond, Kobold Fight Club, D&D Battle Tracker
    • Added FAQPage JSON-LD schema
  • Encounter Builder (src/views/Tools/EncounterBuilder.vue):

    • Added "How the D&D 5e encounter builder works" section
    • Added "How encounter difficulty and XP thresholds work in 5e" with full XP threshold table (levels 1–20)
    • Added "Encounter building tips" (4 concrete tips)
    • Added

https://claude.ai/code/session_0114GSEB9PKkqdpgNmYx5SmM

Lakeyzer and others added 4 commits June 26, 2026 14:37
Records the four-tier SEO/AISEO plan and the §1 audit findings (robots.txt, sitemap, meta plumbing, JSON-LD, heading structure) gathered from the codebase before implementation.
Tier 1 - end keyword cannibalization and fix internal linking:
- Pivot homepage title/description to brand + suite; give combat-tracker
  the 'dnd combat tracker / initiative tracker' head term. Rewrite
  encounter-builder, monster-creator, spell-creator, character-sync titles
  and descriptions (unique, target term first, include 'free').
- Brand fallback title in App.vue so untitled routes (e.g. /sign-in) no
  longer inherit the combat-tracker title.
- noindex,follow on deep app/auth routes (build-*, create-*,
  /demo/run-encounter, /sign-in, /sign-up, /forgot-password) and all
  requiresAuth routes; keep canonicals self-referential.
- Point homepage feature chips and section links at /tools/* marketing
  pages instead of deep app routes; keyword-bearing anchor text; reword the
  competing 'Combat Tracker for D&D' homepage H2 to 'Our Combat Tracker'.
- ToolsPage: optional 'heading' prop for keyword-exact H1s.

Tier 2 - crawler access and JSON-LD:
- robots.txt: explicit AI-crawler Allow rules + Sitemap directive.
- sitemap.xml: drop app/auth routes (sign-in, sign-up, build-encounter,
  create-monster, create-spell), add character-sync.
- Organization + suite SoftwareApplication JSON-LD on the homepage;
  BreadcrumbList + per-tool SoftwareApplication JSON-LD via ToolsPage.
- Monster/Spell/Character-sync tool pages get keyword H1s and app schema.
Append answer-first, self-contained content below the existing copy on the
two priority tool pages (existing content untouched):

combat-tracker:
- 'How the Shieldmaiden combat tracker works' walkthrough.
- 15-condition SRD reference table linking to the conditions compendium.
- 'Combat rules Shieldmaiden handles for you' with rule citations
  (concentration DC, resistances, temporary HP, multi-target saves).
- 10-question FAQ (direct answer first, ~40-60 words) with FAQPage JSON-LD.
- Honest comparison vs Improved Initiative, D&D Beyond, Kobold+ Fight Club,
  D&D Battle Tracker.

encounter-builder:
- How-it-works, per-level XP threshold reference table, encounter tips.
- 5-question FAQ with FAQPage JSON-LD.
- Honest comparison vs Kobold+ Fight Club, D&D Beyond, Donjon.

FAQPage markup is included for AI-assistant extraction; Google retired FAQ
rich results in May 2026, so no SERP accordion is expected from it.
@HarmlessHarm
HarmlessHarm changed the base branch from main to develop July 24, 2026 09:53
claude and others added 5 commits July 24, 2026 10:03
… from combat-tracker

Removes the How-it-works walkthrough, the 15-condition reference table, the
FAQ section (with its FAQPage JSON-LD), and the competitor comparison from
the combat tracker page, along with their supporting data arrays and styles.
Keeps the SoftwareApplication schema and the 'Combat rules Shieldmaiden
handles for you' section.
Adds an llms.txt site summary (served at /llms.txt) plus an identical
/llms.md copy, describing Shieldmaiden's tools and reference pages for AI
assistants. Served statically from public/ like robots.txt and sitemap.xml.
…uilder copy

Staging review corrections:
- Homepage title reverted to lead with 'Combat Tracker' (Combat Tracker for
  D&D 5e - Free DM Companion App); the §3.2 pivot to 'D&D DM Tools' was
  withdrawn because Search Console shows most traffic arrives via combat
  tracker queries. Improved meta description kept; H1 untouched. Also revert
  the site-wide fallback title in App.vue for the same reason.
- Remove the self-comparison section and the FAQ block from
  /tools/encounter-builder (both rejected for tool pages), plus the now-unused
  faq data, FAQPage JSON-LD and .faq-item style. How-it-works, the XP
  threshold table and the tips list stay.
- Add a visible SRD 5.1 / OGL 1.0a source citation beneath the XP threshold
  table (footer attribution alone is insufficient for a reproduced table).
The `Content-Signal` (Cloudflare Content Signals Policy) and
`Content-Usage` (IETF AI Preferences / aipref) directives explicitly
communicate preferences for how AI agents should use the site's
content for search, input, and training.

This provides granular control for AI crawlers and enhances the
overall AISEO strategy.
…1m6' into claude/seo-aiseo-improvement-23j1m6
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants