Another HTML LintとW3CとSEO

Another HTML LintとW3CとSEO

先日の記事にも書いた「お手軽SEO&SMO対策やることリスト」の続編的な感じでW3C&Another HTML Lintに関してちょっと触れてみたいとおもいます。

W3Cとはなんぞと言う方はWikipediaのW3Cの記事でも見て下さい。

ざっくりいうとWEB界で権威のある人たちが集まって標準化されたルールを決めている団体です。

最近はどこぞの官僚のように踏ん反り返っていてオワコン化してきているようですが・・・。

詳細に興味のある人はHTML5とXHTML2についてとか調べてみるといいと思います。

本題にもどると今現在どのサーチエンジンのクローラーがどれ程W3Cの定める正しい構文に重きを置いているのかは分かりませんがSEO対策業者や各種テンプレート販売業者はこぞってW3Cに適合というのを宣伝文句にしているようです。

※実際はValidatorで有名企業などの検索エンジン上位のウェブサイトを見ても100点取ってるところは少ないです・・・。

それに今でもウェブサイト製作者の実力を見る指針にはなっているようなのでクライアント側にある程度知識がある場合は出来る限りハイスコアを出しておいたほうが印象は良いでしょう。

特に「数年前にWEBの知識かじりました。」とか言う人には要注意。

と言うわけで、最近Word Pressで作った独自テンプレート使ったウェブサイトチェックしてみました。

W3C Valitation自体は英語で、デザインも個人的に好きじゃないので今回はそれに準拠した日本のAnother HTML Lint5 Gatewayを使いたいと思います。

すると驚愕のスコアをたたき出しました。

w3c_r1_c1

65個のエラーがありました。このHTMLは-126点です。

コレは酷い!と言うことで中身を見てみましょう。

No	Severity	Line	Error	Description
1	 7	line 29:	
<LINK> の REL の属性値 `EditURI` は正しくありません。`ALTERNATE`、`AUTHOR`、`HELP`、`ICON`、`LICENSE`、`NEXT`、`PREFETCH`、`PREV`、`SEARCH`、`STYLESHEET` または `CANONICAL` でなければなりません。
解説 102
2	 7	line 30:	
<LINK> の REL の属性値 `wlwmanifest` は正しくありません。`ALTERNATE`、`AUTHOR`、`HELP`、`ICON`、`LICENSE`、`NEXT`、`PREFETCH`、`PREV`、`SEARCH`、`STYLESHEET` または `CANONICAL` でなければなりません。
解説 102
3	 7	line 34:	
<LINK> の REL の属性値 `shortlink` は正しくありません。`ALTERNATE`、`AUTHOR`、`HELP`、`ICON`、`LICENSE`、`NEXT`、`PREFETCH`、`PREV`、`SEARCH`、`STYLESHEET` または `CANONICAL` でなければなりません。
解説 102
4	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
5	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
6	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
7	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
8	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
9	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
10	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
11	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
12	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
13	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
14	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
15	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
16	 5	line 35:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
17	 5	line 35:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
18	 5	line 36:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
19	 5	line 36:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
20	 5	line 37:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
21	 5	line 37:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
22	 5	line 38:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
23	 5	line 38:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
24	 5	line 39:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
25	 5	line 39:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
26	 5	line 40:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
27	 5	line 40:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
28	 5	line 41:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
29	 5	line 41:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
30	 5	line 42:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
31	 5	line 42:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
32	 5	line 43:	
<META> に他のHTML用の属性 `PROPERTY` が指定されています。
解説 80
33	 5	line 43:	
<META> に CONTENT 属性を指定するときは HTTP-EQUIV 属性か NAME 属性を指定しなければなりません。
解説 149
34	 6	line 52:	
<IMG> には ALT 属性が必要です。
解説 86
35	 0	line 52:	
<IMG> には WIDTH と HEIGHT 属性を指定するようにしましょう。
解説 186
36	 9	line 52:	
<P>要素は<H1>要素の下位要素にはなれません
解説 254
37	 7	line 60:	
<A> の TARGET の属性値に空の値を指定することはできません。
解説 100
38	 6	line 60:	
<A> の TARGET 属性のフレームターゲット名 `` は正しくありません。
解説 200
39	 5	line 63:	
メタ文字 `&` は `&amp;` と書かなければなりません。
解説 117
40	 7	line 73:	
<A> の TARGET の属性値に空の値を指定することはできません。
解説 100
41	 6	line 73:	
<A> の TARGET 属性のフレームターゲット名 `` は正しくありません。
解説 200
42	 6	line 91:	
<IMG> には ALT 属性が必要です。
解説 86
43	 9	line 120:	
<P>要素は<H2>要素の下位要素にはなれません
解説 254
44	 9	line 124:	
<H3>要素は<H3>要素の下位要素にはなれません
解説 254
45	 9	line 124:	
124行目の <H3> に対応する終了タグ </H3> が見つかりません。
解説 72
46	 9	line 124:	
<P>要素は<H3>要素の下位要素にはなれません
解説 254
47	 9	line 131:	
<P>要素は<H3>要素の下位要素にはなれません
解説 254
48	 9	line 132:	
</LI> は 131行目の <P> と重なり合っているようです。
解説 70
49	 2	line 132:	
</LI> の前に </P> が省略されているとみなします。
解説 64
50	 9	line 132:	
</LI> は 124行目の <H3> と重なり合っているようです。
解説 70
51	 2	line 132:	
</LI> の前に </H3> が省略されているとみなします。
解説 64
52	 9	line 136:	
</P> に対応する開始タグ <P> が見つかりません。
解説 69
53	 9	line 145:	
<H3>要素は<DL>要素の下位要素にはなれません
解説 254
54	 9	line 146:	
<DD>要素は<LI>要素の下位要素にはなれません
解説 254
55	 9	line 153:	
<H3>要素は<DL>要素の下位要素にはなれません
解説 254
56	 9	line 154:	
<DD>要素は<LI>要素の下位要素にはなれません
解説 254
57	 9	line 160:	
<H3>要素は<DL>要素の下位要素にはなれません
解説 254
58	 9	line 161:	
<DD>要素は<LI>要素の下位要素にはなれません
解説 254
59	 9	line 174:	
<P>要素は<UL>要素の下位要素にはなれません
解説 254
60	 7	line 180:	
<A> の TARGET の属性値に空の値を指定することはできません。
解説 100
61	 6	line 180:	
<A> の TARGET 属性のフレームターゲット名 `` は正しくありません。
解説 200
62	 7	line 181:	
<A> の TARGET の属性値に空の値を指定することはできません。
解説 100
63	 6	line 181:	
<A> の TARGET 属性のフレームターゲット名 `` は正しくありません。
解説 200
64	 9	line 185:	
<P>要素は<UL>要素の下位要素にはなれません
解説 254
65	 9	line 189:	
<P>要素は<UL>要素の下位要素にはなれません
解説 254

1~3はWord Press特有のエラーみたいです。
普段は無視しても大丈夫ですが、せっかくなので直しましょう。

使用しているテンプレートのfunction.phpに以下のコードを挿入します。

remove_action('wp_head', 'rsd_link');

remove_action('wp_head', 'wlwmanifest_link');

remove_action('wp_head', 'wp_shortlink_wp_head');

remove_action();は文字通り、デフォルトで実行するアクションを削除することです。
どれも大したもんじゃないので各種コードの詳細が気になる人はWord Pressフォーラムへどうぞ。

4~34まではちょっと分からなかったのでソースをあたって見たらどうやらソーシャルメディア系のプラグイン(Open Graph ProとWordbooker)の仕業らしいので一旦プラグインをDeactiveに。

残りのエラーはお恥ずかしながらコーディングの際のケアレスミスなのでコードを編集しなおしました。

全てチェックが終わりアップロード完了後にもう一度チェック。

w3c_r3_c2

無事完了。

本家W3Cの方でチェックすると、Autherの名前が登録されてないとかいうエラーがでましたが面倒なので放置。(気が向いたら直します。)

と、こんな感じですが、問題はプラグインを切ったのでソーシャルメディアとの関連付けができない。

そこでGoogle先生に聞いてみるとW3のフォーラムに同じ質問があがっていた。

使いたければ諦めろってことですね。

どうしても拘りたいのならばブログを更新する時だけアクティブにするなりするしかなさそう。

それかどなたか良いプラグインをご存知でしたら教えてください。

 

 

※この記事は前ブログの記事を書き写したものに加筆&修正したものです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です