I’ve seen arguments by people who write about and study search engines and SEO very closely, which often appear written up in “SEO Expert Ranking Lists,” that HTML heading elements (<h1>, <h2>, etc.) are very important, arguments that heading elements were once important and are no longer, and arguments that heading elements were never important. Sadly, all of those arguments are likely wrong. Not so much about the importance or lack of, but rather about the reasons for that importance.
It’s possible that a search engine might notice when a word or term or phrase appears near the top of a page, or above a wall of text. It’s also possible that a search engine pays attention when those are shown in larger font sizes, or bolder than the rest of the page text, or in a different font than the remainder of the words on the page. But that prominence and that display isn’t really what a heading element is about. HTML has a font size large attribute and property. There’s also a bold property. Any words on a page near the top of that page might be said to be more prominent than others.
You can use many HTML element attributes and values and/or cascading style sheet properties to make words within different HTML elements bolder and larger, and to transform them to all capitals or a different font or color, or all of those if you want. You can purposefully place certain text at the top of a page to make it appear that the rest of the page is described by those words.
A search engine might see that only a few words are bold on a page, or are italicized, or in a different font or color or larger size and take some kind of meaning from that, perhaps even giving the use of that word or set of terms or phrase a little more weight on that page. And those words could be in a heading element, but they don’t have to be.
Semantic RelationshipsWhen you use a heading element, whether <h1>, or <h2>, or so on down the line, you aren’t just impacting the look and feel of the text within that element, but you are also defining a semantic relationship between those words and the words that follow them. You’re telling visitors, and search engines that the utterings on the page that follow are related to the terms in your heading in a meaningful way, even if you don’t quite understand that, and don’t quite do that right. And many people don’t.
When you use a top level heading, or an <h1>, you’re setting up a semantic relationship between that heading and the remainder of the content on a page, describing what it is about. If you then use a second <h1> on the same page, you’re creating some potential confusion, because someone, or a search engine might see that as the ending of the semantic relationship between the content after the first <h1> and the start of this new <h1>. If instead you use a second level heading element, or an <h2>, you’re continuing the semantic relationship between the top level heading above with that content, but defining an included semantic relationship with the content headed by the second level heading.
Words within heading elements might help a page rank in search engines because they are displayed larger, or bolder, or in different colors than the text they head. I’ve seen the argument that a search engine might give weight to words contained in an HTML heading element because they might presume that the content in that page is being defined by that heading.
Weight of Headings Defined by How Well They Describe a Semantic Relationship?Heading elements can help a search engine understand the semantics of words on a page a little better. Search engines can go out on the Web and index pages and explore the relationships between terms within headings, and the content they describe within that index. They can look for similar relationships on all the documents within their body of web pages that use the same terms within headings, and see if there might tend to be some kind of co-occurrence of words and phrases and concepts within those matches of headings and content using those headings.
So for instance, you may have a page that uses a top level heading (<h1>) of “Cities in New York,” and the page contains information such as the names of a number of cities in New York State, and information about those cities, and there may be a good number of other pages on the Web that use the same heading, and contain many of the same city names and information and concepts. You may also have another page that uses the top level heading (<h1>) of “Cities in New York” while providing information about New Jersey Cities.
The New York Cities heading with the New Jersey Cities information might not carry as much weight with the search engines as New York headings on other pages that head content about New York Cities.
Are search engines using the semantic relationships between heading elements and the content they head as a ranking signal?
They might be, or they might not be, and that might depend upon how well headings tend to describe the content they head.