Excessive Markup

Markup languages were originally invented to allow information to be transmitted in a machine-readable format. With the advent of the Web, designers began to use data tags, such as TABLE to provide visual layouts for web pages.
Whilst well intentioned, markup is not intended to be used for layout and - as it turned out - browsers are particularly poor at parsing complex tables.

Most designers now use CSS, rather than HTML to determine the layout of their pages, but this in turn has led to the rise of "DIVitis" and "SPAN mania" where markup tags are excessively nested to provide a visual structure that should be determined purely by the stylesheet.

This is a particular problem with visual IDEs, which make it quick and easy to achieve the desired page layout but pay no regard to semantic integrity.

Increasing the number of DOM elements is going to directly hit the performance of every script routine that parses or manipulates the DOM.

Testing

View the page source.
There is also a TestComplete script available to check DIVs and SPANs. If this indicates that there are DIVs and SPANs that contain only one child element (or, worse, are empty), then there may be scope for trimming the markup - providing it is not needed to provide a container for dynamic content.

Solution

Check any markup generated by your IDE.
Use HTML block level and container tags that are more appropriate for the content.
Use style classes for positioning as well as appearance.
How to cure DIVitis
How to avoid table hell and div hell