Skip to content

SEO: internally link the free tools - #227

Merged
Programcode merged 1 commit into
mainfrom
seo/link-free-tools
Oct 24, 2026
Merged

Programcode merged 1 commit into
mainfrom
seo/link-free-tools

Conversation

@Programcode

Copy link
Copy Markdown
Owner

What

Until now, only the footer and the sitemap linked to the free tools under /tools. This PR links each tool from the pages that cover the same topic, and makes /tools/debate-timer the page that owns "debate timer".

  • llms.txt. A new "Free tools" section lists /tools and the four tool pages. The generator reads each name and blurb from FREE_TOOLS in ToolPageLayout.tsx, so llms.txt says what the tool pages say.
  • /online-debate-timer. The page is now a timing guide. The title is "Debate Speech Times by Format: How Timing Works" and the H1 is "How Debate Speech Times Work in Each Format". Its first hero button, "Open the free debate timer", goes to /tools/debate-timer. The page is not redirected or deleted.
  • Ten guides each get one sentence that links the matching tool:
    • how-to-flow-in-debate links the flow sheet.
    • debate-topics-for-students and debate-motion-analysis link the motion generator.
    • debate-prep-time-management links the timer and the speech time calculator.
    • public-forum-debate, policy-debate, british-parliamentary-debate and world-schools-debate link the timer.
    • lincoln-douglas-debate links the speech time calculator.
  • Homepage. A line under the short answer links /tools, in English, Spanish and Hungarian.

For reviewers

  • About 20 other guide pages change by one line. Their "Related guides" block picks up the timer guide's new title.
  • On /online-debate-timer I changed more than the title and H1. The short-answer question, the three feature cards and two FAQs changed, and there is a new "Speech times by format" H2. The old copy said the timer has no BP or World Schools preset and doesn't time cross-examination or prep. That is true of the in-app timer and false for the free timer the page now sends people to, so the copy now says which timer it means. The World Schools guide had the same claim and gets the same fix. This overlaps the guide-heading QA running in another thread.
  • The guides exist only in English (the generator writes lang="en"), so the guide links are English only. The homepage line is translated.
  • generate_seo_content.py now turns [label](/path) in paragraph blocks into links, and a page can set a tool hero button. FAQ answers and short answers stay plain text because they also go into JSON-LD.
  • Each changed guide sets "modified": "2026-10-23". CONTENT_DATE is unchanged, so the other pages keep their sitemap lastmod.

Verification

  • npm run build passes, including prerender, sitemap and check-site (48 HTML files; every sitemap and llms.txt URL resolves).
  • npm run lint, npm run typecheck, npm test (651 tests) and npm run docs:check pass.
  • In a browser (vite preview with Playwright), the homepage line renders in English, Spanish and Hungarian, and its link opens /tools. The timer guide's hero button opens /tools/debate-timer, and the flow guide's link opens /tools/debate-flow-sheet. The screenshots stayed on the VPS and are not attached.
  • These are local results. CI on this head is the real pass.

🤖 Generated with Claude Code

llms.txt lists the five /tools pages, read from FREE_TOOLS in
ToolPageLayout.tsx. /online-debate-timer now targets speech times by
format and leads with a button to /tools/debate-timer. Ten guides link
the matching tool in one sentence, and the homepage short answer links
/tools in the body.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 15:25

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown

Warning

Review limit reached

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Next included review available in 9 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
📥 Commits

Reviewing files that changed from the base of the PR and between cd8e4de and ea7c893.

📒 Files selected for processing: 37
  • public/ai-rebuttal-generator/index.html
  • public/ai-vs-traditional-debate-prep/index.html
  • public/best-ai-debate-tools/index.html
  • public/british-parliamentary-debate/index.html
  • public/congress-debate/index.html
  • public/debate-block-file-guide/index.html
  • public/debate-clash-points/index.html
  • public/debate-collapsing-strategy/index.html
  • public/debate-fallacies/index.html
  • public/debate-judge-adaptation/index.html
  • public/debate-motion-analysis/index.html
  • public/debate-prep-time-management/index.html
  • public/debate-pronunciation-and-delivery/index.html
  • public/debate-speech-structure/index.html
  • public/debate-topics-for-students/index.html
  • public/debatelab-pricing/index.html
  • public/debatelab-vs-chatgpt/index.html
  • public/debatelab-vs-debateclub/index.html
  • public/debatelab-vs-windebate/index.html
  • public/how-to-cross-examine-in-debate/index.html
  • public/how-to-flow-in-debate/index.html
  • public/how-to-practice-rebuttals/index.html
  • public/how-to-prepare-for-a-debate-tournament/index.html
  • public/how-to-weigh-in-debate/index.html
  • public/lincoln-douglas-debate/index.html
  • public/llms.txt
  • public/online-debate-timer/index.html
  • public/policy-debate/index.html
  • public/public-forum-debate/index.html
  • public/world-schools-debate/index.html
  • scripts/generate_seo_content.py
  • scripts/seo_answers.py
  • scripts/seo_guides.py
  • src/components/landing/ShortAnswer.tsx
  • src/locales/tools/en.json
  • src/locales/tools/es.json
  • src/locales/tools/hu.json
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Note

🎁 Summarized by CodeRabbit Free

Your organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Essentials by visiting https://app.coderabbit.ai/settings/billing.

Comment @coderabbitai help to get the list of available commands.

@Programcode
Programcode merged commit 25db8f9 into main Oct 24, 2026
3 of 9 checks passed
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.

2 participants