XML サイトマップと SEO: 知っておくべきこと
公開: 2023-08-16XML サイトマップは 6 月に 18 歳になったばかりです。成人向けに本格的に導入されたことを記念して、XML サイトマップの仕組み、作成方法、および XML サイトマップが SEO に多くのメリットをもたらす理由について詳しく説明します。
XML サイトマップとは何ですか?
簡単に言うと、XML サイトマップは、クロール可能な Web サイト上の URL を検索エンジンに伝える XML 形式のプロトコルです。
XML サイトマップは、次のような各 URL に関する情報を共有することを目的としていました。
- 最後に更新されたとき。
- 変更される頻度。
- Web サイト全体の他の URL との関係で、それがどの程度重要であるか。
XML サイトマップを使用すると、特定の URL が分離されている場合に、検索エンジンが Web サイトをより効率的にクロールできるようになります。
あなたが SEO の専門家であれば、おそらく Yoast WordPress プラグインに組み込まれた XML サイトマップをすでに使用しているでしょう。 しかし、あなたが見逃しているかもしれない追加機能がたくさんあります。
動的な XML サイトマップを構築する方法
WordPress を使用している場合は、Yoast や RankMath などの SEO プラグインを利用して動的な XML サイトマップを生成します。
WordPress を使用していない場合は、次の手順に従って動的 XML サイトマップを構築します。
ナビゲーション構造を理解する
Web サイト上のすべての URL のリストをまとめ、ナビゲーション構造とコンテンツのグループに合わせてグループ化します。
開発者チームと提携する
グループ化された URL のリストを開発チームと共有すると、Python、PHP、または JavaScript を使用して動的 XML サイトマップを作成する際の協力が得られます。
以下は、Python を使用して動的 XML サイトマップをコーディングする方法の例です。
import xml.etree.ElementTree as ET import datetime # List of URLs (replace these with your actual URLs) urls = [ "https://www.example.com/page1", "https://www.example.com/page2", "https://www.example.com/page3", # Add more URLs here ] # Create the root element urlset = ET.Element("urlset") urlset.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9") # Loop through URLs and create URL entries for url in urls: url_elem = ET.SubElement(urlset, "url") loc_elem = ET.SubElement(url_elem, "loc") loc_elem.text = url lastmod_elem = ET.SubElement(url_elem, "lastmod") lastmod_elem.text = datetime.datetime.now().isoformat() changefreq_elem = ET.SubElement(url_elem, "changefreq") changefreq_elem.text = "daily" # You can set this to the desired frequency priority_elem = ET.SubElement(url_elem, "priority") priority_elem.text = "0.5" # You can set this to a value between 0 and 1 # Create the XML tree tree = ET.ElementTree(urlset) # Save the XML to a file tree.write("sitemap.xml", encoding="utf-8", xml_declaration=True)
開発者と協力するとき、私は Flask と Python を併用して、Web サイトのコンテンツが変更されるたびに変更される真に動的な XML サイトマップを作成しました。
get_dynamic_urls()
のような関数を使用して、Web サイトのコンテンツに基づいて動的サイトマップ ルートを定義できれば、すべての URL を取得できるはずです。
@app.route('/sitemap.xml', methods=['GET']) def sitemap(): urls = get_dynamic_urls() # Replace with your dynamic URL retrieval logic urlset = ET.Element("urlset") urlset.set("xmlns", "http://www.sitemaps.org/schemas/sitemap/0.9") for url in urls: url_elem = ET.SubElement(urlset, "url") loc_elem = ET.SubElement(url_elem, "loc") loc_elem.text = url lastmod_elem = ET.SubElement(url_elem, "lastmod") lastmod_elem.text = datetime.datetime.now().isoformat() changefreq_elem = ET.SubElement(url_elem, "changefreq") changefreq_elem.text = "daily" priority_elem = ET.SubElement(url_elem, "priority") priority_elem.text = "0.5" xml_content = ET.tostring(urlset, encoding="utf-8") return xml_content, {'Content-Type': 'application/xml'}
複数のドメイン プロパティ間でコードを共有している場合は、ファイルが HTML ページ上で適切にコーディングされていることを確認してください。
たとえば、CSS ファイルと JavaScript ファイルは、 <link>
と<script>
タグを使用してリンクする必要があります。
異なるドメイン間でコードを共有する前に、共有 XML サイトマップ ルールをホストする集中サーバーを作成する必要があります。
すべてのルールが確認されるまで、開発者と動的 XML サイトマップの複数のフェーズを行うことになります。
動的 URL が実際に取得され、サイトマップ ロジックに統合されていることを確認することを忘れないでください。
サーバーにアップロードする
XML サイトマップが圧縮されたら、動的 XML サイトマップを Web サイトのルート ディレクトリにアップロードします。
検索エンジンに送信する
Google Search Console や Bing ウェブマスター ツールを通じて XML サイトマップを送信して、検索エンジンに XML サイトマップを知らせます。
継続的なメンテナンス
XML サイトマップは、単に「設定したらあとは忘れる」という SEO 戦術ではありません。 Web サイトの変更に応じて XML サイトマップを更新することが重要です。
XML サイトマップを構築する際に留意すべき 15 のヒント
1. XML サイトマップはランキング要素ではありません
XML サイトマップを使用するとランキング上の利点があるかどうかを X (以前の Twitter) で尋ねたところ、Google の Gary Illyes 氏は次のように答えました。
- 「いいえ、とにかく直接的なものではありません。」
2. Google はサイトマップがなくてもページを見つけることができます
ウェブサイトが小さく、適切にリンクされている場合、ウェブサイトにはサイトマップは必要ありません、と Google の検索アドボケートであるダニエル ワイズバーグ氏が Google Search Console トレーニング ビデオで共有しました。
しかし、彼は続けて、サイトマップは次の場合に特に役立つ可能性があると述べました。
- サイトは本当に広いです。
- サイトのページは分離されています。
- サイトが新しいか、すぐに変更されます。
また、Google の John Muller 氏が X (以前は Twitter) で、XML サイトマップを持つことが「本格的な Web サイトの最低限のベースライン」であると述べたことに注意することが重要です。
3. Google は再処理する前に、XML サイトマップが変更されているかどうかを確認します。
Google は、ファイルの解析と処理を再度行ってリソースを浪費する前に、XML サイトマップが変更されていないかどうかを確認するとイリエス氏は認めました。
同氏はSEOオフィスアワーでこう述べた。
- 「サイトマップ内の何かを変更すると、それが URL 要素であれ、最後の Mod であれ、サイトマップは再度解析され、通常は再処理されます。 もちろん、URL が確実にクロールされるという意味ではありませんが、他の URL と同様に品質評価の対象となります。 また、おそらくもう存在しないという理由で URL をサイトマップから削除したとしても、その URL がインデックスから自動的に削除されるわけではなく、クロールの優先順位が付けられて、より早く削除されるわけでもないことにも言及する価値があります。」
4. XML サイトマップにより、新しいコンテンツのインデックスを迅速に作成できる
Mueller 氏は、XML サイトマップが更新されたことを Google に伝えると、新しいコンテンツのインデックスがより迅速に取得できることを認めました。
彼は次のように共有しました。
- 「サイトマップに ping を送信することは、単に robots.txt にサイトマップを指定することとは少し異なります。ping を送信することにより、サイトマップ ファイルの変更に積極的にフラグを立てることになります。 新しいコンテンツをすぐにインデックスに登録したい場合は、それが良い習慣になります。」
5. XML サイトマップは UTF-8 でエンコードされている必要があります
XML サイトマップが UTF-8 を使用していない場合、検索エンジンはそれを読み取ることができません。
6. ファイル サイズを 50 MB (非圧縮) または 50,000 URL 未満に抑えます。
XML サイトマップにはサイズ制限があります。 サイトマップあたり 50,000 URL または 50 MB (非圧縮) 未満に抑えてください。
ファイル サイズが大きい場合、または URL の数が多い場合は、複数の XML サイトマップを使用します。
7. 複数の XML サイトマップを使用できる
Google では、複数のサイトマップを送信できます。 サイトマップを Web サイトのさまざまなセクションに分割してパフォーマンスを測定すると便利です。
たとえば、大規模な e コマース Web サイトの場合、XML サイトマップを製品タイプ (つまり、女性用の靴と男性用の靴) ごとにセグメント化できます。
または、複数の言語を使用している場合は、<loc> XML サイトマップに関連する hreflang が必要になる場合があります。
代替言語がある場合は、URL の最大 50,000 にはカウントされません。
または、多数のビデオまたは画像がある場合は、XML サイトマップをビデオ XML サイトマップと画像 XML サイトマップに分離することもできます。
複数の XML サイトマップを使用してもランク上の利点はありません。
8. 複数の XML サイトマップがある場合は、必ずサイトマップ インデックス ファイルを使用してください
大規模なサイトに複数の XML サイトマップがある場合は、サイトマップ インデックス ファイルを送信して、多くのサイトマップを一度に送信することをお勧めします。
9. lastmod タグは完璧でなければなりません
<lastmod>
タグは、XML サイトマップの最も重要な部分の 1 つです。
たとえば、私の構造化データは XML サイトマップの <lastmod> 日付を利用しています。
<lastmod>
タグは、古いコンテンツを更新したか、新しいコンテンツを開始したかを検索エンジンに通知します。
ミュラー氏は次のように述べてこれを確認した。
- 「…タイムスタンプ フッターを変更するだけなら、確かにページも技術的には変更されますが、それを優先すべきか - おそらくそうではありません。」
Bing は、XML サイトマップのlastmod
タグについて公式の立場を表明し、次のように述べています。
- 「XML サイトマップの場合、サイトマップに含めることができる最も重要なタグの 1 つは、「lastmod」タグです。」
10. XML サイトマップには、すべて自己正規化されたステータス URL を 200 個のみ含める必要があります
ライブ URL、200 ステータス、インデックス可能、自己正規化された URL のみを保持することを忘れないでください。
404 または 301 リダイレクトされたページを引き続き表示すると、検索エンジンが XML サイトマップのクロールを完全に停止する可能性があります。
モラー氏はX(旧Twitter)のコメントに次のように返信した。
- 「URL が無効な場合はサイトマップ ファイルの取得を停止しますが、コンテンツを返したりリダイレクトしている場合 (これは推奨されています)、引き続き試行します。 サイトマップ ファイル全体は、サイトから取得されたすべての URL のごく一部にすぎないため、問題が発生することはありません。」
11. 検索エンジンは XML サイトマップを毎日チェックできます
Microsoft の Fabrice Canel 氏は、Microsoft が XML サイトマップを毎日チェックしていると共有しました。
Mueller 氏は、Google が頻度 ( <lastmod>
タグとも呼ばれます) に基づいて XML サイトマップをチェックしていると共有しました。
12. ページ速度は XML サイトマップに間接的に影響します
ページ速度が SEO の取り組みにとっていかに重要であるかは誰もが知っています。 しかし、Web サイトのパフォーマンスが遅いと、XML サイトマップにどのような影響があるのでしょうか?
ミュラー氏は次のように述べて、ページ速度が XML サイトマップに影響を与えないことを確認しました。
- 「タイムアウトしない限りは大丈夫ですよ。 サーバーへの不要な負荷を防ぐために、最新バージョンをキャッシュすることもできるでしょうか?」
実を言うと、私は検索エンジンが Web サイトをクロールする際に XML サイトマップが読み込まれず、大きなランキング変動を引き起こすパフォーマンスの遅い Web サイトに取り組んできました。
Web サイトが適切に読み込まれない場合、XML サイトマップに間接的な影響があります。
このため、Gzip 圧縮を使用してファイル サイズを削減し、読み込み時間を短縮することが重要です。
13. XML サイトマップから <priority> タグを削除します。
Illyes 氏は、XML サイトマップの<priority>
タグを「ノイズの袋」に例えました。
したがって、優先順位に基づいて XML サイトマップ内の URL をクロールする検索エンジンに依存している場合、長い時間待つことになります。
XML サイトマップからこのタグを削除することをお勧めします。
14. ナビゲーション構造に問題がある場合は、XML サイトマップと HTML サイトマップを組み合わせます。
HTML サイトマップについては常に複雑な感情がありました。
ミューラー氏は、HTML サイトマップは「決して必要であるべきではない」と語った。
彼は続けた:
- 「ここ数年で、HTML サイトマップは決して必要ではないと考えが変わりました。 サイトの大小を問わず、常に明確なナビゲーション構造が必要です。 HTML サイトマップの必要性を感じた場合は、代わりにサイトのアーキテクチャの改善に時間を費やしてください。 HTML サイトマップは、HTML 読み込みスピナーと同じビンに収まります。」
<iframe src="https://mastodon.social/@johnmu/109477617298107922/embed" class="mastodon-embed" width="400" allowfullscreen="allowfullscreen"></iframe><script src="https://mastodon.social/embed.js" async="async"></script>
企業レベルで大規模な Web サイトに取り組む場合、Web サイトのナビゲーション構造に複数の意思決定層が存在することがよくあります。 そして多くの場合、SEO のベスト プラクティスが考慮されます。
Web サイトのナビゲーションと内部リンク階層に自信が持てるまで、XML サイトマップと HTML サイトマップの両方を組み合わせます。
15. すべての XML サイトマップを robots.txt ファイルに含めることを忘れないでください
XML サイトマップ (すべて) を robots.txt ファイルにリンクとして含めることを忘れないでください。
以下に例を示します。
これらを robots.txt ファイルのどこに配置するかについて心配する必要はありません。 robots.txt ファイル内の XML サイトマップの場所には影響しません。
ミュラー氏はこう認めた。
XML サイトマップは、検索エンジン用の Web サイトの設計図です。
新しい Web ページを立ち上げる場合でも、複製ページに正規タグを追加する場合でも、XML サイトマップは 24 時間 365 日更新する必要があります。
ただし、慎重に行ってください。
神経質になる必要はありませんが、XML サイトマップは検索エンジンにとっての設計図です。
したがって、XML サイトマップを Google Search Console と Bing ウェブマスター ツールに送信することを忘れないでください。
この記事で表明された意見はゲスト著者の意見であり、必ずしも Search Engine Land とは限りません。 スタッフの著者はここにリストされています。