Cách khắc phục các lỗi khi kiểm tra w3c validator để seo tốt hơn
Mọi trình duyệt đều hiển thị website dưới định dạng của HTML. Mà HTML là một ngôn ngữ đánh dấu cực kỳ, cực kỳ dễ tính. Dù có code sai, code thiếu . . . thì trình duyệt vẫn có thể hiển thị đúng. Chính vì điều đó mà rất nhiều website bị mắc lỗi W3C về HTML. Để kiểm tra lỗi W3C cho website chúng ta truy cập vào địa chỉ : The W3C Markup Validation Service. Sau đây mình xin giới thiệu một số lỗi HTML cơ bản các website hay mắc phải ( dành cho các phiên bản HTML dưới HTML5).
Thiếu thẻ đóng - (end tag for "X" omitted, but OMITTAG NO was specified)
Đây là một lỗi mà hầu hết các website mắc phải. Với các thẻ lưỡng tính như br, hr, link, img, meta, input . . . thì bắt buộc phải có dấu / ở trong thẻ.
< br>, <hr> <link> <img> <meta> <input> là sai.
Chính xác phải là <br /> <hr /> <link /> <img /> <meta /> <input />
Thiếu thuộc tính type - (required attribute "type" not specified)
Lỗi này do khai phải CSS hoặc JavaScript bị thiếu thuộc tính type.
< style> , <script> là sai.
Chính xác phải là <style type="text/css"> <script type="text/javascript">
Lưu ý trước kia khai báo JavaScript sử dụng thuộc tính language tuy nhiên bây giờ phải sử dụng thuộc tính type mới chính xác.
Sử dụng thẻ <marquee> - (element "marquee" undefined)
Chúng ta thường sử dụng thẻ này để chạy chữ, hình ảnh . . . tuy nhiên thẻ này không được quy định trong các thẻ HTML mà W3C đặt ra. Chính vì vậy chúng ta phải thay thế nó bằng CSS, Jquery
Sử dụng các ký tự đặc biệt - (cannot generate system identifier for general entity)
Những ký tự đặc biệt trong HTML như < > / & . . . thì không được phép viết trực tiếp mà phải sử dụng các ký tự thay thế. Chúng ta có thể tham khảo danh sách các ký tự đặc biệt trong HTML .
& là sai.
Chính xác phải là &
Thiếu thuộc tính alt trong hình ảnh - (required attribute "alt" not specified)
Thuộc tính alt cung cấp thông tin văn bản thay thế cho bức ảnh để khi hình ảnh bị lỗi hoặc tải chậm sẽ hiển thị thay cho bức ảnh. Đặc biệt thuộc tính alt này ảnh hưởng rất lớn trong việc Google Index hình ảnh của chúng ta.
< img src="/hinhanh.jpg" />
Chính xác phải là <img src="/hinhanh.jpg" alt="mô tả cho hình ảnh" />
Trùng lặp ID CSS - (ID "X" already defined)
ID và class trong CSS có chức năng tương tự nhau. Class có thể dùng nhiều lần cho các phần tử tuy nhiên id thì chỉ được dùng một lần duy nhất cho một phần tử.
< p id="para"> Paragraph </p>
< h1 id="para"> Heading 1 </h1> là sai
Chính xác phải là <p id="para1"> Paragraph </p>
< h1 id="para2"> Heading 1 </h1>
Trùng lặp thuộc tính - (duplicate specification of attribute X)
Đây là lỗi thường gặp khi sử dụng thuộc tính class cho các phần tử HTML
< p> là sai
Chính xác phải là <p class = "class1 class2">
Các thẻ cũ không được sử dụng trong HTML
Trong những phiên bản mới thì W3C đã loại bỏ một số thẻ định dạng cũ và thay vào đó là sử dụng css
< font> <u> <center> <strike> không được sử dụng
Sử dụng thẻ <embed> để chèn Flash - (element "embed" undefined)
Khi chèn Flash thì thẻ <embed> không được sử dụng ( tuy nhiên sẽ được sử dụng trong phiên bản HTML5 ) mà phải thay thế bằng thẻ <object>
Còn rất nhiều các lỗi khác mình sẽ liên tục cập nhật trong thời gian tới.
ps: leech ghi nguồn MrThanhk2s or NonStop39 (ddviet)
Mọi trình duyệt đều hiển thị website dưới định dạng của HTML. Mà HTML là một ngôn ngữ đánh dấu cực kỳ, cực kỳ dễ tính. Dù có code sai, code thiếu . . . thì trình duyệt vẫn có thể hiển thị đúng. Chính vì điều đó mà rất nhiều website bị mắc lỗi W3C về HTML. Để kiểm tra lỗi W3C cho website chúng ta truy cập vào địa chỉ : The W3C Markup Validation Service. Sau đây mình xin giới thiệu một số lỗi HTML cơ bản các website hay mắc phải ( dành cho các phiên bản HTML dưới HTML5).
Thiếu thẻ đóng - (end tag for "X" omitted, but OMITTAG NO was specified)
Đây là một lỗi mà hầu hết các website mắc phải. Với các thẻ lưỡng tính như br, hr, link, img, meta, input . . . thì bắt buộc phải có dấu / ở trong thẻ.
< br>, <hr> <link> <img> <meta> <input> là sai.
Chính xác phải là <br /> <hr /> <link /> <img /> <meta /> <input />
Thiếu thuộc tính type - (required attribute "type" not specified)
Lỗi này do khai phải CSS hoặc JavaScript bị thiếu thuộc tính type.
< style> , <script> là sai.
Chính xác phải là <style type="text/css"> <script type="text/javascript">
Lưu ý trước kia khai báo JavaScript sử dụng thuộc tính language tuy nhiên bây giờ phải sử dụng thuộc tính type mới chính xác.
Sử dụng thẻ <marquee> - (element "marquee" undefined)
Chúng ta thường sử dụng thẻ này để chạy chữ, hình ảnh . . . tuy nhiên thẻ này không được quy định trong các thẻ HTML mà W3C đặt ra. Chính vì vậy chúng ta phải thay thế nó bằng CSS, Jquery
Sử dụng các ký tự đặc biệt - (cannot generate system identifier for general entity)
Những ký tự đặc biệt trong HTML như < > / & . . . thì không được phép viết trực tiếp mà phải sử dụng các ký tự thay thế. Chúng ta có thể tham khảo danh sách các ký tự đặc biệt trong HTML .
& là sai.
Chính xác phải là &
Thiếu thuộc tính alt trong hình ảnh - (required attribute "alt" not specified)
Thuộc tính alt cung cấp thông tin văn bản thay thế cho bức ảnh để khi hình ảnh bị lỗi hoặc tải chậm sẽ hiển thị thay cho bức ảnh. Đặc biệt thuộc tính alt này ảnh hưởng rất lớn trong việc Google Index hình ảnh của chúng ta.
< img src="/hinhanh.jpg" />
Chính xác phải là <img src="/hinhanh.jpg" alt="mô tả cho hình ảnh" />
Trùng lặp ID CSS - (ID "X" already defined)
ID và class trong CSS có chức năng tương tự nhau. Class có thể dùng nhiều lần cho các phần tử tuy nhiên id thì chỉ được dùng một lần duy nhất cho một phần tử.
< p id="para"> Paragraph </p>
< h1 id="para"> Heading 1 </h1> là sai
Chính xác phải là <p id="para1"> Paragraph </p>
< h1 id="para2"> Heading 1 </h1>
Trùng lặp thuộc tính - (duplicate specification of attribute X)
Đây là lỗi thường gặp khi sử dụng thuộc tính class cho các phần tử HTML
< p> là sai
Chính xác phải là <p class = "class1 class2">
Các thẻ cũ không được sử dụng trong HTML
Trong những phiên bản mới thì W3C đã loại bỏ một số thẻ định dạng cũ và thay vào đó là sử dụng css
< font> <u> <center> <strike> không được sử dụng
Sử dụng thẻ <embed> để chèn Flash - (element "embed" undefined)
Khi chèn Flash thì thẻ <embed> không được sử dụng ( tuy nhiên sẽ được sử dụng trong phiên bản HTML5 ) mà phải thay thế bằng thẻ <object>
Còn rất nhiều các lỗi khác mình sẽ liên tục cập nhật trong thời gian tới.
ps: leech ghi nguồn MrThanhk2s or NonStop39 (ddviet)