OnlineFreeTools.org
  • Home
  • Tools
    Health & body →
    BMI Calculator — How to Calculate Body Mass IndexBMR & TDEE Calculator — How to Calculate Daily CaloriesBody Fat Calculator — How to Estimate Body Fat PercentageHeart Rate Zone CalculatorIdeal Weight Calculator — How to Estimate Ideal Body WeightMacro Calculator — Calories to Protein Carb Fat GramsOne-Rep Max Calculator (Epley)Pace Calculator — min/km and Speed
    Personal money →
    CAGR Calculator — How to Calculate Compound Annual Growth RateCompound Interest Calculator — How to Calculate Future ValueDebt Payoff Calculator — Months to Clear a BalanceDiscount Calculator — How to Calculate Sale PriceEMI Calculator — How to Calculate Loan PaymentsInflation Calculator — Future Purchasing PowerPercentage Change Calculator — From Old Value to NewPresent Value Calculator — PV and FV ModesRule of 72 Calculator — Years to DoubleSalary to Hourly Calculator — How to Convert Pay RatesTip Calculator — Tip Amount and SplitVAT / GST Calculator — Add or Extract Tax
    Business finance →
    Break-Even Calculator — How to Calculate Break-Even PointContribution Margin Calculator — Price Minus Variable CostGross Margin Calculator — How to Calculate Gross MarginIRR Calculator — Internal Rate of ReturnHow to Calculate Marginal Revenue — MR Calculator (ΔTR / ΔQ)Markup Calculator — How to Calculate Markup PercentageHow to Calculate NPV — Net Present Value CalculatorPayback Period Calculator — Years to Recover InvestmentProfit Margin Calculator — Net or Operating MarginROI Calculator — How to Calculate Return on Investment
    Math & stats →
    Confidence Interval Calculator — How to Calculate a CIExponent Calculator — How to Calculate PowersGPA Calculator — How to Calculate Weighted GPALogarithm Calculator — How to Calculate LogsMean Calculator — Average of a Number ListMedian and Mode CalculatorP-Value Calculator — How to Calculate a P-ValuePermutation and Combination CalculatorQuadratic Equation Solver — Roots and DiscriminantSample Size Calculator — How to Estimate Required nScientific Notation Calculator — How to Convert Scientific NotationSignificant Figures Calculator — How to Count and Round Sig FigsStandard Deviation Calculator — How to Calculate SD and VarianceZ-Score Calculator — How to Calculate a Standard Score
    Geometry & measure →
    Aspect Ratio Calculator — How to Calculate and Scale RatiosCircle Calculator — Area and CircumferenceGradient Calculator — Multivariable ∇f (Partial Derivatives)Pythagorean Theorem Calculator — How to Find a Missing SideSlope Calculator — How to Calculate Slope Between Two PointsTriangle Area CalculatorVolume Calculator — Box and SphereUnit Converter — Length / Mass / Temperature / Area / Volume / Speed
    Science & physics →
    Acceleration Calculator — Change in VelocityDensity Calculator — Mass over VolumeOhm’s Law Calculator — Resistance and PowerVelocity Calculator — Distance over TimeMeasuring Magnetic Fields — Field strength calculator
    Home & DIY →
    Concrete Calculator — How to Estimate Concrete VolumePaint Calculator — How to Estimate Paint NeededTile Calculator — How to Estimate Tile QuantitySquare Feet to Square Meters — Area Converter for Homes & Renovation
    Time & calendar →
    Age Calculator — Chronological Age from BirthdateDate Difference Calculator — Days and WeeksTime Zone Converter — Compare One Moment WorldwideUnix Timestamp Converter — Epoch ↔ Readable Time
    PDF & docs →
    Batch compress PDFs for emailCompress PDF — Shrink File Size in Your BrowserCrop PDF — Trim Page Margins in Your BrowserMerge PDF — Combine Files in Your BrowserOrganize PDF — Reorder or Remove Pages in Your BrowserAdd Page Numbers to PDF — In Your BrowserPDF Page to Image Sizes — Multi-Size Export PackPDF to JPG — Convert Pages to Images in Your BrowserPDF to Markdown — Extract Text for Notes in Your BrowserPDF Watermark — Stamp Text on Every Page in Your BrowserProtect PDF — Password-Encrypt in Your BrowserRotate PDF — Fix Page Orientation in Your BrowserSplit PDF — Extract Pages LocallyUnlock PDF — Remove Password You Already Know
    Image & media →
    Add Text Watermark to Photo — Local Browser ToolAmazon main image sizeApple-touch-icon 180×180Batch watermark product photosBulk compress PNG imagesBulk compress product photosBulk convert images to JPGBulk convert images to PNGBulk convert images to WebPExtract Colors from Image — Palette & Click PickFlip Image — Mirror Horizontally or VerticallyAdd Border to Image — Color & Width OnlineImage Compressor — Resize, Quality & Target Size LocalCrop & Resize Image — Local Aspect PresetsPhoto EXIF Viewer & Remover — GPS, Camera & Local StripImage Format Converter — PNG JPEG WebP AVIF BMP GIF ICO SVGConvert Image to Grayscale — Black & White OnlineMerge Images — Combine Photos into One CollageImage Optimizer — WebP, AVIF & MozJPEG LocalOverlay Images — Put a Logo on a PhotoImage to Base64 Converter — Encode & Decode LocallyImages to GIF — Make an Animated GIF LocallyImages to PDF — Combine Photos into One FileImages to PowerPoint — Photos to PPTX SlidesImages to Word — Build a DOCX from PhotosInstagram post sizeInstagram story sizeiOS app icon sizeiPhone 6.9 screenshot sizeLinkedIn banner sizeOpen Graph image sizeSVG optimizerYouTube thumbnail size
    Design & brand →
    Generate Brand Color Scale — 50–950 Palette & CSS TokensBrand Style Guide — Generate a Modular Draft You Can EditSmart Website Color Scheme — Semantic CSS TokensWCAG Contrast Checker — AA/AAA Ratio Online
    SEO & growth →
    Check if a URL is blocked by robots.txtCheck SSL certificate expirationCore Web Vitals CheckerFind and validate XML sitemapHreflang GeneratorIndexNow — Bing URL Submit, Key Check & Status CodesGoogle SERP PreviewMeta Tag GeneratorOn-Page SEO CheckerOpen Graph PreviewRobots.txt GeneratorJSON-LD Schema GeneratorXML Sitemap GeneratorSPF DKIM DMARC checkerUTM BuilderValidate security.txt
    Network & IP →
    Add WWW to DNS — A/CNAME, Apex Rules & Provider GuidesAWS VPC CIDR planner — Split a VPC into AZ subnetsCIDR cheat sheet — Click a prefix to see mask and hostsCIDR to IP range — Expand a prefix into usable addressesDomain Lookup — Check DNS Records & Registration OnlineWhat Is My IP Address — See Your Public IP (IPv4 or IPv6)IP range to CIDR — Turn start–end addresses into prefix listsIPv6 CIDR calculator — Expand a prefix into its address rangePrivate CIDR ranges — Check if an IP or prefix is private or special-useTerraform cidrsubnet — Get the child CIDR Terraform would returnCheck HTTP Response Headers
    Dev & data →
    Base64 Encode & Decode — Convert Text in Your BrowserChatGPT export to MarkdownCSV ↔ JSON Converter — Types, Delimiters & Localcurl to fetchHTML Entity Encoder & Decoder — Escape, Unescape & LocalJSON Schema Validator — Draft-07 Paths & LocalJWT Decoder — Read Header & Payload Locally (No Verify)Markdown ↔ HTMLYAML ↔ JSON Converter — Types, Multi-doc & Local
    AI prompt tools →
    Android prompt builder — Local + Optional AIFilm prompt builder — Local + Optional AIiOS prompt builder — Local + Optional AIMidjourney prompt builder — Local + Optional AIProduct design prompt builder — Local + Optional AIPrompt template builder — Local + Optional AIShort drama prompt generator — Local + Optional AISketch.app prompt generator — Local + Optional AIWriting prompt generator — Local + Optional AI
    Text compare →
    Compare two text files onlineCompare two Word documents for differencesExcel compare filesJSON diff checker onlineCheck difference between two texts
    Security & IDs →
    Batch checksum release filesFile Hash Checker — Verify Digests in Your BrowserFile metadata analyzerRandom Password Generator — Create Passwords LocallyUUID & ULID Generator — Create IDs in Your Browser
    Files & archives →
    Archive Extractor Online — Open Compressed Files in Your BrowserCreate zip fileMagnet Link Decoder — Parse Info Hash and Trackers LocallyUnzip File Online — Extract ZIP Files in Your Browser
  • Tool topics
  • Tool types
  • Dev Logs
☕ Buy me a coffee

Navigation

Home

Shipped Information Gain on all 18 `/topics/{id}` leaves: grouped decision tables, workflows, cluster examples, best-for cards, and ten-locale copy; choose/guide prose is no longer rendered. | Dev Logs

Back to Logs

Date: 2026-09-02 11:17 Summary: Shipped Information Gain on all 18 /topics/{id} leaves: grouped decision tables, workflows, cluster examples, best-for cards, and ten-locale copy; choose/guide prose is no longer rendered. Visibility: people

[question] 执行进行优化topic页面

[try to solve]

Context

Topic leaves at /topics/{id} were still thin after a same-day guide+FAQ pass: 18 pages shared one isomorphic template (intro → choose → limits → guide → homepage cards → FAQ×4). A second analysis showed a larger directory-farm risk (/where-to-use-tools and /tool-type), but the user asked to thicken topics first and not 301/noindex taxonomy without a separate confirmation.

Quality bar for this ship: every named tool must have at least one sentence that is false on the homepage card (required inputs, failure mode, or “use another slug”). Tables are a format, not the gain. Do not clone tool-page formulas. Do not add empty isomorphic tables. H1 is a decision question; nav label stays a short tag.

Process

  1. Added a catalog-aligned structure module (scripts/site/topic-ig.mjs): per topic, groups[].slugs, ordered workflow, relatedTopics, optional citations, ymyl / localCluster. Prompt cluster workflow is two steps (prompt-template-builder then writing-prompt-generator). Science workflow is velocity then acceleration.
  2. Rewrote the leaf renderer (scripts/site/components/content-topics.mjs):
    • Does not render choose or guide bodies.
    • Grouped decision tables (job / link to /tools/{slug} / need / skip).
    • Ordered workflow (<ol>) only when there are at least two steps.
    • Cluster numeric/process example.
    • Limits plus related-topic links and clickable authority URLs (WHO on health).
    • Primary cards grouped with best-for blurbs (topic_*_card_*), not homeDesc.
    • Secondary cards use a why-this-is-secondary line.
  3. Authored EN and ZH independently, then eight more locales (es/ar/pt plus id/fr/ja/ru/de) with the same keys. Generator scripts/site/build-topic-ig.mjs flattens to scripts/site/i18n-topic-ig.mjs and checks: every primary slug in a table row, every secondary slug has a why, flow length matches structure, FAQ = 4, English meta desc 120–160 characters.
  4. Merged IG last in t() so title/desc/intro/FAQ from IG override older topic + guide shards. i18n merge order: topic → guide → IG.
  5. English business-finance meta desc was 165 characters; shortened to the 120–160 gate, then regenerated.
  6. npm run build:site:full (this repo has no build:site alias). Spot-checked prerendered HTML. lint:seo passed (existing title/orphan warnings only).

Root cause / analysis

Homepage cards already say what a tool is. Repeating tool names in a “how to pick” paragraph adds tokens, not facts. SERP PDF hubs already show feature matrices; a second matrix of card titles would be zero incremental value. The incremental facts live in need (what you must already have) and skip (when this slug fails or another slug is the job). Grouping by sub-job (merge vs compress vs protect; platform size vs generic compress) stops one giant isomorphic table.

Choose vs guide had high lexical overlap; rendering neither avoids the same paragraph twice. FAQ now answers questions the table cannot (rights/DRM, “is this a diagnosis”, upload policy), not a fifth recitation of slugs.

Taxonomy leaves remain homepage clones. That is a scaled-content risk, but changing their indexability is a product decision (301 vs noindex vs unique modules) and was out of scope.

Solution

Live leaf shape (example: English /topics/pdf-docs):

  • H1: “Merge, compress, or protect: which PDF step first”
  • Grouped tables with tool links (/tools/merge-pdf, etc.)
  • Workflow: merge → organize → compress once → protect last
  • Worked example: 12-page pack vs 8 MB email cap
  • Cards use table “need” facts, not home blurbs
  • #topic-ig-table (old #topic-guide id retired)

Health (zh) includes a WHO obesity/overweight fact-sheet link. Japanese chrome is Japanese (not Portuguese leftovers from an earlier scaffold).

Regenerate copy with npm run build:topic-ig after editing topic-ig-copy-*.mjs. That script is not wired into build:site:full; the generated i18n-topic-ig.mjs is what pages read.

Notes / boundaries

  • Did not 301 or noindex /where-to-use-tools or /tool-type. Confirm before any crawl change.
  • Did not add FAQPage schema for rich results (FAQ rich results retired). Visible Q&A remain for humans.
  • lint:taxonomy still fails on pre-existing writing-prompt-generator: missing/invalid scenario writing; unrelated to this topic pass.
  • Interactive browser click-through was not available in this session; verification was prerendered HTML + renderer smoke tests.
  • Old choose/guide i18n keys remain in shards so a rollback is possible; they are unused in the leaf template.

[actions]

  • Added scripts/site/topic-ig.mjs, build-topic-ig.mjs, topic-ig-copy-en.mjs, topic-ig-copy-zh.mjs, topic-ig-copy-rest*.mjs, generated i18n-topic-ig.mjs.
  • Updated leaf renderer, tool-card desc override, i18n.mjs merge, public/styles/site.css, package.json script build:topic-ig.
  • Regenerated site with npm run build:site:full; rebuilt topic HTML after #topic-ig-table id change; gzipped _pages.
OnlineFreeTools.org · Learning project · Iterating
About·Privacy·Terms·Contact·GitHub