HTMLのコードに関しては、内部SEOの一要素として「HTMLやCSSの記述が正しいとGoogleからの評価が高まる」といった噂が以前に出回っていましたが、実際の所はどうなんでしょう?
一般的に、閉じタグ忘れなどでブラウザで正しく表示されない場合以外はブラウザ側で自動的に修正してくれる為、訪問者が気にする事の無い部分ではあります。以前にGoogleの社員だったMatt Cutts氏が発言した内容をもとに解説します。
Googleは不正なHTMLを正しく処理できる?
正しく、綺麗にHTMLを書く理由はたくさんあります。
メンテナンスや改良がしやすい事、簡単に他の人に記述を渡すことができます。
GoogleのクローラーはHTMLの文法ミスやエラーを補正して理解
Googleは現在公開されているウェブをもとに分析する必要があります。
現実的に多くのウェブページで構文エラーや不正なHTMLがある為、Googleのクローラーはこれらを補正した上で理解できるように作られています。
HTMLの記述ミスは評価に悪影響?
Googleは情報の品質を評価
Googleは情報の品質を評価します。
つまり、HTMLの記述が非常に優れているかどうかより、検索ユーザーが必要なもっとも関連性の高い情報を得る事ができるかどうかを見ています。
検索順位を上げる事を目的としてHTMLの記述を修正する意味はありません。どちらかと言えば、ウェブページのメンテナンスや修正管理の為に、正しいHTMLを書く必要はあるでしょう。
<head>内でSEOに影響する部分
<head>内でSEOに関連する設定としては、robots metaたぐやcanonical属性、title、descriptionメタタグは重要です。SEOのためだけではありませんが、Character setやviewport、CSPも有効と認識される必要があります。
John Muller氏の発言では、タグマネージャなどを必要な記述を除いてJavaScriptはHTML <head>の下に配置し、Googleによる <head> セクションの認識をJSが妨げていないことを、Search Consoleのレンダリング ツールで確認すべきとアドバイスしています。
<head>のSEOに関連する情報は機械で読み取り可能で、有効と認識される必要があるため、上部に明示した方が良いようです。JavaScriptはタグマネージャなど<head>の上部への配置が推奨されているものを除いて<head>の下部に配置したほうが良いでしょう。
The html headers (<head>) should be pretty much on top. I’d move any JS to below the HTML headers, and check with the rendering tool in search console that the JS doesn’t mess up the <head> section. For the content it doesn’t matter as much, but since the head stuff is for machine-readable information that’s verified to be in a specific part of the page, it really needs to be clean on top.
Down with JavaScript! (in the <head>)
Does Googlebot crawl from the top? Main HTML Content starts on line 5118 of Code – Is this an Issue for SEO?
検索エンジンが不完全なHTMLを認識できるようになっているとはいえ、確実に認識して欲しい内容まで推測させてしまうのは思いがけない失敗につながります。SEOに関する設定を行なっている場合には、適切に認識されるかどうかを確認(Search Consoleのレンダリング ツール)しましょう。
Browsers are sometimes helpful and try to interpret what you mean, if you don’t want a page to be indexed, or want a different URL as canonical, you probably don’t want search engines to guess. (SEO is to a large part about not making search engines guess.)
In short, avoid making the <head> brittle if you care about those SEO settings, consider moving them to the top of the <head> (don’t include 5k lines of JS above them), and double-check the rendered DOM in your browser from time to time.
John Muller氏のコメント 2023/1/13