Search engine optimisation involves using certain coding techniques and standards to make a website's content more visible to internet search engines, and improve a website's ranking on their results, thus increasing the chance that a user will find the website before others and generate more traffic.
Internet search engines spend most of their time crawling the net and indexing every page they find so that they can make them available to users when they enter keywords to search for. When a search engine finds a page, it looks first at the meta data in the head of the html mark-up (basic page information), then at the tags which make up the visible structure of the page, and catalogues all words inside each tag. This means that, when a user enters a keyword to find, the search engine presents all the websites that contain keywords that most closely match those entered by the user. So, the more matching content found on a website, the higher it's ranking on the search results, and the more likely it is that the user will come to that site first. Here's the thing, the tags the search engine looks at are those that are meant to be used by developers to present the most important and relevant information about their content i.e. company name, services offered etc.
Here's the thing, some developers, for different reasons, would rather use images as company logos and titles on their sites instead of the standard mark-up meant to be used, so search engines can't read the information presented, and they over-look them. This is usually because developers want to be flashy or simply don't know how to use the proper web development techniques to present vital information, so they make more work for themselves.