Short answer: do whatever makes your code easier to read, easier to maintain, and easier to test, regardless of rules you may find on the internet.
Somewhat longer answer:
If they are an element that you will need to visit for the purposes of testing, you probably should give it an id. Elements with unique identifiers are much easier to find with automated tools than those without.
I also think that ids also help you conceptually organize your code. For example, everything in the header might go inside a div with the id of 'page-header', the body in a div named 'page-body', and the footer in 'page-footer'. within the main body you might have a navigation section and a content section, so it makes sense to have a div named 'page-navigation' and 'page-content', and so on.
Even if you don't actually use those ids anywhere else, it helps make the page a bit more self-documenting. You don't need to do this for every element, but it helps when you use it for every major page element or section. Plus, as stated in the first paragraph, it sets the stage for making it easier to test the page with automated tools.
The bottom line is this: don't try to find dogmatic rules to follow. Instead, strive to create code that is easy to read, easy to maintain, and easy to test.