From b3894ce22fa29db141103c8c643d522c1599d72b Mon Sep 17 00:00:00 2001 From: kako-jun <3541096+kako-jun@users.noreply.github.com> Date: Mon, 15 Jun 2026 19:48:51 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20SEO=E5=9C=9F=E5=8F=B0=E6=95=B4=E5=82=99?= =?UTF-8?q?=20=E2=80=94=20robots.txt=20/=20sitemap.xml=20/=20JSON-LD=20/?= =?UTF-8?q?=20meta=20description=E6=8B=A1=E5=85=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - app/robots.ts: 全許可 + sitemap/host を canonical で参照(静的 robots.txt 生成) - app/sitemap.ts: 単一URL、lastmod は BUILD_DATE 連動(静的 sitemap.xml 生成) - app/layout.tsx: metadataBase 追加、description を検索向けに拡充、keywords 追加、 SoftwareApplication の JSON-LD を埋め込み サイゼリヤ等の他社商標キーワードは入れない方針(ブランド+ツール実用語のみ) Closes #42 --- app/layout.tsx | 45 ++++++++++++++++++++++++++++++++++++++++++--- app/robots.ts | 18 ++++++++++++++++++ app/sitemap.ts | 19 +++++++++++++++++++ 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 app/robots.ts create mode 100644 app/sitemap.ts diff --git a/app/layout.tsx b/app/layout.tsx index 1648f1a..d409c3d 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -6,9 +6,26 @@ import './globals.css' const siteUrl = 'https://machigai-salad.llll-ll.com' +// Longer, keyword-bearing description for search snippets. The on-page subtitle +// stays short ('間違いさがし おたすけツール'); this is the search-facing copy. +const description = + '2枚の画像を並べて拡大・比較できる間違い探しのおたすけツール。答え合わせやヒント探しに便利。インストール不要、ブラウザだけで動きます。' + export const metadata: Metadata = { + metadataBase: new URL(siteUrl), title: '小エビの間違いサラダ', - description: '間違いさがし おたすけツール', + description, + keywords: [ + '間違い探し', + '間違いさがし', + 'まちがいさがし', + '間違いサラダ', + '答え合わせ', + 'ヒント', + '画像比較', + '拡大', + 'ツール', + ], manifest: '/manifest.webmanifest', appleWebApp: { capable: true, @@ -19,7 +36,7 @@ export const metadata: Metadata = { type: 'website', url: siteUrl, title: '小エビの間違いサラダ', - description: '間違いさがし おたすけツール', + description, siteName: '小エビの間違いサラダ', locale: 'ja_JP', images: [{ url: `${siteUrl}/static/ogp.webp`, width: 1200, height: 630 }], @@ -27,7 +44,7 @@ export const metadata: Metadata = { twitter: { card: 'summary_large_image', title: '小エビの間違いサラダ', - description: '間違いさがし おたすけツール', + description, images: [`${siteUrl}/static/ogp.webp`], }, icons: { @@ -36,6 +53,24 @@ export const metadata: Metadata = { }, } +// Structured data so search engines can render the tool as a SoftwareApplication +// rich result. Free, browser-based, Japanese. +const jsonLd = { + '@context': 'https://schema.org', + '@type': 'SoftwareApplication', + name: '小エビの間違いサラダ', + url: siteUrl, + description, + applicationCategory: 'UtilitiesApplication', + operatingSystem: 'Web', + inLanguage: 'ja', + offers: { + '@type': 'Offer', + price: '0', + priceCurrency: 'JPY', + }, +} + export const viewport: Viewport = { themeColor: '#FEF6DC', } @@ -48,6 +83,10 @@ export default function RootLayout({ return ( +