You may have heard the term W3C Validation or W3C compliance thrown around when discussing or reading about websites. What do those terms actually mean? Are they important for my website? How will they affect my users, page load time, SEO, etc.? Many of these questions have two strongly opinionated sides that have been heavily debated on the internet. As with many things pertaining to technology, there is no right answer. There is just personal preference and many choices that affect your website in different ways. Let’s start with some background information.
Who is W3C?
The World Wide Consortium (W3C) is an international community that works together to develop web standards. These standards define an Open Web Platform for application development that allows developers to build rich interactive experiences for users. So when developers build websites or other applications for users on the web, they are using the standards set up by W3C to properly code their website or application. Web validators use these standards to find errors in the code of a website.
Does my website need to be W3C valid?
Many people will still argue that being W3C compliant is a necessity for any website. The most common validator is probably the one that is found on the W3C website (validator.w3.org). On their website, you can also find a list of reasons why you should validate your website. These reasons include:
- Debugging
- Future-proofing
- Easy Maintenance
- Good Practice
- Professionalism
Let’s break these points down a bit.
Debugging – In my opinion, this is the most useful reason to validate. When you run your site through a validator, it will help you discover errors in your code and other miss-typed/miss-used code. However, nowadays, there are many other tools that developers use during the development process, like Sublime Text Editor, that not only act as a tool to help write code but will also debug the code as you’re typing it out.
Future-proofing – Future-proofing is a good practice to maintain when developing anything. No one wants to go back and re-write the work they just did last year. Development workflows have come a long way over the past few years, making future-proofing sites a much easier task. Other tools like WordPress, GitHub, and Angular make it easy to build things in such a way that it is a very simple task to make updates to your websites or applications. In modern web development, future-proofing is a standard element that just happens when you build things in the proper way.
Easy Maintenance – Anyone who has ever run their website through a validator and then proceeded to fix every error to make it 100% valid will tell you, it doesn’t make the site any easier to maintain. This statement reminds me of tobacco companies. They know their product is going to kill you, but they are going to sell it to you regardless and pretend that it’s not bad for you. Okay… that may be a little extreme, but seriously, easy maintenance is not something that is a byproduct of validation. In the process of making the site 100% valid you can end up with a lot of non-semantic markup that is harder to maintain.
Good Practice – Yes, valid code is a good practice, but that doesn’t mean that it is automatically a good practice just because it’s valid. Let me explain. I could build a website that uses tables to define its structure and plug it into a validator to have it come back at 100% valid. Anyone familiar with modern coding standard/best practices, you know that people haven’t used tables as a base structure for web development since the 90s. There are newer, better coding practices that are used now that make your site more compatible on modern browsers.
Professionalism – I’ll make this one short and simple. You can write professional and organized code whether or not the code itself is actual valid.
The answer to the initial question (“Does my website need to be W3C valid?”) is not quite as simple as yes or no. It is an answer you need to determine for yourself. Here are some questions that can help you decide: Do you use other tools that debug and “lint” your code? Do I care if the site is valid as long as it is cross-browser and device compatible?
How does all of this affect my SEO?
This is one of the most touchy subjects surrounding W3C validation. Mostly because there are a lot of myths floating around that say your site will not get crawled or that your site will rank lower in the SERPs (search engine results pages) if it is not W3C compliant. Just like with most modern browsers, search engine spiders are smart, flexible, and forgiving. That does not mean you should leave your code in a sloppy mess. Having clean, tidy, and valid code will help search engines better crawl through the site, but your code does not have to be perfect for the search engine spiders to crawl and rank your pages. Your code just needs to be adequately structured and clean enough for search engines to distinguish the content from the rest of the page elements. Just take a look at some of the sites that you would expect to have 100% W3C compliant code. Here are a some examples:
- Google.com – 28 errors, 5 warnings
- Bing.com – 55 errors
- Yahoo.com – 287 errors, 7 warnings
- Youtube.com – 339 errors, 2 warnings
- Amazon.com – 993 errors, 10 warnings
Conclusions
Having a site that is 100% W3C valid may not be a priority for you. It certainly isn’t for many developers nowadays. It is a practice that used to be more popular than it is today, and for good reasons. Years ago when it was a big deal to have an entirely valid site, it would affect things like load time, SEO, and how the site appears in certain browsers. That just isn’t the case anymore. Browsers are much more flexible in terms of the standards that W3C have set and are much more forgiving than they used to be. You can have a site that is riddled with errors when run through a validator, but function and look flawless in any browser, and many that you may not even know exist. It all comes down to knowing what you want to accomplish with your website. Based on that you can determine the proper balance of validation and function.