@astro/sitemap のインストール#
最初に Astro の公式 Sitemap パッケージをインストールします:
# NPMを使用する場合
npx astro add sitemap
# Yarnを使用する場合
yarn astro add sitemap
# PNPMを使用する場合
pnpm astro add sitemap
y を押して Enter を押すと、astro は自動的にastro.config.mjs
設定ファイルに sitemap パッケージを追加します。
設定ファイルに以下のコードがあることを確認してください。ない場合は、自分で追加してください:
import { defineConfig } from 'astro/config';
import sitemap from '@astrojs/sitemap';
export default defineConfig({
// ...
integrations: [sitemap()],
})
設定が完了したら、パッケージをビルドしてください。ルートディレクトリにsitemap-0.xml
ファイルが生成されます。これがサイトマップファイルであり、検索エンジンに送信するためです。
百度の検証を追加#
注意:サイトマップのインデックスにはサイトの検証が必要です。百度検索リソースプラットフォームで自分のウェブサイトを追加し、以下の手順に従ってサイトの検証を行ってください:サイトの検証の詳細な説明。
適切なサイトの属性を選択してください。
ファイルの検証を選択し、検証ファイルをダウンロードして、ウェブサイトのルートディレクトリに配置してください。
パッケージをビルドしてデプロイした後、検証ファイルをクリックして正常にアクセスできることを確認してください。
百度のインデックスを追加#
百度リソース検索プラットフォーム - 一般的なインデックスで、ウェブサイトのサイトマップのアドレスを入力するだけです。
Google の検証を追加#
Google 検索コンソールのドキュメントを参照してください。
サイトマップを送信する方法:ブラウザまたはコマンドラインで、次のアドレスに GET リクエストを送信し、サイトマップの完全な URL を指定します。サイトマップファイルがアクセス可能であることを確認してください:
https://www.google.com/ping?sitemap=FULL_URL_OF_SITEMAP # FULL_URL_OF_SITEMAP: サイトマップファイルの場所
例えば、ブラウザで以下のリンクを直接入力してアクセスします:
https://www.google.com/ping?sitemap=https://cirry.cn/sitemap-0.xml
以下のようなページが返されます:
ページ上のリンクhttp://www.google.com/webmasters/tools/をクリックすると、Google のSearch Consoleに移動します。
ウェブサイトを入力し、ウェブサイトを検証します。
検証が成功すると、検証方法を追加するように求められます。
次の図の方法を選択できます:HTML ファイルをダウンロードし、ウェブサイトのルートディレクトリに追加します:
または、次のリクエストヘッダをウェブサイトの head に追加することもできます:
追加した後、Google Search Consoleで再度検証し、以下の図が表示されれば追加が完了です。
Google のインデックスを追加#
Google Search Consoleのサイトマップで、ウェブサイトのサイトマップのアドレスを入力するだけです。
問題に遭遇した場合#
正常な操作が完了した後、百度リソース検索プラットフォームとクロール診断でウェブサイトの Robots とクロール診断が正常に機能しているかどうかを確認してください。
私は一般的なインデックスでサイトのサイトマップを追加しましたが、百度によるインデックスの失敗が発生しました。
クロール診断では、クロール診断エラーが発生し、robots がブロックされているというエラーメッセージが表示されました。xml-sitemapsで自分のサイトをスキャンできるかどうかテストしてみました。
このウェブサイトも検出できないことがわかりました。これはクローラープロトコルに制限があるためです。私はクローラープロトコルを変更し、次のように robots.txt を変更しました:
User-agent: *
Allow: /
Sitemap: https://cirry.cn/sitemap-0.xml
変更が完了したら、エラーメッセージの図でエラーをクリックして、エラーメッセージを百度に報告してください。
数分後、xml-sitemapsで正常にクロールできるようになりました。百度に再度送信すると、正常にインデックスされます。
注意:百度はインデックス型のサイトマップを許可していませんので、@astro/sitemap
で生成される 2 つのサイトマップファイルsitemap-0.xml
とsitemap-index.xml
を robots.txt ファイルに記述しないでください。そうしないと、百度は Robots をブロックし、情報をクロールできなくなります。
他の問題に遭遇した場合は、クロール診断ツールの一般的なエラータイプの解析を参考にしてください。
次のコマンドを使用して、robots がブロックされているか、IP の解析が失敗しているかを確認できます。http 200 が返されれば正常です。それ以外の場合は異常です。最後のウェブサイトリンクを自分のウェブサイトに置き換えることを忘れないでください。
curl --head --user-agent 'Mozilla/5.0 (compatible; Baiduspider/2.0; +<http://www.baidu.com/search/spider.html)>' --request GET 'https://cirry.cn'