ステージ5: SEOと言語
目標:検索エンジンとAIアシスタントがすべてのページを正しく理解できるようにする。古いURLは適切な場所にリダイレクトされる。 追加された各言語は、オリジナルと同様に正確であること。
SEOの手順
- ジョブごとに1つの所有者を設定する。
- SEOプラグイン(デフォルトではRank Math)が、タイトル、メタ、サイトマップ、メインのスキーマグラフを所有する。
- コアの
schema.phpは、サイト独自の型をそのグラフに追加する。 - 独自のスキーマを出力するドメインプラグインはすべて無効化し、矛盾する2つのグラフではなく、1つのグラフのみにする。
tests/helpers/site.ts内のすべてのページがnpm run test:seoに合格すること:- タイトル 10~65文字;
- 説明文 50~160文字;
- 絶対パスの正規URL;
- H1が1つ;
lang属性;- Google Fontsリクエストがゼロ。
チェックリストと執筆ルール:
references/seo-checklist.md
- 構造化データ:
- Organization(またはLocalBusiness)は1回のみ。
- ページごとにアイテムタイプ(Service, Product, TouristTrip, Course, …)。
- パンくずリスト。
- FAQは、そのページで実際に回答されている質問のみ。
- 価格なしの
Offerは絶対に使用しない。 - GoogleのリッチリザルツテストとSchema.orgバリデーターで検証する。
- Robots、サイトマップ、llms.txt:
- 本番環境ではクロールを許可しサイトマップを表示する;ステージング環境ではすべてをブロックする(コアが行う);
/llms.txtはコアが提供する;- AIクローラーがサイトを読み取ることを許可するかどうかを目的に応じて決定し、エッジがデフォルトでブロックしていないことを確認する(
wp-ship>cloudflare-edge.md)。
- リダイレクト: プロジェクトの
docs/reference/REDIRECT_RULES.mdに従う。トラフィックまたはバックリンクがあるすべての旧URLを、最も近い新しいページにマッピングする(301、1ホップ)。各リダイレクトをテストする。 - 大きな変更前のパリティチェック。 リデザイン、移行、言語ローンチの前に、すべてのURLのタイトル、説明文、正規URL、H1をキャプチャする。各ステップの後で比較する。意図した変更に対してのみ再キャプチャし、その理由をコミットに記録する。
- Search ConsoleとBing:
- 両方でサイトを確認する;
- サイトマップを送信する;
- 最初の1ヶ月間は週次でページインデックスを監視する;
- Search Consoleはデータを16ヶ月しか保持しないため、早期にエクスポートするか一括エクスポートを有効にする。
言語の手順(各言語は最初パイロットとして扱う)
references/multilingual.md に従う。要約:
- ルールゼロ: オリジナル言語は変更しない。そのURL、タイトル、正規タグ、テキストは同一のままとする(パリティチェックで証明する)。
- パイロット: 言語基盤(Polylang、スイッチャー、hreflang、
.po/.moファイルの文字列)、次に主要ページとトップアイテム。その後、ステージングでネイティブスピーカーレビューを実施し、公開する。 - 残りは バッチごとに進め、それぞれ同じレビュープロセスを経る。
- まだ公開されていない言語は オリジナル言語に 302 リダイレクトし、サイトマップ、hreflang、メニュー、スイッチャーには一切表示しない。
ゲート(SITE_STATUS.md にチェック)
-
npm run test:seoがステージングでグリーン;各種タイプの1ページでリッチリザルツテストがクリーン - 本番環境でサイトマップ、robots.txt、llms.txt が正しい
- 旧URLリダイレクトマップが配置されテスト済み(または「該当なし」)
- 各追加言語:パイロット合格、ネイティブレビュー完了、hreflangペア完全、言語ごとに正規URLあり
過去に発生したバグ(確認事項)
- 翻訳されたホームページの正規URLが元のホームページを指していたため、Googleがフランス語結果から
/fr/を削除してしまうことがあった。翻訳ページの正規URLは翻訳後のURLであるべき。 - フランス語ページに英語のJSON-LDが含まれていた:スキーマはページの言語に従うか、翻訳されるまで除外する必要がある。
- 未公開言語をホームページに301リダイレクトしていたゲート。ゲートは302であるべき。