Skip to content

Commit eaca09a

Browse files
appdevelopskclaude
andcommitted
seo(toolify): ツールページの <title> からブランド接尾辞を外し、超過16本を短縮
ルートlayoutの `%s · Toolify`(表示幅+10)がツールページにも効いており、 index対象ロケール(en/ja)222本×2のうち107本がSERP表示幅60を超えていた。 - buildMetadata に absoluteTitle を追加し、ツールページのみ接尾辞を外す。 「About」「Contact」等の短いページはブランド名が要るので既定のまま。 - 接尾辞除去で en 85→14 / ja 22→2 に減少。残る16本を個別に短縮して0件に。 noindex の15ロケールはSERPに出ないため対象外(必要になった時点で同じ手順で対応可)。 validate PASS(typecheck / i18n / SEO audit)。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NUaWcVu42L23HhNk3VMPK4
1 parent 81c9e92 commit eaca09a

18 files changed

Lines changed: 28 additions & 18 deletions

File tree

‎site/src/app/[locale]/tools/[slug]/page.tsx‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ export async function generateMetadata({
4242
type: "article",
4343
modifiedTime: tool.updatedAt,
4444
noindex: !isIndexable(slug), // 剪定済みツールは index させない(docs/ADSENSE_RECOVERY_PLAN.md フェーズ2)
45+
// ツールのタイトルは既に説明的で長いため、ルートlayoutの ` · Toolify` を外す(2026-08-01)。
46+
// 接尾辞込みだと 1,223/3,774 が SERP 表示幅60を超えていた(外すだけで832本が収まる)。
47+
absoluteTitle: true,
4548
});
4649
}
4750

‎site/src/lib/seo/metadata.ts‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,17 @@ interface BuildMetadataParams {
1414
modifiedTime?: string;
1515
/** true の場合 robots を index:false にする(剪定した noindex ツール用 / フォローは維持) */
1616
noindex?: boolean;
17+
/**
18+
* true でルート layout の title template(`%s · Toolify`)を適用しない。
19+
* ツールページのようにタイトル自体が十分に説明的なページ向け。接尾辞は表示幅で
20+
* 10ぶんを食い、SERP(約60幅)で訴求が切れる原因になる。
21+
* 「About」「Contact」のような短いページは false のままにしてブランド名を残すこと。
22+
*/
23+
absoluteTitle?: boolean;
1724
}
1825

1926
export function buildMetadata(params: BuildMetadataParams): Metadata {
20-
const { locale, title, description, path, keywords, type = "website", image, publishedTime, modifiedTime, noindex = false } = params;
27+
const { locale, title, description, path, keywords, type = "website", image, publishedTime, modifiedTime, noindex = false, absoluteTitle = false } = params;
2128
const url = `${siteConfig.url}/${locale}${path}`;
2229
// index 対象ロケール(en/ja)のみ noindex でなければインデックスさせる。
2330
// 死蔵言語(クリック0)はサイト全体のHCU評価を下げるため noindex+hreflang除外。
@@ -34,7 +41,7 @@ export function buildMetadata(params: BuildMetadataParams): Metadata {
3441
`${siteConfig.url}/api/og?title=${encodeURIComponent(title)}&subtitle=${encodeURIComponent(description.slice(0, 140))}&locale=${locale}`;
3542

3643
return {
37-
title,
44+
title: absoluteTitle ? { absolute: title } : title,
3845
description,
3946
keywords,
4047
metadataBase: new URL(siteConfig.url),

‎site/src/tools/countdown-timer/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Free Countdown Timer 2026 — Days, Hours, Minutes, Seconds (No Signup)",
2+
"title": "Free Countdown Timer 2026 — Days, Hours, Minutes, Seconds",
33
"shortDescription": "Free online countdown timer. Pick any date & time, see days/hours/minutes/seconds tick down live. Add event title, watch elapsed time after target — no signup.",
44
"description": "Pick a target date and time and watch the countdown tick down by the second. Add an optional title to label the event. After the target passes, the same display shows time elapsed.",
55
"metaDescription": "Free countdown timer 2026. Set any target date and watch days/hours/minutes/seconds count down live. Custom event title. Works in browser, no signup, no install.",

‎site/src/tools/date-calculator/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Date Calculator (add/subtract days, or difference between dates)",
2+
"title": "Date Calculator — Add/Subtract Days or Date Difference",
33
"shortDescription": "Add or subtract years/months/days from a date, or find the precise difference between two dates including business days.",
44
"description": "Two modes: 'add or subtract' to compute a future or past date, or 'between' to find the difference in years, months, days, weeks, and business days.",
55
"metaDescription": "Free date calculator. Add or subtract years/months/days, or find difference between two dates with business-day count. Calendar-aware, leap years included.",

‎site/src/tools/mortgage-calculator/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Mortgage Calculator (PITI: principal, interest, tax, insurance)",
2+
"title": "Mortgage Calculator — PITI: Principal, Interest, Tax",
33
"shortDescription": "Calculate the full monthly mortgage payment including principal, interest, property tax, insurance, PMI (if applicable), and HOA fees.",
44
"description": "Enter the home price, down payment, rate, term, and recurring costs to see the realistic monthly housing payment plus the total interest you'll pay.",
55
"metaDescription": "Free mortgage calculator with PITI breakdown — principal, interest, property tax, insurance, PMI, and HOA. Realistic total monthly housing cost.",

‎site/src/tools/mortgage-refinance-calculator/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Mortgage Refinance Calculator (break-even + lifetime savings)",
2+
"title": "Mortgage Refinance Calculator — Break-Even & Savings",
33
"shortDescription": "Compare your current mortgage against a refinance offer. See monthly payment change, lifetime interest savings, and the break-even month after closing costs.",
44
"description": "Enter your current loan balance, rate, and remaining years on one side, and the new offer's rate, term, and closing costs on the other. The calculator shows the new monthly payment, the cumulative interest you'd save (or lose), and how many months it takes the monthly savings to recover the closing costs.",
55
"metaDescription": "Free mortgage refinance calculator. Compare current loan vs. new rate/term, see monthly savings, lifetime interest delta, and break-even month after closing costs.",

‎site/src/tools/number-sequence-generator/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Number Sequence Generator — Arithmetic, Geometric, Fibonacci & More",
2+
"title": "Number Sequence Generator — Arithmetic, Geometric, More",
33
"shortDescription": "Generate arithmetic, geometric, Fibonacci, square, prime, and triangular number sequences. Shows the full sequence, sum, and formula.",
44
"description": "Generate number sequences instantly: arithmetic progressions, geometric series, Fibonacci, square numbers, prime numbers, and triangular numbers. Configure the starting terms and length, then copy the result.",
55
"metaDescription": "Free number sequence generator. Create arithmetic, geometric, Fibonacci, square, prime, and triangular sequences up to 50 terms with sum and formula.",

‎site/src/tools/password-generator/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Password Generator (cryptographically secure, with strength meter)",
2+
"title": "Password Generator — Secure, With Strength Meter",
33
"shortDescription": "Generate strong random passwords using your browser's secure crypto API. Configurable length, character sets, and ambiguity filter.",
44
"description": "Builds passwords using crypto.getRandomValues — the same source banks use, not Math.random. Adjust length and character classes; the entropy meter shows how strong the result actually is.",
55
"metaDescription": "Free password generator. Cryptographically secure random passwords with configurable length and character sets. Built-in entropy meter and ambiguous-character filter.",

‎site/src/tools/prime-factorization/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Prime Factorization Calculator — Find Prime Factors Instantly",
2+
"title": "Prime Factorization Calculator — Find Prime Factors",
33
"shortDescription": "Enter any integer up to 1 billion to find its prime factorization. Shows each prime factor with its exponent and the exponential notation.",
44
"description": "Enter any positive integer up to 1,000,000,000 to instantly calculate its prime factorization — breaking the number down into its prime factor components with exponents. The tool shows the complete factorization, a table of each prime factor and its power, and identifies whether the number is itself prime.",
55
"metaDescription": "Free prime factorization calculator. Enter any integer up to 1 billion to get all prime factors with exponents. Fast, works in-browser, no ads.",

‎site/src/tools/probability-calculator/messages/en.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"title": "Probability Calculator — Basic, Permutations, Combinations, Dice",
2+
"title": "Probability Calculator — Permutations, Combinations",
33
"shortDescription": "Calculate probabilities, permutations (nPr), combinations (nCr), and dice roll outcomes. Four dedicated tabs cover every common probability problem.",
44
"description": "Four modes in one tool: basic probability from favorable and total outcomes, permutations nPr, combinations nCr, and the probability of rolling a specific sum with multiple dice. Results include fractions, decimals, percentages, and odds.",
55
"metaDescription": "Free probability calculator: basic probability, permutations nPr, combinations nCr, and dice probability. Results as fraction, decimal, percentage, and odds.",

0 commit comments

Comments
 (0)