To understand SEO, it helps to define what it is, what the benefits are to the business, and how to go about implementing professional best practices for your site or app.
What is SEO
SEO is a group of methodologies used to gain higher ranking in search engines, that are influenced by current search engine algorithms. Specifically, SEO includes domain name, clean code markup, compliance with WWW and accessibility standards, page load time, mobile responsiveness, content balance, image names and alternative text, "keywords" in headings and text, meta descriptions, and generally having an easy-to-crawl site, with a sitemap and not too many missing pages or redirects.
The benefit to your business
The benefit to you business is ranking higher than competitors, perhaps even on the first page of results. Who doesn't want that? Be careful though. Higher ranking may result in more traffic, but not necessarily in more business. People need to trust the stability and quality of your business, just like search engines need to trust the stability and quality of your site and its content.
Implement SEO using White Hat methodologies
In the past, algorithm results were more open to exploitation. A term evolved to describe the practice of avoiding exploitation - white hat SEO. White Hat SEO means that the SEO methodologies used respect the nature of competition and comply with SEO industry best practices.
Domain name is a massive weapon in SEO. Every domain you buy doesn't have to be used. It makes sense in a competitive world to buy similar domain names to prevent lost traffic and potentially business. If a secondary domain is used, however, it needs to be loaded with content that is relevant, differs from your main site and isn't just a redirect to it. One of the worst cases for your business, is if your domain name doesn't match your business name. It can make it impossible to rank higher than the site using your business name. Consider a shortened version with just the main letters if it is very long. It is better to have a .com or .com.au domain, but if they are already taken, check if other appropriate extensions are available. It's important, therefore, to ensure you research before registering your business name, and purchase your domain straight away.
Clean code means using tags appropriately and efficiently, using containing elements, closing off tags properly, having meaningful descriptions in comments, having alt text on images, usually putting the scripts at the bottom before the closing body tag, and minifying files or including URL of minified version of library files.
It is expected that all websites should be at least mobile-friendly, if not responsive in that they automatically generate a layout for different screen sizes. There are a few ways to implement this in code; mobile site redirect (no longer recommended), media screens, and adaptive.
Images and embedded media used on websites can be a drain on load times if not "optimised for web use". This simply means that the media is served in its actual size and not have different files for the same image at different resolutions and sizes, adapting to each container layout. To get the image in the correct format, in most apps you can save in smaller dimensions. You'll need to save a copy, flatten layers, alter colour mode to RGB 72ppi, and possibly lower the bit depth if it's higher than 16-bit. "Save for web" is the key in Photoshop for handling most of this without having to alter your main Photoshop file at all. It saves a copy that it automatically optimised for web use. You just need to understand what size would be suitable, the quality of the rendering, and most appropriate file format. On the bottom left of the screen is the view size and file size in kilobytes.
Try to get full screen width images to under 1MB. Most of your smaller images should be well under 100kb. Some people will say 40kb is the ceiling for standard file size, but unless you have masses of images on your page or a really big image file, or a very busy web page, it's not that critical. For eCommerce sites with multiple product images, file size is more critical. Adobe Lightroom or automated actions in Photoshop help with bulk image edits. Irfanview is also another way to manage file resizing, but I'm not that familiar with it to know if the rendering engine would perform as well as Adobe's.
Meta keywords were one of the ways SEO was exploited in the past. Keywords are still very important, but only when used in the actual text that appears on the browser screen (or in advertising). A meta description is still important as it displays under your URL link in search results. Keywords that you choose to use should be based on your business offering, refined to include or exclude superfluous words that are not represented in many search terms. Research can include general or specific word combinations and phrases related to your industry, product, service, brand, audience interests, or competitors. I would strongly discourage any copying of words used to describe a competitor's brand or product identities, but if there is a common phrase or industry term that your competitor uses, it is only fair to your business to consider using them as well. I would advise, however, to become a leader rather than a follower in your keyword combinations.
Once you have finalised the first list of keywords, drop them in to as much of your content as is reasonable. You can repeat them in meta descriptions, headings, titles, alt text, URL extension names, paragraph text, and media file names (putting hyphens between words creates the equivalent of spaces in search engines). The key to successful implementation is to use them as you would if conversing with someone. Like using "I" or "my" in conversation, people and search engines switch off after too many repeats.
Test for errors
The first step in testing your code is to check it yourself to see if you are using unnecessary tags or not containing the page elements in the right containers. A lot of code editors are great for highlighting syntax errors. Use browser inspection tools to analyse, refine and test your CSS styling and layout structure. Finally, check your web page code markup against code and accessibility standards. I prefer using W3C free online testing, but you may use other testers. This helps to find errors in seconds.
Avoid crawl errors while developing a site by building up pages not yet uploaded to your FTP/public HTML folder. For static sites, you can use on offline or online folder to store and edit your files, using any browser to display them. Some code editors also have browser previews built in. With WordPress, Magento, and other CMS software, the norm is to build on a live development URL extension or subdomain. Check any box that tells the browsers to discourage search engines from crawling and indexing the site. If it has payments or logins, I advise to display a message on the top that says the site is development and nothing will be stored in a database or processed. Webmaster tools help to identify and rectify crawl errors, submit a sitemap, and re-crawl your site after major content updates, unchecking "Discourage search engines from indexing this site" in WordPress, or when new pages have been added.