We are excited to be able to bring to you the ability to create a website, step-by-step.
Imagine being able to, at any time, create your own website using code you wrote yourself.
It’s not hard.
What does tend to get hard, however, are the complex layers of additional technologies that you have to consider, and also get them to play nice with each other.
This gets even more complex as time goes on, as you add additional technologies like shopping carts, contact forms, and other items to the site.
But we can start with the essentials. Let’s take a look at how you can create your own website, step-by-step.
Chapter 1: Before You Begin
Step 1: Decide on a Niche and Topic
First of all, you must decide on a niche, and a topic to write about within that niche.
This will determine the type of content and design that you will be using later.
What is a niche?
A niche is a specified, narrow subject area, which is also:
- Competitive enough
- Has enough return on ROI to be worth your efforts
- Has enough of a market to target for conversions
A market’s competition is a gauge of its health in terms of viable competitors.
When there are many competitors for a product or service, you benefit by being able to target the niche market.
You will also have a healthy market size for carving out your place in that market and pushing your new offerings.
How do you know that your market is enough of a market to target for conversions?
The standard ideological (though not strictly mathematical) formula for calculating this is the following, although it can vary slightly depending on the industry you are in, your product, service, etc.:
Rankings + Traffic = Conversions
Determining your market opportunities in this regard is done through thorough market and keyword research designed to target competitive, creative keywords that are going to make a big difference in your final conversions.
Once you have determined a niche and a target market, and its viability for remaining competitive and a decent ROI, you are ready to move forward with creating your content strategy.
You can then get started on more of the fun stuff, when we go into the actual creation of your website – from the ground up – in the next steps.
Step 2: Determine Your Content Strategy
First of all, you must establish your mission and your goals.
A great framework to use for this is something called SMART Goals.
SMART Goals have several elements within the equation that make them great goals to pursue, because they are:
- Specific
- Measurable
- Relevant
- Attainable
- Timely
When a goal has all five of these elements as part of its execution, you become more effective at actual attainment of said goals.
This goal is a central part of your content strategy.
Your content strategy is your roadmap for creating great content for your niche.
A great content strategy begins with great research, along with setting your content types, goals, and establishing your key performance indicators (KPIs).
You should also know your audience, figure out where you stand currently, and work on finding the best content channels for your market (where do they hang out most)?
Determining where you currently stand is one of the first steps towards any SEO campaign.
To understand your trajectory, you must know where you are now.
This is easily accomplished through SEMRush.
Some example KPIs you may want to consider include the following:
- Improving the search ranking performance of your targeted keywords and key pages
- Improving your overall organic traffic for the month, quarter, or year.
- Create a certain amount of content every month (e.g. my goal is to write 5 pages of content per month at 2500 words each)
- Get new conversions (such as lead sign ups) from your on-site forms
- Get new conversions to buy a product from your shopping cart
- Get new keywords ranking on the first page of Google
- Get more backlinks back to your content
- Increase the social shares and other related metrics of your content
This also takes into consideration the question of what exactly is a content strategy?
Your content strategy is mostly the backbone of how you are going to manage every digital media asset that you own. From infographics to videos to other intangible media, this is the governing ship behind your entire content marketing enterprise.
This strategy will help you focus your efforts on the following:
Your Audience–Who Are You Creating Content For?
When you create your content strategy, you are creating content for your end consumer – the people purchasing your service.
It is possible to tailor your content strategy to cater to several different types of readers.
If you use a wide variety of different types of content, not to mention different content delivery channels, you can address each type of audience member you have in mind and you can engage with all those who you do business with.
The Problem–How Is It Going to Solve Your Audience’s Pain Points?
When you create content, your goal (usually) is to solve a specific problem your audience is having.
This content is supposed to coach and help your audience arrive at a solution for that problem on their own.
This herein is its value.
Whether video content or written content, it should be showing your audience how to get rid of (or significantly reduce) pain points that they have regularly.
- For example, this content you are reading is helping the target audience (you) create their own website from scratch, and teaching them the principles for doing so.
- One other example of a content piece that fulfills a similar goal is content that helps the audience to sell their own brand of widgets.
- Another example is content that teaches the audience how to overcome fear of failure.
There are as many problems as there are people — no two people have exactly the same problem.
And this is what makes content marketing so powerful.
You can use these audience pain points to create your site based on those topics, and move forward with a content strategy that will help solve all of their pain points.
Why WOULDN’T THEY want to use your site as the source for solutions to all their problems?
Which Channels Are the Best Ones to Upload Your Content To?
As you move through this process of defining your content strategy, you will begin to figure out exactly where your audience is hanging out, and where you may already have a presence online.
If you are starting over, that’s fine. Just so long as you are aware that you are starting over, and results from starting over will take longer than expanding an existing online presence.
If you have a site already, with a few successful articles, you can use a program like Buzzsumo to analyze your existing content and figure out what your best performing past content has been.
The application is also very useful for looking at other competitor’s websites and figuring out their most successful content.
Doing this analysis will help you capture and utilize your competitor’s content strategy.
What Types of Content Are Best for Your Audience?
Next, you should be thinking about the different types of content that you will need to create.
This is where Buzzsumo will also come in.
You can use this application to analyze your competition and figure out exactly what content is working for them.
Then you can replicate their strategy.
Most successful content strategies have a core type of content on-site, and these can then be repurposed into other media like ebooks, videos, and infographics.
This is a basic content strategy, and may not be right for your site, so don’t take this example as the verbatim of what you must do to be successful.
Instead, use the information you have gained from your basic analysis as the foundation of all content for your online digital media strategy.
This will put you in a better position than any of your competitors who have taken the route of “create it and forget it.”
Which, more often than not, results in failure or haphazard results.
Why would you want to leave your content strategy up to chance?
Step 3: Shop for a Content Writer
When you have your content strategy in place, now is the time to shop for a content writer.
You can use sites like upwork.com and textbroker.com to find writers who will write quality content for your website.
The key is to find writers who fit the voice, personality, and goals you have set for your brand.
These content writers will be the backbone of your business, so it is important to find a writer who consistently writes topics you like, and can write consistently in the tone of voice that you like.
Gone are the days of finding content, using content spinners, and coming up with different variations of content to please the search engines.
Now the game is high-quality content targeted and catered to your audience, which will make the difference between a mediocre execution of your content strategy and an exceptional one.
Now that you know you need a writer, you need to find one.
It’s not as simple as telling them what they need to do, unfortunately. Dave Nevogt of hubstaff.com explains why:
- There are many terrible writers out there,
- Not all writers are familiar with content marketing and SEO,
- Many writers don’t have the style or tone you may be looking for,
- Some writers are simply horrible with communication and deadlines,
The process is, however, much easier when you go into hiring writers with this knowledge.
Places like Hubstaff or Upwork let you invite freelancers to express their interest after you post the job. They will then bid on your job or sell you on why they’d be the best one.
Here are some tips that will help you through the process of finding a writer successfully:
Use More than One Platform for Outreach and Getting in Touch with Writers
There are many writers who are available on many different marketplaces. If, however, you stick with a single platform, you may miss someone else who may be absolutely perfect for your writing job.
You must be extraordinarily clear in your writer prompt, and state instructions and expectations precisely.
Should your writer have the ability to perform SEO and self-edit their work?
Do you want someone who can also do graphics and related work?
Would you prefer your writer to have at least 10 past pieces they have completed in their portfolio?
Many of these requirements should be stated upfront in your job ad, before you create the writer’s prompt.
Here are just a few more tips that I wanted to share:
Don’t Hesitate When It Comes to Paying for Quality
High-quality writers don’t come cheap. It is absolutely possible to pay $50 for a 1,000-word article.
However, you can expect that article to contain errors, and if you consult the standard copywriting guide over at TextBroker, you can see how they have their scale of quality versus the amount of money paid.
Think About the People Who Are Reading Your Content First
It is paramount to think about quality writing first.
Don’t just assume you can hire writers who write just based on SEO.
You don’t want a bunch of keyword-stuffed articles that have no SEO quality whatsoever.
You must think about the information that your readers will be searching for and exactly what they are going to find useful.
You must also consider things like the voice you plan to use, the tier of writing quality you expect for the price you pay, and you must make sure that your writer is more than adequate for the job.
As long as you go into your writing tasks with these expectations and goals, you will be successful at finding writers for your projects.
Remember – content marketing is not just writing!
Namrata Kothari of entrepreneur.com has some great advice for finding a high-quality content writer for your startup:
“Do’s
Write a Creative Job Description
One of the first things that you need to do is writing down clearly what you are looking for. You will only be able to find the right writer when you know what “right” means for you.
There are a couple of things that you need to define –
Type of writer – Choose from the following classification –
Brand Journalists – These are the kind of writers that are trained to write fact-driven, concise content with great story-telling. However, they are not great marketers or hard sellers. So they are good for writing winning community stories or third-party placements, but are not the best for blog posts, product details or such.
SEO Copywriter – Copywriters are considered to be a jack-of-all-trades. They are the ones you need to write high-volume, basic-level and short-length articles. They write content that sells. But they are not essentially subject matter experts (SME). The next level of copywriters are the SEO copywriters, who infuse target keywords to ensure your content ranks well on search engines and improve traffic. These are ones that are meant for branding, blog writing, newsletters, Advertorials and the likes.
Ghostwriter – A little expensive than your average SEO copywriter, a ghostwriter can match your tone/ voice and pass on the credit for the writing to you.
Web writers – Writing for websites and app needs a more technical understanding of the digital journeys along with knowledge of website design, marketing, SEO, brand and user psychology. It is a blend of art and science and that is what you are looking for in a website core content writer.
Freelancer or Full-time – There are pros and cons of each that you should be aware of. A full-time employee means a commitment to a certain type of writer, increased risk and higher cost on the payroll. However, if your line of work requires a certain level of training, supervision and has a long lead time, then hire a full-time. A freelancer gives you more flexibility in terms of reduced risk and pays when you need the work done. Freelancers need repeat work and thrive on referrals, so they make sure they deliver quality work every single time.
SME or someone who is a great storyteller and proficient in writing – SME is exactly what it sounds like. They have in-depth knowledge of the industry/ niche and can write with a lot of authority. They are a great choice for writing e-books, whitepapers and pillar blog posts. They can take off with a little briefing and can write unique, insightful content fast. But there is a trade-off between choosing SME and great story-teller. SME will probably have better knowledge about the industry but might be an average marketer and might not evoke the same emotions that a proficient writer will do.
Content development or someone who will be involved in strategy, development, marketing and analysis?”
Once you have your writers, you can move forward with the rest of your content strategy.
Step 4: Plan and Curate Your Content
Once you have a writer (or ten), it will be necessary to now curate and plan your content ideas and their execution.
When you curate content, you aren’t stealing content from existing content.
Rather, you are creating editorial value in existing content by changing, modifying, and adding to the other content.
In some cases, you may combine this content into one massive article or guide.
It’s up to you.
The goal of content curation is to present the highest quality implementation of that content that you can muster on that topic.
You add your voice, your value, your take, and you gather a collection of content from a variety of sources and go to town.
You can then publish this content and share with your fans online.
There is much you can gain from content curation.
Once you have several pieces of content put together, you can then begin your site creation.
Chapter 2: Choosing Your Domain Name and Hosting Plans
Step 5: Choose Your Domain Name
To ensure the highest quality, and quantity, of search traffic, there are best practices you should follow when it comes to choosing your domain name.
Your Domain Name Should Be Easily Remembered
When choosing a domain, make it short and easy to remember.
This also translates into a domain name that is easy to say, and easy to type.
These four attributes are necessary in order to generate conversations offline and online.
Also, stay away from domains that are difficult to pronounce, or domain names that include numbers.
Avoid Hyphens Where Possible
If you have more than one word in your domain, it can be tempting to use hyphens to separate the words.
It is important to note at this point that Google does consider hyphens to be correlative with spammy behavior.
Bill Hartzer talks about this at length in this post.
“This also totally blows some SEO conspiracy-theorists’ views of the Exact Match Domain update out of the water. In fact, it has been my theory all along that the EMD Update was more about commercial phrases than domain names. It just so happens that keyword rich domain names are highly sought-after, and there is “value” in a keyword rich domain name because of the number of searches per month for that keyword and the average CPC (Cost Per Click) on Google AdWords for that keyword. Therefore, Google targeted commercial phrases in that update, and NOT keyword rich domain names.
The EMD Update should have been called the “Commercial Phrase Update”. But it was not, for political reasons. Could you imagine if Google had called that update the “Commercial Phrase Update”? We would be all screaming loudly–because Google did that because they wanted us to pay more on Google AdWords. But I digress.
From now on, I am not recommending use of a keyword rich hyphenated domain name for a website, you’ll end up being out-ranked just about every time if you try to rank well for that main keyword. I say “just about every time” only because I know there are going to be exceptions to every rule.”
When it comes to choosing a domain name, it’s better to avoid hyphens, but don’t go beyond one hyphen if you have to use one.
Don’t Use Numbers in the Domain
There is no “rule” that says you can’t use numbers in your domain name.
In fact, for branded domains that have numbers within the original company name, you may want to use a branded domain with that number.
This is because it will help your readers remember the domain easier when it is associated with the general brand name.
However, numbers are also associated with spammy behavior on domains.
The Moz.com pro account has a spam analysis factor that includes “there is a number used in the domain.”
Don’t Use a Non-dot-Com Domain
Let’s face it – people have been using dot-com domains ever since the web began. In the olden days, the only domain name extensions that were available included the top 3 only: .com, .net, .org, and foreign domain extensions for other countries.
It’s just easy to type .com rather than trying to remember .cc, .co, or .services after the domain.
Think about this. Have you ever seen an ad for a domain name in a print publication, and you tried to remember whether or not the domain had a .cc, .com, or .co?
See what I mean?
Put yourself in the shoes of your consumer, and use the easiest domain name extension that they will know about.
Don’t make it harder than it has to be to drive anyone offline to your website online.
Don’t Use a Domain Name That Is Too Long
Domain names that are too long can be a problem.
The general recommendation from some SEOs has been to use domain names that are less than 15 characters.
Others use a more general approach to say that you shouldn’t use a domain name that is longer than 3 syllables.
Instead, here’s a good test to do to check whether or not your new domain name is a good one:
Type it out yourself, and see how it feels.
Usually, that will give you a good idea of how difficult it would be for someone else to type it.
Also, run it by other people like your friends (who may not know you as well as your best friends) and ask them to use it.
Run it by random people on the street, and see what they say.
Also, run it across a few SEOs or online friends on Twitter, Facebook, and LinkedIn.
If you get a few confused faces in person or emojis, you may want to go back to the drawing board.
Step 6: Choose Your Web Host
When you choose a web host, speed and stability are everything.
Your site’s security and uptime depend on making a great choice in this first step.
The problem that most people run into in the beginning, is choosing the wrong web host for them.
This leads to deficiencies in certain technologies that they should have had in the beginning.
And only leads to migrating to another host later.
This migration can often be a real pain, because you have to make plugins play nice with the new host, make other technologies play nice with the new technologies, and other issues.
There are several things you must pay attention to when you are choosing your own web host:
Decide How Much Hand-Holding You Will Need
This is an important consideration with web hosting. There are several levels of hosting that only increase when you upgrade.
At each tier level, you will find different levels of hand-holding that the company will provide.
The vast majority of companies provide basic customer service.
However, some limit what they do on lower-priced packages.
Others will help you fully manage your security updates, and keep them updated for as long as you have the service.
This is found at the higher tiers.
Let’s take a look at managed and non-managed hosting in further detail. At least this way, you will have basic knowledge of what to look for.
Bare-Bones Hosting–Non-managed
In this type of hosting you will be managing on your own.
This is the best type of hosting you can have if you are a technodude (like me) who is familiar with all facets of web development and web hosting.
At most hosting companies, you will get a minimum of support and when you know what you want, this is a good thing.
If you need to update things like an SSL certificate, and you can’t install it on your own, standard support will be able to help you with such a request.
If you need to do more advanced things like deleting databases, you will probably need your own web developer.
Middle of the Road to Top of the Line Hosting–Managed Hosting
If you are looking to delegate the management of your hosting entirely, then a fully-managed service is something you will need.
A fully-managed service means that they will take care of plugging up security holes for you, monitoring your software patches, managing backups, and other tasks normally owned by you.
This is something that should be decided in the beginning because such managed hosting can be a boon for you if you don’t want to get stuck rewriting your entire shopping cart at 2:00 a.m. because your implementation went bad, and there are no replacements because the company decided not to update anything.
You Should Also Understand the Different Server Types Available
There are different types of servers that you will want to make sure you are familiar with, because you will run into many of these along your hosting journey.
Shared Hosting
The most common type of web hosting you will encounter is shared hosting.
It is also the cheapest kind of hosting you will run into.
The reason for this is because hosting companies who provide this kind of hosting cater to “lowest common denominator” type customers.
These customers don’t need the higher tier hosting.
They are customers that:
- Simply want to host their site with the fewest bells and whistles possible,
- Can manage their own servers
- Or, otherwise via technical support
- Just need a modicum of server space for their needs
- Aren’t hungry power users or medium users
The only thing you must keep in mind about shared hosting is that there are many limitations to this kind of hosting.
The access to your server’s capabilities will usually be limited.
You may only be able to upload via FTP or SFTP, thus preventing shell access.
You may also be faced with several restrictions on the types of programs you can run on the server.
Additionally, you may be faced with many hundreds of other websites on the shared server, creating a “bad” neighborhood of sites that could impact your own site’s Google rankings.
VPS Hosting
Next tier up, you will find VPS hosting, or Virtual Private Server.
You aren’t paying for a full, physical server box or anything like that.
Instead, you are paying for resources on a box somewhere that is being shared by many others on it.
You have a “dedicated” part of that box, so Google doesn’t see anyone else on the server.
VPS is a good solution for avoiding “bad neighborhoods” that you might find on a shared hosting plan.
In most cases, server companies run many different instances of a VPS on a single box.
Even though this is the case, you will find that VPS offers superior performance to standard hosting services.
Dedicated Servers
When you are a power user, and you need superior performance to all other forms of hosting, dedicated servers are your choice.
Also, if you prefer to not have any possible link or relation to another site anywhere, you should choose a dedicated server.
However — and this is important to be aware of – if you are not going to be doing all the server management yourself, you may want to hire someone to do so, especially if your site is an overly complex one.
You don’t want to run into the situation where you order a dedicated server, and you have no clue how to use it.
Cloud Servers
If you are planning on having a tremendous increase in traffic eventually, you may want to opt for a cloud server.
These servers reside “in the cloud.” They utilize giant public clouds such as Amazon Web Services or Microsoft Azure.
The power of cloud servers allows the ability to have any configuration you may want, depending on your needs.
They can also be scaled seamlessly, without needing to have physical units moved or rebuilt.
They can also be configured to appear as their own host, so you don’t have to worry about scores of other people using the server space alongside yours.
Reseller Hosting
There are other tiers of hosting that include reseller hosting.
These are similar to VPS hosting, only in that as a reseller, you can lease your own server and sell space on that server to any clients you sign up.
That’s right.
You can sign up for your own reseller hosting account that can then be used for any clients that you pick up.
This can be very advantageous when you are starting out, and you hesitate to recommend other hosting to your clients.
If you’d rather keep your client’s hosting with you, you can make some additional money without additional significant costs of dedicated servers.
This can be a great addition to your bottom line if you position it properly in your line of services.
If you don’t exactly want to become your own web host, you can just tell clients you can host for them off-handedly.
It’s a great way to make sure that all of your expectations for your server performance remain yours, and you can dictate everything that happens on your server.
This is probably the best part of reseller hosting: you have full control.
Warning: Unlimited Offers Are Not All They’re Cracked up to Be
If you have been engaged in hosting for any length of time, you may have run into so-called unlimited hosting offers.
Don’t buy into them. They are a scam.
Here’s why: if you pay a super small amount of hosting, there is usually going to be something in their terms of service that bites you in the butt later.
You may pay more for bandwidth.
Your bandwidth’s performance may be throttled.
Any number of things could cause you to experience issues if you sign up for unlimited hosting offers.
If you know what to expect, however, you may be able to manage them to the point where you are costing them money.
But, beware, unless you are someone who knows about doing this stuff, don’t fall for these unlimited hosting scams.
Warning: Be Sure to Keep Your Domain Name Separate from the Hosting Company
While choosing a hosting company, you may run into advertisements that say “transfer your domain name!!” or “buy your domain name with us!”
These are also a scam.
Here’s why.
If you buy your domain name with the hosting company’s hosting package, this gives them control over the domain name.
In this case, when you want to transfer domain names from your host to another one, it can be a logistical and customer service nightmare to accomplish.
And if for some reason you run behind on payments, they can hold your domain name hostage.
I’ve personally been through many issues with domain names being held hostage by hosting companies, therefore I no longer recommend that clients take this route.
It almost always ends in heartache for the client, who must then end up buying a domain name elsewhere.
This is especially true in cases where the client is fed up with their host, and they can’t easily move the domain name.
It is so simple and easy to set up domain names, so you may want to opt for keeping your domain name in your own domain name company’s account at all times.
Also, you won’t lose any earned SEO benefits if you have to move providers and the provider is not cooperating with letting you take the domain name with you.
Other Advice
Be Sure to Assess Their Technical Support Options.
If you don’t have your own support team or developer standing by, you will need your hosting company’s help on a frequent basis.
Make sure they have 24/7 online chat, along with email support at the minimum.
Not everyone is going to have the opportunity to call immediately, or get on chat, so having multiple ways to deal with support is recommended.
Also, some hosts don’t have any support, and they only provide a forum with users who help each other out.
This can be extremely frustrating if you are not technically-savvy enough to be able to do things on your own.
Make Sure You Understand Any and All Costs for the Service
It’s important to be sure that you understand the costs involved, and ensure that you read their Terms of Service for any and all potential billing activities they may throw at you.
I’ve seen services charge like real estate every time you add a site to their reseller service.
Example: they advertise $19.99/mo for a reseller server, but charge you $4.99 per additional domain.
A host I have been with for a while does this.
The thing about this practice that annoys me to no end is that I don’t see anything ethical about that type of pricing model.
It’s a digital service – why do we have to spend an additional $4.99/mo for that “virtual real estate” when we already pay $19.99/mo?
It boggles the mind.
More ethical hosting companies will offer flat rates for reseller hosting.
In addition, web hosts may bundle many types of services and products in packages that will cost you a small fortune.
Don’t sign up for anything that is significantly more than what you need. You’re only wasting money.
If you find you’re paying for hosting that is about the price of a small car payment, you may be paying for dedicated server hosting or packaged bundle hosting.
Be sure to read the terms also.
I tend to recommend people run away from companies that advertise “$4.99/mo” for hosting, only to bait-and-switch you with a total yearly price for that actual hosting.
If they are so unethical as to bait-and-switch you a monthly price that is actually what you’re paying for when you pay for it annually, I say run away from that company. What else are they being unethical about?
Chapter 3: Planning and Wireframing
Step 7: Choose Your Technologies
In your role as an SEO, depending on your company, you may not have to master every single programming language and technology stack available to you.
It would be counterproductive in most ways – you can’t spend months learning languages and platforms when you have a project due in two weeks (or two months).
What can you do?
There are shortcuts. Not every shortcut is pretty, but these shortcuts do involve learning the basics of these languages and platforms.
At least enough so that you know when things are working and when things are not.
And enough to know when something is well-optimized for SEO, and when it is not.
Of course, you don’t need to learn site-building yourself, but it’s a good idea to become intimately familiar with the process so you have some idea of what is needed.
It allows you to become a more effective manager.
When you take this path, you can easily spot solutions that others cannot, and that puts you above the rest in terms of skill.
It helps to keep an eye on these technologies, so you know what changes on a regular basis, what you need to pay attention to, and what you need to ignore.
This can pay dividends later when you move forward with
While first building your site, it’s important to assess its final intended function.
This will likely be very different from how you first ended up with the site idea.
This is why it’s important to consider several key factors when choosing the technologies that will drive your web presence.
For this article, I’d like to take a short respite and use a
The Framework/Platform That You Plan to Use
Modern websites are created using many platforms, technologies, and languages.
You don’t have to be intimately familiar with languages or server technologies to run your site, but you should be familiar on a surface level with your technology stack.
This means you should at least have knowledge of:
- How the technologies work together,
- How to fix common errors,
- And other issues coming up when the installation breaks
A framework is a library of coding languages that is pre-coded and can assist you with rapid prototyping and development of your wireframe.
You can use these frameworks as templates and create your own sites from them.
They are very useful starting points when you don’t want to build something entirely from scratch.
Frameworks like Angular.js and React.js are both very popular in full stack web development.
Let’s take a look at some of this stuff further.
There Are Two Sides in Web Development
Before we discuss deeper levels of web development, let’s talk about the two sides inherent in any web application – the client-side, and the server-side.
The client-side is known as the front end, or everything the user sees.
The server-side involves all the code, technology stacks, and applications working together to run a website.
The server-side is known as the backend.
The major technology stack components are:
Front-end languages like:
HTML, Hyper-Text Markup Language – This is the language used for building web pages.
CSS, Cascading Stylesheets – this is the language driving all the display stuff – the styles making the content look pretty.
JavaScript – used to drive many user interactions, animations, and server-side programming that also interacts with client-side, creating a truly dynamic application with complex interactions on both sides.
Server-side languages like:
Ruby (Ruby on Rails), Java, PHP, Python (Django, Flask, Pylons), ASP.NET.
PHP – Hyper-text Preprocessor. This language is used to drive many server-side components and applications.
PHP drives WordPress and WordPress development in general. You will likely find WordPress to be heavy in PHP, so having some knowledge of this language is helpful.
However, WordPress has its own PHP structure, including how files are setup, so it will be necessary to learn this if you are planning on being effective at optimizing your own WordPress-based website.
ASP.NET – Active Server Pages based on Microsoft’s .NET platform. Microsoft’s answer to PHP. If you are using Microsoft technologies to drive your online presence, this may be a better way to go.
Knowing how both sides of web development interact is critical towards being an effective SEO.
By understanding these things, you will then know how to ask the right questions.
You will also know when your website is working, and when it’s not.
More about the Server-Side
Your server backend will have the following components as part of its technology stack:
The Server
The server you choose is not all that important when you are well-versed in its function, implementation, and setup.
Servers that you will find available on web hosts include the following:
- Apache
- NGINX
- Microsoft’s Web Server: IIS
- Tomcat
Which is better for SEO?
There are some who believe that NGINX is better for SEO.
There are others who believe that Apache is best for SEO.
Really, it all comes down to your skills with both platforms when considering how your SEO performs.
An Application
These applications include the operating system (OS), programming language, web server, and web framework.
Server-side is mostly an umbrella term used for the backend of websites, where your developers work with server-side hosting, deployments, programming business logic, and working with the databases.
The way the server-side usually works is that the stack is engineered to respond to user requests, database accessing, and simple CRUD operations (Create, Read, Update, and Delete).
A Database
In cases of sites that use content management platforms (CMSes) such as WordPress, these CMSes work with a backend database (usually MySQL) to store, access, and update information for the CMS automatically.
If you ever need to download and export content to another site to preserve content in the case of catastrophic issues with your site, you will use a database to download, save, and export the backup to another host.
What Are the Most Popular Technology Stacks in Use Today?
LAMP and Python are two of the most popular stacks on the backend used by developers.
What is LAMP?
LAMP is, quite simply, a short abbreviation for Linux, Apache, MySQL, and PHP. This is one example of a technology stack that you will run into.
For the purposes of this particular configuration:
- Linux is the server’s operating system,
- Apache is the web server,
- PHP is the scripting language,
- And MySQL is the type of database being used.
Middleware: What Is It and Why Do I Need to Be Concerned about It?
You may have heard the term middleware discussed in some tech circles.
This refers to things like application servers, web servers, any content management systems, and any applications that support development and delivery.
Most of these applications are written in Java and C#, and they also facilitate standard communication and management of this data between the front end and the backend.
Such is its term: “middle” ware.
Think of this middleware as something like a hidden translation layer.
This layer connects two applications in the tech stack together and enables seamless communication between database and data.
One example of this happening is when a user sends a form in a web browser.
This middleware is what will be retrieved by the form dynamically.
Choosing Your Final Web Technology Stack – Other Factors You Should Consider
The size of your project is always a top consideration, because this will affect the technology stack you use and how it impacts the final project.
From how fast your application acts to how agile your project moves through the development stages, it’s an important consideration.
This determination should be made early on in the process, before starting.
Smaller, More Compact Projects
With smaller projects, you don’t have to spend as much time in the beginning when it comes to planning and prototyping.
For these projects, you can mostly assess a few requirements in the beginning, choose WordPress and a host, and go to town.
You may also want to use MAMP Pro on your personal computer as a local server, and install WordPress there.
Medium-Sized Projects
More medium-sized projects are usually more complex and need a combination of programming languages.
Developers will need a variety of functionalities and integrations with different platforms, and depending on the size of your company, doing this is not easy.
Integrations with internal company technology and existing frameworks is also a consideration, because these medium-sized projects often need to be integrated with lead capture software, consumer chat software bots, and other add-ons.
These projects also include things like e-commerce websites, financial industry websites, major projects for the government, and other similar use cases.
Commonly used programming languages for these projects include Java and C# as backend languages.
Large, Complex Projects
In larger, complex projects – the goal is to create seamless integration with a number of apps and platforms used at larger companies.
This can take the form of company payroll through a private company intranet, security applications designed to test for specific penetration attacks, and other applications needed for the full working application of the technology.
Project examples can include extraordinarily-large e-commerce marketplaces like Amazon, or projects serving the immense web needs of a large national company like Microsoft.
These complex projects can include integration with apps that have version control tracking, GitHub implementations, and integrations with Visual C++ development platforms.
All of these considerations and decisions need to be made during the planning phase of your project, so that you can create accurate budgets, and project requirements for extreme bandwidth usage where applicable.
There is almost no limit to how large a complex project can get, and scope creep can be very real in these instances.
What is scope creep?
This refers to continuously bloated, and often uncontrolled, growth of changes to project requirements after the project begins.
Scope creep is a bane for SEOs because it can impact the management of your project negatively, and if scope creep is not properly accounted for at every phase of the project, it can cause your project to spin wildly out of control.
Out of control means out of budget, out of time, way past deadline, and the client becomes extremely upset.
Scope creep is real and if you don’t get a handle on it fast in the beginning, your project will end up becoming a failure before it starts.
Common issues that can occur during scope creep include project instability when incompatible add-ons are created, skipping over testing to make sure that the project doesn’t present issues down the line, and skipping over requirements in favor of other requirements.
It’s important to make sure you have a well-defined project in the beginning, and keep an eye on any changes in scope and targets of the project as it moves forward.
This is why having a skilled project manager is essential for making sure your project avoids the dreaded scope creep.
Should I Start from an Existing Theme or Create My Own Design from Scratch?
When you first begin, it can be tempting to throw up an existing template theme, and move on.
There are several problems with this approach.
First, you can’t be guaranteed that your theme takes everything into account.
Even when reviewing the requirements and being given such guarantees, or when testing the theme in the beginning, you may not gain significant benefit from this implementation.
That’s because, while you may get a theme that meets some of your needs, it may still be missing crucial features.
For example, your theme may be deficient in some attributes that make it more mobile-friendly.
Your theme may be deprived of basic SEO coding structure like H headings (H1, H2, H3, etc.), paragraph tags (P tags), and proper header meta tags.
You may also have significant issues with load time. Typically, developers do not create SEO-friendly designs in this regard.
Before purchasing your theme or using it, you will want to look at these basics.
If your theme is deficient in any of them, don’t buy it.
You will likely spend many more hours than you initially intended, customizing and making sure that your theme conforms to basic SEO standards.
I can’t tell you how many hours I’ve spent customizing themes and writing content to conform to proper SEO structure when the theme itself was deficient in structure.
The answer to this question, unfortunately, is “it depends.”
Other Considerations: When Should You Think About Updating Your Technology Stack?
In some situations, your current technology stack can prevent you from taking advantage of new technological advances.
From legacy code preventing you from using the latest WordPress plugins due to incompatibility issues, to bad implementations keeping you from making your site more secure, there are many situations where your existing technology stack is simply outdated and can’t handle it.
On the one hand, adjusting things like bandwidth and the amount of data storage can fix some issues.
On the other hand, creating entirely new applications on the server-side may be needed to create the added functionality that you want.
How do you know when your technology stack is outdated and you need new stuff to gain the functionality you want?
Older Frameworks & Platforms That Are Now Deprecated
One example of this scenario is if you are using an outdated version of Angular.js that isn’t supported by the latest coding libraries.
Another example is if you are using a WordPress theme that was written in XHTML 1.0, and has coding that’s incompatible with HTML 5.0.
It can be tempting to simply copy the code over and hope for the best.
However, this approach seldom works out well.
You will end up with a document that likely throws errors everywhere when attempting to validate the code.
I have personally been involved in website updates where the new website throws errors everywhere, when trying to validate.
This was an issue that could be traced back to the fact that all the developer did at the time was copy and paste the existing code into the new site.
They did not rewrite code as was one of the requirements for the project.
Another example: deprecated code that does not work with either the latest versions of WordPress or causes conflict with apps on the server.
This may not be an obvious issue until something on the site breaks due to such conflict when you upgrade to a platform that’s not compatible.
If the conflicts are severe enough, you may end up rewriting the entire foundational code for the site from scratch
The Existing Code Base Cannot Support New Features
If you want to add new features to your site, such as a chat function or complex form processing to accept credit card payments, some of these features may not work with the existing code base.
In some instances (where it can be as simple as coding a couple lines), it’s a simple fix and you don’t have to worry about going back to the drawing board.
However, if your new features require a lot more work, such as a complete rewrite of the code foundation, there is no way around it and you must bite the bullet and do it.
I have worked with several companies who decided they would rather cut corners and not spend the money. They would continue limping along, not adding the new features, and not being able to take advantage of the lead generation opportunities they could have enjoyed by adding these new features.
Don’t be like these companies! Always be mindful of when you need to do a complete overhaul, and eat the cost (and your pride) if needed.
Pride and cost are the most common factors that impact this kind of decision making.
Pride, because the business owner waits too long and does not want to be bothered, or they think the project they had the most input on was their baby, and they don’t want to let it go.
This can be the most dangerous issue because change is constant in website development.
One must accept that an imperfect implementation is no longer valuable, and they must be willing to accept change on a consistent basis in order to see better results later.
Staying stagnant due to pride is one of the most dangerous issues in business because of this.
Never be afraid to change and continuously update your technology when it becomes outdated. Because this can mean the difference between whether or not you remain competitive.
The much less dangerous issue is cost. Sometimes a project overhaul can be so bad and costly that it may not be worth it. In these situations, it can be cheaper to ditch the current platform and have something developed on a more modern platform.
Your developer and technicians will be able to give you more specific advice in this area.
Just don’t be afraid to upgrade technology and move forward. Websites are an always-changing field and you must be willing to follow suit
Step 8: Create Your Wireframe
When you think of wireframing, what comes to mind?
Dana Larson of dtelepathy.com talks about wireframing as an ideal tool whose purpose is to serve as a space for “collaborative conversions about design solutions, while supporting iterations and driving rapid ideation.”
She hit the nail right on the head here.
A wireframe should be a simplistic model that shows a relatively vague idea of what your final design’s layout is going to look like.
Before design elements are applied.
Think of it like a solid foundation for a house – you wouldn’t create a house without a foundation right? Foundations anchor the property to the ground, and provide for a safe release when earthquakes and other disasters strike.
During the wireframing phase of the design, you have young and unpolished ideas.
Throughout the wireframing phase, you will move forward with the various elements of the design, and watch your ideas come to life!
Set and Discuss Clear Expectations
Clear expectations are important. Not only from a practical point of view, but from an execution point of view.
If your final design and site are not in line with your client’s expectations, they will not be happy.
It doesn’t matter if you create the most amazing site in the world.
If it doesn’t make your client happy, it’s all for naught.
Don’t Get Too Attached to Your Ideas in the Wireframe
The entire point of a wireframe is to achieve rapid ideation of your ideas.
So lots of changes are going to happen from your initial wireframe to the finished product.
It’s important not to get too attached to your ideas in the beginning.
Collaborative discussions will inevitably lead to changes in the wireframe, and changes to the site overall as wireframe development ends.
What you initially create will seldom be the final, finished product after collaborative ideation happens.
That’s why too much attachment to your ideals in the beginning is a project killer, and you should keep an open mind towards rapid development of these ideas throughout the wireframe phase.
Use Actual Content in the Wireframe
This doesn’t mean just use lorem ipsum based content.
Using actual content in the wireframe will give you an even clearer picture of how the site will look with the content that you eventually plan on including in the site.
When you do this, you set a clearer vision for how your site is going to look once it’s finished.
Which brings us to our next point…
Use a Style Guide in Combination with Your Wireframe
When you have a wireframe, it can be very easy to lose track of specific style ideas, and design guides.
This is especially true if you don’t have a style guide in place that explains everything you should and should not include in your wireframe.
You can easily stray off the mark when it comes to the placement of elements within your wireframe, type of text you use, any text you use, any graphics you use, etc.
The style guide is a living, breathing document that details everything you want about your site’s final design.
From its overall mood, feelings you want to elicit when people see the site, to all potential elements and how they interact to create the overall site feel.
Your style guide should include things like:
- The font style you plan on using throughout the site,
- Different attributes of on-page elements like text, lists, images, any CTA elements like buttons and forms, videos, etc.,
- Your overall “attitude” and theme you want to pursue,
- Any end goals you want to accomplish with the final product,
- Any milestones in a Basecamp-like project management time guide that will allow you to plan and mark milestones along the way,
- Any branding guidelines that are staples of the entire design,
- Anything else you can think of.
This will serve as your final roadmap towards how your site will function as a living, breathing, growing digital asset for your company.
Don’t create your wireframe without it!
The Do’s and Don’ts of Wireframe Execution
If you are working on your wireframe, there are several do’s and don’tS that you will want to observe in order to make working on your wireframe as productive and as fruitful as possible.
Do’s of Wireframe Execution
Perform Research on Your Potential Users
This research on your users is very important. It will tell you what is most effective among your user base.
It will tell you what they are most favorable to interact with.
It will tell you things like colors preferences among them, button shapes that are most effective, and other things about your users.
You wouldn’t start a design without a solid wireframe foundation, right? Similarly, user research is just as important before beginning your wireframe.
Create Actual Navigation Elements in Your Wireframe
Your wireframes should also include actual navigation elements.
Things like breadcrumbs, menus, and other navigation elements should be determined in this stage.
This stage is the easiest time you will have to move navigation elements around, or change them entirely.
Use these types of elements to guide your users throughout your site.
As you develop your wireframes, you will be able to clearly see exactly what your navigation is doing. This way, you can make corrections before your site hits the critical stage.
Practice Collaborative Discussions to Improve Everything
Things are seldom created in a vacuum.
The same holds true for websites.
Collaborative discussions designed to move your project forward is a great, effective way to gain input from multiple team leaders at once, and can help you unify and strategize ideas before they take form.
Your wireframe tool should give you the ability to share and communicate your wireframe across every device, and let your team members comment on and suggest improvements to every element of your wireframe.
If two heads are better than one, at least five heads will be even better.
Through a collaborative discussion, you will be able to move the project towards a satisfactory conclusion that will make your client not just happy, but perhaps even excited to use your solution.
Don’ts of Wireframe Execution
Don’t Forget about Mobile Devices
Your wireframe should include both desktop and mobile versions of the site.
You don’t want to run into a situation where you have glitches on one version of the site, as it shrinks or expands in size.
Creating your wireframe with both desktop and mobile devices in mind will help you catch critical errors as you continue towards the final design of both platforms.
Don’t Forget the Content
Yes, I know. Wireframes are supposed to be quick and dirty implementations of your site that you can use as a basic skeleton.
But, did you know that oftentimes, reworks later can happen if you don’t pay close attention to how content is laid out in the wireframe?
Even worse, major reworks later can also occur.
You do not want to perform major reworks on your site if you find that 50 hours into a 75 hour project, you forgot to make tweaks to how the content looks in the 9th hour.
Don’t Just Focus on Style, without Bringing Substance to the Table
While some elements should be created and implemented according to the style guide, don’t just focus on style in the wireframe.
This is mostly a structure thing at this point, with final style implementations being created during one of the last phases of your design.
But, your style guide should be included as you are working on the wireframe, to make sure that you create wireframe elements that are all properly aligned with your intended audience.
Don’t just create styles in the wireframe, but use your style guide as a reference while moving forward with your wireframe.
This will help you achieve the maximum impact possible when your design is finalized.
Step 9: Create Your Design
When you first start on your site design, there may be many questions and things you haven’t thought of.
Some of these will happen as you finish up your first mockup and you think–man, I should not have put that there.
Others will happen at the end and you think–man, that needs to be totally reworked.
It’s OK. That’s what the design phase is for–for executing your ideas, making mistakes, and creating a final, finished product.
Here are some ideas you can move forward with as you create your new site.
These are things to keep in mind as you create your new design from scratch.
Make Sure Your Goal Is Clear and up Front
Your goal for your site should be clear and up front as you build the site.
If you are building a site for a real estate agent, and that agent needs functionality to have their potential clients search for listings, then you should know this goal up-front.
If you are building a lead-gen site for lawyers, that should be stated up-front.
If you are building a site for people to buy widgets, this should also be stated up-front.
Your up-front goals will help you build a plan for the backend and move forward with any smaller ideas as needed (merchant accounts, everything else).
Draw On Inspiration from Other Websites in Your Niche
In a niche, you already have websites that are top-notch in terms of design, inspiration, and other things.
Find these sites so that you have a good idea of what is working for others.
Then, (without copying directly) you can formulate your own design mockups and create originals based on what you have gathered in that niche.
If you do decide to draw on some outside inspiration, it can make the process much easier for coming up with a fresh, original design.
Write Content on Your Own – At First
Writing content for your niche on your own will help you create better content when you have someone else write it.
It will help you be able to spot issues and inaccuracies with content when you do hire outside writers to produce that content.
This will also help you formulate the basic branding message of your company, so that you can use a unified message throughout all of your content pieces.
When you have the basics in place, you can then begin farming out the writing process to other writers.
Use Clear Calls-to-Action
When you create clear calls-to-action, you tell your visitors to perform something specific to accomplish the goal your website has of satisfying their needs.
These calls-to-action can range from the very basic call us button, to more complex calls-to-action like form elements.
In either case, clear instructions and expectations should be set to create effective calls-to-action.
If you don’t plan on responding to your potential consumer within 24 hours of submitting the form, say so.
Include a line that says “We will respond to your inquiry within 48-72 hours” or something to that effect.
Overhauling business processes may be needed, because research shows that people on the web expect quick reply times, so being able to say “We will respond to your inquiry within 24 hours” is very powerful.
Be sure to carry out user testing on your audience to figure out which types of calls-to-action are best.
Red action buttons are great for some users, while others prefer green buttons.
This is why user testing on your audience is an important first step towards tweaking your design, to see how much more effective it will be.
Create a Hierarchy of Your Pages
Most every business website contains a few different pages.
Some will have more pages than others.
Your format may be very simple, including just a few pages like your about page, product page, home page, and contact page.
Or, you may want to create something more complex, with different pages for your products and services, and a main page that offers more of a surface-level overview.
You should plan on and create your hierarchy with a wireframe before you start creating these pages.
This way, you don’t leave any major holes in your page hierarchy.
Keep In Mind: People Are More Impressed by How Your Website Looks and Performs than Whether It Was an Educational Endeavor
If you are strapped for cash, you may want to go the do it yourself route rather than hiring an outside developer.
Some people can do this successfully, but it requires years of experience to get to the point that you know how to create and maintain websites efficiently.
If it’s one thing that I hear from anyone who has a small business – they were really proud of themselves and how they went through the learning experience.
However, people don’t care about your learning experience.
They want a professional site that loads fast and looks high quality, with all the functions implemented.
They don’t want a haphazardly-created site put together by Sally web designer in 5 hours.
There’s a reason why the saying exists: “an amateur is usually paid more than a professional only because it takes longer to get the site correct after an amateur’s mistakes. Professionals are worth their weight in gold for this reason.”
Consider – Heavily – The Growth of Your Site’s Future Traffic
Think carefully before you spend money on a less-than-reputable website company.
If you put your site on WIX or Squarespace, expect that those platforms do not allow for great customization or flexibility.
You get what you pay for, and WIX’s reputation in SEO circles is very bad for that reason.
They are cheap, and putting your site on a CMS platform like WIX can do far more harm than good to your future SEO growth.
If you plan on staying small and using fewer features, even WordPress is a better choice.
A WordPress host will not cost much more, and you have great extensibility and expansion, should your needs ever come to that point.
The problem with WIX or Squarespace is proprietary coding that often does not mesh well with standard SEO best practices, which make them tough to code for SEO.
For this reason, WordPress is better and careful selection of your theme is important.
Also, Consider Pre-made Themes
Not every business owner will be able to hire a full design team.
There are pre-made themes available that can cut your development time in half, and give you a great platform that you can fully customize to your liking.
And, it doesn’t have to be limited to just WordPress.
Your themes can be in HTML5 and CSS3, and your added customizations can be very beneficial for your business.
You can also get WooCommerce-compatible themes if you have an online storefront, making product management easy.
It all depends on what you need, and what will be of benefit to your business.
Caution: Stay Away from Free Themes
It needs to be said that you should stay away from free themes.
At Themeforest.net, you can browse thousands of themes for WordPress, and pay anywhere from $50 – $75 for a good theme.
Even paying this much is better than a free theme.
Free themes are not quite as customizable, don’t have as many options, and often do not have enough security to be worth it if you plan on growing your site (remember the traffic growth discussion we just talked about?
This is why it’s important to make the decision between a free theme and paid theme. And make sure you understand the full ramifications for your website’s growth in the future.
Don’t just pick a random theme and think it will help your particular business’ use for it.
Include a Way for People to Easily Contact You
I know I’ve said it before, but it’s important, even in the design phase, to figure out a strategy for including any and all means of contact on your site.
With very few exceptions, every business should have contact information so that consumers can easily contact you.
Whether it’s your business address, phone number, or contact form, how you include contact information is just as important as how many contact methods you include.
Your phone number should be easy to access, and provide quick response times (24-48 hours or less guaranteed).
Other types of businesses will want to have a live chat system installed, allowing them to keep in touch with consumers live.
Some service-oriented businesses will want to have a well-qualified lead form with more options for their type of business.
These forms can also be plugged into their lead generation software.
Simple setups will just have PHP forms sent to their MS Outlooks on their internal systems.
More complex setups will have customized lead-gen management systems on their servers, with full access to all lead information via special lead management software like SalesForce.
Either way, at minimum, make sure that your site has the following methods of contact:
- Your company name,
- Your address/location,
- Your city, state, zip code,
- Any links to any contact pages,
- Your phone number in a big button at the top of the page,
- Your phone number in any other key places often used by consumers,
- Any lead gen forms for your service or product,
- All of your social network feeds linked by social buttons,
- Any other call-to-actions you want to implement to drive user interaction and engagement.
Which brings us to our next item…
Always Include at Least One Contact Form
Yes, we know. You already have a link to your email on your site.
But, that’s not enough.
Not all users have full access to their email program of choice, and not all users have access to email on their phones.
Thus, it’s important to have at least one contact form on your site to generate leads.
It can even be as simple as having three fields: name, URL, and any text you want them to send to you.
Make it easy to use with appealing design elements, and include it everywhere you expect consumers to be on your site.
Even on the sidebars of internal pages.
This is a great way to generate leads as you begin to drive traffic and growth to your site.
Take into Account the Scale of Your Project
It’s important to take your project’s scale into account when you are considering your site design.
If you don’t, you may end up with a theme that’s not entirely compatible with your site’s ultimate goal.
This is why moving forward with a custom site is so important.
That site will take into account the final goals of your project, and be fully customized after the fact.
If you get a designer, you want to consider a designer who has enough experience with your type of site to be effective.
Don’t get a big brand designer if they have no experience with your market or service.
This experience is important – you don’t want to get a big-name designer only to find out halfway through the project that they can’t hack your design’s requirements.
Add a Human Element
If you add a human face to your site, you create a more human relationship with your readers.
They will be able to relate to your content much easier, and know that a human being is behind the site serving them.
There is a time and place for large corporate websites, and impersonal touch that will lend credibility to your site’s branding.
But, for more personal services and smaller sites, adding a human element with a “face-behind-the-curtain” so-to-speak, just lends that much more credibility that you are a real person and that the customer will at least interact with you at some point.
This human element is important towards building your credibility on the web.
Include Valuable Imagery
Adding valuable images to the site, where it makes sense, in strategic locations within your content is a great idea.
This goes a long way towards supplementing your content with imagery that supports all of the text within your document.
In the case of how-to websites, context is important.
How-to strategy could be to create a way to include images that teach the reader how to do something, especially computer-related, where screenshots become very valuable resources.
Where these screenshots become valuable is when they support everything you are trying to teach your visitor to do.
On an e-commerce site selling widgets, you would want to include photos of every side of the widget, and size comparisons.
This gives your customer a very real way to visualize your widget and how it will help them.
If you have more informational-based content than educational, it may be advantageous to include imagery that tells more of a supplemental story with your content.
The possibilities are endless.
Don’t Use Cheap Stock Photos
Using cheap stock photos is an exercise in futility.
For instance, when you’re looking at a competitor’s website, you may want to use a photo that they used on a similar location in your site.
The reality is that this kind of use is seldom productive, and will in actuality cause you to lower the quality of your site as a result.
If you skimp on stock photography, you can expect that people will have seen the photos elsewhere a thousand times.
This is not a good way to present your site, and not using photos at all would have been a better option.
Use Video Content Judiciously
Creating video content can be a great way to increase your user engagement, and keep people engaged longer.
But, don’t just create video content to create video content.
If your market is a boring market, and does not have products or services that are very video oriented, creating this content would not make sense.
Here’s the problem that you can run into with a video content strategy.
And it happens more often than not.
If you create video for the sole purpose of selling your widgets, and you create too much self-promotional content, it will be seen as spammy content and your audience will likely be turned off from viewing it.
However, if you create more interesting videos with the express purpose of teaching your audience about your widgets, then you have created a unique strategy.
Another strategy you may want to explore is how your widgets can be used for the most common problems (such as with Tasty One-Top’s marketing for their SMART induction cooktop).
While you may want to have your products and services be a focal point of your video, you don’t want anyone to feel like they have been suckered into a low-quality sales pitch.
Instead, your video needs to be engaging, interesting, and should tell a story that your audience will want to share again and again.
Don’t be the same old company they saw 10 companies ago, who was doing the same thing.
While copying your competitors is all well and good, if you don’t differentiate yourself on the video front, your message will be lost among a sea of 10 identical ones.
Don’t just copy your competitors – be interesting, different, and engaging!
Create an Outline for Your Video Content Plan
When you create video content, it’s important to start with an outline of your video content plan.
This includes your ultimate goal, your marketing forecasts, and any other data that would be helpful.
This outline also includes the types of video content you are planning on creating, depending on your site and industry.
There are many different types of videos to choose from, including:
- Knowledge-base videos
- Funny or entertaining videos
- How-to or educational videos
- Videos talking about “behind-the-scenes”
- Tips and tactics videos
- Customer video testimonials
- Live webinar videos
- Recorded webinar videos
- Explainer videos for products
- Explainer videos for services
- Case study videos
- Video interviews with company executives for larger firms
If you are in a technical industry like SEO, videos up to and exceeding five minutes is encouraged.
You will get more engagement from your audience the more value your video brings to them.
For most other industries, however, videos with a length of around 2 minutes are just fine.
It is also recommended that you create a call-to-action at the end of your video.
“Like, share, and subscribe to our newsletter” are good video calls-to-action.
Also, don’t forget asking your viewers to physically subscribe to your video channel!
All of these elements should be in every video you create.
Always Leave Your Viewers Wanting More
Creating teasing videos in such a way that leaves your viewers wanting more should be a norm in your video creation best practices.
End your videos in such a way and cover your topics in such a way that leaves open-ended guesses that something is coming, and soon.
Don’t just close out a video unnecessarily unless you are just making no further videos.
It’s a lost art creating videos with cliffhanger elements, but when you do this successfully, you’ll see your viewers liking, sharing, and salivating over what’s coming next.
Use Arrows as Visual Cues for Your Calls to Action
There is a long-standing theory that using faces creates easy visual cues that causes people to gravitate towards your calls-to-action more naturally.
While this is true, arrows can be better in some cases, depending on your users.
You’ve seen the type – arrows that curl over or under a contact form, or swirl from text to a button, or over and/or under a button.
These arrows help tell your reader exactly what you want them to do next.
It’s a good idea to perform user testing to check out exactly how your viewers will react to these arrows as opposed to using faces.
In fact, you can use usertesting.com and sign-up your site, and their real users will be able to give you live feedback as they browse your site.
Use a few variations of this approach (faces vs. arrows) to see what works best for you, and go with it when you find a variation that’s successful.
Step 10: Create Your Graphics
If you are going the Do It Yourself (DIY) route for your website, once you have created your wireframe – as we discussed in an earlier section – now is the time to create the graphics on top of that wireframe.
After you have had a chance to review any themes or any other websites you may want to emulate online, now is the time to move forward with creating graphics, right?
Not so fast.
Let’s take a look at some web design standards in 2022 first.
It is helpful knowing the current standards, so we can include them in our site as we move forward.
But, don’t just create graphics to create graphics.
A homogenous, structured design is encouraged, borrowing from the elements and principles of design:
The elements of design include:
- Color
- Line
- Point
- Shape
- Texture
- Space
- Form
The principles of design include:
- Unity/harmony
- Balance
- Hierarchy
- Scale/proportion
- Dominance/emphasis
- Similarity and contrast
While beyond the scope of this article, reading about the elements and principles of design will give you a thorough grounding so you can begin on the next steps.
Check out this Wikipedia page on the elements and principles of design.
If you don’t already have one, it will give you a grounding in the basics before you move forward.
You don’t have to become an expert overnight.
You don’t have to be an artist of Van Gogh’s capability to create the perfect website.
You simply need some practice with a foundation of basic knowledge. The real stuff – the cool stuff – comes later.
Although, an ability to think creatively does help!
And the best part is, on sites you royally screw up on, you don’t have to show or promote them to anybody!
Let’s get started by taking a look at web design standards in 2022.
Then, we’ll examine three examples of creating a real website, step-by-step using Adobe Photoshop (for graphics) and Adobe Dreamweaver (for the code).
The sites we’ll create include: an attorney WordPress website, a standard, static real estate website in straight HTML 5 & CSS 3, and a healthcare WordPress website with a blog.
Chapter 4: Web Design Trends
Web Design Trends in 2022
When creating any graphics for the web, it’s a good idea to look at current design trends and standards.
These design trends and standards will help you formulate the look of your site so you don’t look like the crazy person with a design pulled out of your butt.
However, there are elements of web design standards that appear everywhere.
Now, just because they appear everywhere does not mean that you have to ascribe to every single web design standard.
In fact, you can break them.
Even if you break some of them, just doing so will help you have a great design that doesn’t look like all the others.
It will help you become unique.
Certain elements such as a logo are almost always in a certain place because consumers in that industry have become used to that standard.
But, breaking them can result in a better design.
Let’s look at web design standards in further detail.
These include things like:
Placement of the Site Logo
In a vast majority of sites, you will find the website logo to be in the top left corner of the page.
This practice has been so commonplace most people don’t think to do anything else.
What if you included the logo in the right hand corner?
Or at the top of the right or left sidebar?
If you do this using A/B testing and user testing, you may find something surprising about your users that you didn’t know before.
This can lead to more effective changes on your site design.
Slideshow on the Home Page
Thankfully, there are only a handful of sites that do this in general. But, you should think about this before attempting to add a slideshow to your site
Most slideshows are based on JavaScript, which is a hindrance to having an effective, crawlable site.
The trends have reversed in recent years, however, with a single image being the standard.
If you just include a slideshow with random pictures rotating that have nothing to do with your site’s content, you are doing yourself a disservice with this slideshow.
It will become irrelevant.
Placement of Your Main Menu Navigation
In most websites, you will find the placement of your main menu navigation above the fold, at the very top right, underneath the mast head header.
You have other variations you can pursue, including:
- A navigation menu in your left sidebar,
- Vertical menu navigation in your right sidebar,
- Horizontal menu navigation at the top of your content area,
- And yes, if you want to go back to 1995, framed navigation still exists.
Nowadays, most navigation menus use JavaScript, although the particular implementation of JS will lead to bad SEO.
How so?
Because bad JS implementation of your website’s navigation leads to crawling inefficiencies, and prevents Google from crawling and rendering your site effectively.
Be careful about JS in your navigation.
Use pure HTML 5 and CSS 3 instead and let your menu degrade gracefully on older browsers and lower screen resolutions.
Main Value Proposition High up on the Page, above the Fold
This happens more often than not, with a website’s main value proposition (the problem it proposes to solve for all potential clients).
Also known as the website’s USP – unique sales proposition.
This is the message customers see when they first land on your site.
This should be short, sweet, catchy, and to the point, allowing your potential customers to assess exactly what your site will do for them right off the bat.
Most USPs are high up on the page for exactly this reason, but you may want to experiment with different placements to see exactly what benefits your audience the most.
Don’t be afraid to experiment.
A Search Bar Located in the Global Header
This is a frequent implementation on most content-based sites, where you will find a search bar located in the global header.
If your site is on the smaller side, you probably don’t need it.
That’s not to say it’s not valuable – it is.
But on some sites, you just don’t need it.
Have a small restaurant site that lists your local business’s information? You won’t need it.
Have a smaller real estate site with a couple of listings (less than 10)? You don’t need it.
Have a larger legal site with hundreds of pages? You’ll probably want it.
Have a huge healthcare site with an immense database of health terms, symptoms, drugs, and diseases? You will definitely want it.
Have a large e-commerce website with a huge product store? You will definitely want it.
It all depends on your site’s size, industry, and purpose.
Social Media Icons in Header and Footer
Most sites have these standard elements nowadays.
Social media is an important part of starting the conversation surrounding your content.
Having calls-to-action leading to your social media accounts is important, if it’s part of your marketing strategy.
Most sites have these nowadays.
So When Should You Buck the Trends?
When an industry is mostly average, and there aren’t really all that many eye-catching designs, you may have yourself a great opportunity to make a splash.
The only way to do this is to perform a thorough competitor analysis for all potential SEO and website attributes including design.
This part of the analysis can really only be judged by experience and looking at literally hundreds of website designs.
If you find that you are among a pack of averages, and not really anybody exceeds the norm, you may have an opportunity to really make a major dent in the market.
It really comes down to feelings and instinct based on data, and a combination of all three.
Only by thoroughly examining the market can you really consider making a major impact later.
With that said, let’s take a look at some of the hottest web design trends for 2022.
More About Web Design Trends for 2022
When you think of web design trends, it’s easy to get sidetracked and see something flashy that you want to implement.
A cool Flash widget. A cool HTML5 video. A cool JS widget. Or anything else.
But, it’s important to recognize that this could be an exercise in futility.
When not implemented correctly (taking into account all optimization issues that may affect the implementation, like page speed, image optimization, video optimization, and other issues – this can result in a haphazard implementation at best, and just plain bad implementation at its worst.
It’s important at this juncture to emphasize that one should not go completely crazy with web design trends.
Some of these web design implementations require immense amounts of JavaScript, and other code for them to work.
Others require specialized plugins and extensions for them to be seen, which is not great for cross compatibility requirements.
The best rule for SEO is to ensure a great balance of text, design, code, and technical SEO elements.
Then, you will truly be considered ahead of the pack.
Trend #1: Using Better Font Rendering Engines like Google Fonts
If you haven’t noticed on most websites, you tend to have font rendering engines deployed.
Rendering engines like Google Fonts, Font Awesome, and others allow you to achieve super-high quality font rendering — making sure that your fonts are crisp, clean, and clear on a variety of browsers, platforms, and devices.
The problem with Google fonts (or any other font rendering engine) is that they can lead to longer load times, because they impact your HTTP requests if you are not careful.
Instead, we recommend using system fonts in every situation, because this increases your cross platform compatibility.
Be conservative with your font rendering engines, and you’ll be good to go when it comes to SEO.
Trend #2: Digital Illustrations
Digital illustrations are powerful.
When created with a Wacom Intuos graphics tablet (or any other quality graphics tablet), they can be a great way to add a different dimension to your design.
One example that digital illustrations can become a great design element are pop-out, fade-in drawings of a company official or CEO in a bio page.
Or, creating digital illustrations of your products that do exactly that.
Not only are digital illustrations a big part of 2022 website designs, they are becoming a great way to target your users with more depth in your marketing.
When you use digital illustration effectively, with great effects, you rely on your design skills and talent to bring your website to life.
Here are some resources to help get you started on the road to digital illustration:
Digital Illustration: the Complete How-to Guide
https://www.wix.com/blog/design/2018/06/digital-illustration-complete-how-to-guide/
Trend #3: Bright, Vibrant Colors
In 2022, you can find bright colors everywhere you look online.
Image overlays, gradient-based backgrounds, and bright design elements are on almost every website you look at.
According to UXPlanet.org — “over 90% of our assessment of a product is made on color alone.”
Thus, it makes the use of color of utmost importance and one of the first things that should be carefully considered in design decisions, especially when it comes to website design.
Dull, more muted colors were in vogue a few years ago. They were considered more professional, higher end, and something you must include if you wanted to be considered among the higher end designers.
Nowadays, it’s bright, vibrant colors that can set you apart from the pack.
Also according to UXPlanet, “vibrant color stands out from the background and is pulsating with energy.”
They discuss that designers use more vibrant colors to make people focus their attention on important elements, and to make their design more memorable.
When it comes to marketing, how you incorporate design and make it more memorable will distinguish you from the competition.
When you have a sea of sites that are all about the same, this one design decision can propel your site into the stratosphere of public perception.
While these are a trend in site design, ultimately, the mood you are seeking to convey is what is going to dictate your design’s final color palette.
Are you looking to elicit professional credibility? Or would you prefer to “up your street cred” with a more grungy color palette?
Either way, spending time on this element is a decision that should never be taken lightly.
It is important to be strategic and thoughtful about what you are doing.
Now, before you go crazy…
Sites like Yvette’s Bridal Formal are not what you want to do and is not what I mean by “bright, vibrant colors” in web design.
I am quite sure they have since stopped the following atrocity by re-designing their site.
The direct link is not included here because it was flagged by Malwarebytes as having a Trojan when I last visited.
I’m well aware of the possibility of false positives, but rather than take the risk, the link is not included.
That being said, let’s take a look at some outstanding examples of award-winning designs with some great color schemes:
50 Gorgeous Color Schemes from Award-Winning Websites
https://visme.co/blog/website-color-schemes/
Website Color Schemes: The Palettes of 50 Visually Impactful Websites to Inspire You
https://www.canva.com/learn/website-color-schemes/
37 Beautiful Website Color Schemes & CSS Hex Codes [Updated]
https://hookagency.com/website-color-schemes/
Trend #4: Background and Entire Page Transitions
When you add page transition effects and loading animation effects, you can break up some of the monotony that causes someone to click away from your site.
This can, in theory, create better dwell time for people who just can’t stand the same old transition from page-to-page.
However, it’s important to, as I’ve mentioned previously, perform user case studies to understand exactly what your users are doing on your website.
When you do an A/B test, for example, you can see whether or not it would be valuable to add a page transition.
As speckyboy.com notes – “these effects are great for keeping a user’s interest as new content loads in, while also maintaining a minimal impact on performance.”
Smashing Magazine also notes that “transitions between pages can enhance the user experience by retaining (or even improving) the user’s context, maintaining their attention, and providing visual continuity and positive feedback. At the same time, page transitions can also be aesthetically pleasing and fun and can reinforce branding when done well.”
Here are some resources for finding page transition code snippets (and other information) that will help you implement page transitions on your website:
Improving User Flow through Page Transitions:
https://www.smashingmagazine.com/2016/07/improving-user-flow-through-page-transitions/
Page Transitions for Everyone:
https://css-tricks.com/page-transitions-for-everyone/
10 Exciting CSS and JavaScript Page Transition Effects
https://speckyboy.com/page-transition-effects/
20 CSS Page Transitions – A Collection of Hand-Picked Free HTML and CSS Page Transition Code Examples
https://freefrontend.com/css-page-transitions/
Trend #5: Micro-Interactions in On-Page Elements
If we want to make the discussion about user interaction and creativity, then micro-interactions is where it’s at.
According to uxdesign.cc, “Micro-interactions are events which have one main task – a single purpose – and they’re found all over your device and within apps. Their purpose is to delight the user; to create a moment that is engaging, welcoming, and, dare we say it – human.”
Their examples walk through what exactly constitutes a micro-interaction on a web page.
These have approximately four main steps:
- The trigger – this can be initiated by the system or by the user,
- Rules which dictate exactly what happens when the micro-interaction is triggered,
- Feedback – this lets people know exactly what’s happening.
- Anything a user sees, hears, or feels while a micro-interaction is happening is feedback.
- Loops and modes – Finally, this step determines the meta-rules of said micro-interaction. What happens in this interaction when certain conditions evolve?
Why are micro-interactions so important for a successful website?
It is these details which separates a drab website from an extraordinary one.
You know what I mean?
You’ve seen it before. One website looks OK. They have clickable buttons, a good -looking GUI, and average design elements.
But, when you go to another website, what do you see?
You see a great plethora of animations, things that happen when you click on a button.
Artistic, creative uses of color and pizzazz. And amazing use of on-page elements in a unique arrangement that causes you to go “WOW.”
This is why adding micro-interactions is a good idea in some industries.
But, remember our example earlier of Yvette’s Bridal Formal? Don’t go crazy. Otherwise, you might just end up like some of the folks in this article on bad examples of micro-interactions.
Here are other resources that will transform you from micro-interactions novice to pro, with a few rounds of practice:
Micro-Interactions (Small but Mighty)
https://www.theframeworks.com/blog/2018/02/15/microinteractions-small-but-mighty
What in the World Are Micro-Interactions?
https://designmodo.com/microinteractions/
Better UX through Micro-Interactions
https://www.toptal.com/designers/product-design/microinteractions-better-ux
Trend #6: Retro/Outlined Typography
Like color, typography can be a make-it-or-break-it deal in the design of your site.
Speckyboy.com states that “Typography is a viable tool for giving content visual weight, finishing off the entourage and making an impression.”
“In capable hands, this kind of typography not only can see through all the obstacles but can also make its own statement.”
They are absolutely correct. In an era where nearly each and every website has almost the same structure (a massive hero area with image, top horizontal navigation bar, and other elements that are, shall we say – significantly, and unappreciably, similar – it can be refreshing to have some sort of differentiation from the crowd.
A crowd-pleaser, if you will. Even if it’s just a tiny differentiation in a sea of similarity.
Here are some great examples of well-executed retro/outlined typography you can use for your own inspiration:
Exploring the Elegance of Line Typography in Web Design
https://speckyboy.com/line-typography-web-design/
Elegance of Line Typography in Web Design
http://www.instantshift.com/2019/03/27/line-typography-in-web-design/
Going Retro: How to Bring New Creative Life to Your Designs with Retro Design
https://www.canva.com/learn/retro/
Trend #7: Geometric and Organic Shapes
Have you ever noticed that websites – in their most simplistic form – are rectangular boxes? Or, at least, made up of rectangular boxes?
Of course, this is by design (to coin a phrase)…
But, that doesn’t mean that you can’t add a visual extravagance to your design elements by creating visually-pleasing shapes and objects.
In 2022, geometric and organic shapes are still all the rage in web design.
There is no shortage of website design examples that feature unorthodox geometric elements that add another dimension to a design that would have otherwise been “average.”
Edward Warner of hongkiat.com writes that: “Contemporary designers are taking a 45 degree turn when it comes to flat design, and improvising with unique angles and shapes. Instead of treating every image, slideshow, thumbnail, carousel, or module as a “box” or a rectangle, designers have tweaked the predictable form of design into eccentric, yet unique-looking shapes.”
It is a wonderful way to add some uniqueness to an already predictable medium, creating new and innovative ways to consume content that can put your website above your competition.
Assuming, of course, that not everyone in your industry is already doing something similar.
Let’s take a look at some amazing examples of this trend in action:
20 Websites with Unorthodox Geometry Elements for Your Inspiration
https://www.hongkiat.com/blog/geometry-elements-websites/
The Use of Shapes in Web Design with 30 Examples
https://onextrapixel.com/web-design-30-examples/
50 Awesome Websites with Extraordinary Geometry Elements
https://www.awwwards.com/50-awesome-websites-with-extraordinary-geometry-elements.html
Trend #8: Glitch Artwork Animations
The art of randomness.
Creating effective glitch art in web design is not super new. In fact, it is still a trend from a couple years ago.
The fact that it continues to remain a trend is a testament to how randomness in art can lead to an interested consumer later.
It’s important to refer to this article from kernelmag. While it is from 2015 – it explains glitch art in the following fashion, and this still holds true today. I love how they put it:
The term glitch itself, popularized by NASA engineers and astronauts. John Glenn explained it thusly:
“Literally, a glitch is a spike or change in voltage in an electrical current,” an occurrence with extreme, unpredictable, and potentially fatal results. In other words, it’s where the art happens.
Nick Briz, a Chicago-based New Media artist, educator, and organizer, expanded on Glenn’s definition of “glitch” in an email to the Kernel: “an unexpected moment in a system that calls attention to that system, and perhaps even leads us to notice aspects of that system that might otherwise go unnoticed.”
“Glitch art, then,” he wrote, “is anytime an artist intentionally leverages that moment, by either recontextualizing or provoking glitches.”
It draws back the curtain on our sleekest devices and virtual constructs to reveal raw pixels and code, a surreal landscape of unformed possibilities.
When done well, glitch artwork can help you to create attention-drawing elements that pull your consumer into the actions that you want them to focus on doing.
For example, glitch art may be applied to buttons on a contact form.
Or, it can be applied to phone numbers in the header that a user can click on.
It can also be applied to elements in the content, causing a user’s eye to be drawn more towards highlighted sections of text.
There is no shortage of ways that you can use glitch art to enhance a consumer’s actions and increase their user engagement, by drawing them deeper into your marketing message.
Let’s take a look at some amazing examples of glitch artwork:
Showcase of Beautiful Websites with Glitch Effects
https://www.hongkiat.com/blog/website-glitch-effects/
25 Stunning CSS Glitch Effect Examples
https://bashooka.com/inspiration/25-stunning-css-glitch-effect-examples/
CSS Glitch Effect
https://tympanus.net/codrops/2017/12/21/css-glitch-effect/
Glitch Websites
https://www.siteinspire.com/websites?categories=211
Trend #9: Minimalistic Design Elements
Minimalism has its place, even in web design.
The goal of minimalism in web design is to do more with less.
This article on medium.muz.li discusses how minimalism can help your design, and why you may want to utilize it.
“The main principles of minimalism in web design include:
- user-friendly interface;
- hidden navigation;
- no more than three colors at once;
- lots of empty space;
- experimentation with fonts;
- no excess detail: color transitions, shadows, textures;
- no extra buttons.
Minimalism in web design means simplifying the interface by removing unnecessary elements.
What, exactly, are the defining characteristics of minimalism in web design?
- Flat patterns and textures,
- Monochromatic or limited color palette,
- Features and on-page elements are greatly restricted,
- Negative space is maximized,
- Typography is used dramatically
All of these are defining characteristics of modern minimalistic web design.
The minimalist philosophy focuses on the “less is more” paradigm. By designing around content, rather than making content the focus of the design – this gives you better load times and better compatibility between screen sizes.
That being said, let’s examine some of the best examples of sites with minimalistic designs:
17 Websites That Use Minimalism Beautifully
https://www.creativebloq.com/web-design/25-websites-use-minimalism-91516685
Best Minimal Websites
https://www.awwwards.com/websites/minimal/
50 Beautiful Examples of Minimalism in Modern Web Design
https://speckyboy.com/modern-minimal-web-design/
50 Clean, Simple and Minimalist Website Designs
https://www.hongkiat.com/blog/clean-simple-minimalist-website-design/
Trend #10: Serifs on Screen
There is an old rule in web design.
This rule concerns serif fonts vs. sans-serif fonts.
Basically, it goes like this: serifs are intended to be used for print, and sans-serifs are for computer screens.
The general idea behind serifs is that they were designed to be decorative. This means they are great candidates for emphasized fonts.
Any part of a message that you would want to include in a hero image in the header, for example, would be perfect for this effect.
Any other text that you want to strategically accentuate with serifs fonts would probably lend themselves well to this effect.
It depends on the message you want to send with these types of fonts, and how you want to highlight it.
With that being said, let’s examine a few examples of great serif font design.
It is important to note here that there are amazing examples of both serifs and sans-serifs used in an emphasizing way.
Because of this, I’ve included examples that use both. All of these are excellent examples of typography use in web design, and how it can be used to better communicate your message.
17 Websites with Typography-Driven Design
https://www.hongkiat.com/blog/clean-simple-minimalist-website-design/
20 Websites with Beautiful Typography
https://www.webfx.com/blog/web-design/20-websites-with-beautiful-typography/
50 Web Designs with Beautiful Typography
https://line25.com/articles/50-web-designs-with-beautiful-creative-typography
Trend #11: Design Targeting Users’ Emotions
Emotionally driven web design has been on the rise in recent years,
We are driven by our emotions.
We choose certain products not because they may make sense.
On the contrary, we often choose products because of how they make us feel.
In a similar vein, we use websites because of how they make us feel.
- The status of certain users who are posting content,
- Colors being used as part of the design,
- User interface elements that elicit emotion,
- How it boosts brand recognition through feelings,
Ellie Martin of CX Insights at usabilla.com states:
“Every time a consumer decides to buy from a business, it ultimately stems from an emotional and a rational decision. This realization has led to a change in the way we think about web design too. If tapping into a customer’s emotion is so important to success, then shouldn’t emotion be a priority in the way web pages are designed?
Why design to maximize conversions when in fact designing to maximize emotions is more powerful in the long-term? The best of web design cannot compete if a more emotionally compelling option is out there. But what does the term emotion-driven web design even mean? What does that process look like for web designers, and how does it change the final business outcome?”
A more emotionally-compelling option indeed.
There are several attributes that make an emotional design successful.
Bogdan Sandu writes, over at onextrapixel.com writes:
“Let’s face it-design is the first thing users notice when they open a website. All of the following interaction will depend on that first impression.
This is exactly why designers try so hard to make outstanding designs that can get to their users’ hearts. Every website/logo design both printed and digital aims to touch a human emotion.
It is easy to neglect this fact-today’s interaction pays too much attention to conversion and SEO and not so much on design.
What is even worse, many choose to neglect the fact that conversion rates are absolutely dependent on quality design. How otherwise can you get to the next level with your customers? How can vendors make users like their products?”
Let’s take a look at some more examples of emotion-centric design:
5 Great Examples of Emotion in Design
https://bunnyfoot.com/2018/03/5-great-examples-emotion-design/
Trend #12: More Gradient-Based Design Elements
Gradient-based design, while it seems to have disappeared in recent years, is starting to make a comeback.
You don’t even have to add to your site’s page speed to create beautiful gradients!
In some cases, depending on your site’s current implementation, you may be able to use gradient colors rather than solid colors, if you so choose.
Every few years, however, it seems that gradients make a comeback in their use.
What tends to really change are the colors in gradients that are being used, paving the way for far more unique designs to showcase themselves in the future.
Sean McGowan of webdesignerdepot.com writes:
“In the digital design world, there’s maybe no better example of this than the rise and fall (and rise) of the gradient. Considered a lynchpin of interface design in the nineties (how many geocities sites had a gradient WordArt header?), the trend likely dates back even farther.
The gradient is a powerful design technique, and with great power comes great responsibility. When used improperly, gradients spell out a design disaster. They can muddle a layout, distract the user, and ruin an interface’s entire aesthetic.”
Let’s take a look at some great examples of gradients used in today’s designs:
Trendy Gradients in Web Design
https://www.awwwards.com/gradients-in-web-design-elements.html
20 Websites That Prove Gradients Are Making a Comeback
https://designmodo.com/websites-gradients/
Trend #13: Split Screen Designs
More and more in 2022, I expect to see growth in the area of split screen designs.
As designers move away from the traditional model of content layouts, they are looking for new ways to create content in order to drive user engagement.
Split screen designs are most effective when there is more than one piece of content on the page that the user needs to get to immediately.
Also, the split screen idea works well when applying it to content that requires a user to “make their own choice” to move forward.
One example of this is a content path.
Carrie Cousins of Design Shack writes the following about split screen web design:
“The great thing about split screen designs is that they work with the responsive format beautifully. You get double content on desktop and stacked content on mobile screens. Regardless of the device, the user doesn’t feel like he or she missed out on anything by changing device type.”
This makes it a great option for mobile devices.
Here are a few great examples of split screen designs:
20 Split Screen Website Designs for Your Inspiration
https://line25.com/inspiration/split-screen-website-designs
20 Examples of Vertical Split Screen Layout in Web Design
https://line25.com/inspiration/split-screen-website-designs
Beautifully Designed Examples of Asymmetrical Split Screens in Web Design
https://speckyboy.com/asymmetrical-split-screens-web-design/
10 Beautifully Designed Examples of Split Screen Layouts in Web Design
https://1stwebdesigner.com/split-screen-layouts-web-design/
Trend #14: Extreme Depth and Design Elements That Appear Almost “Real”
When it comes to web design, nothing conveys better technical ability than extreme depth and 3D elements on a website.
This is especially true for technical sites, like architecture, real estate, or even attorneys.
Adding design elements with extreme depth can really make your design “pop” (to use a phrase thousands of designers roll their eyes at on a frequent basis).
The only unfortunate thing about flat design (which is coming up shortly) is that it takes away everything that creates dimension and depth.
Flat design really just focuses on color and typography, ignoring everything else.
This can be a mistake, because creating designs with depth and dimension is another way to make your site unique and stand out from the crowd.
Flat doesn’t always mean that the design is user-friendly.
When you add depth and dimension, it can aid users towards making a decision and creating an effective hierarchy of information on-page.
Ashlee Sayles writes on artonicweb.com:
“With the focus being on users, web design has veered away from a strictly flat design approach. More and more, web designs have integrated elements that re-introduce a sense of depth and dimension.
Using 3-dimensional elements with flat design is referred to as “almost flat design.” This means that many of the elements of flat design are still present, but the design also incorporates elements of depth and dimension.”
How Can You Create Effective Depth and Dimension in Your Designs?
Creating isometric illustrations can add another level of dimension to your designs.
Using geometric shapes with a projection point that suggests a 3D object.
On the webflow.com blog, John Moore Williams writes:
“Just when you thought the future was flat, brands like Pitch and Stripe are throwing their brand weight behind a new-old-fashioned form of illustration: 3D.
Not content with the cut-out illustration style popularized by Slack, designers are looking to add depth and realism to graphics designed to blur the boundaries between the digital and physical worlds.
In a sense, this sharpens the contrast between digital products and human beings, even as it brings them together into imaginary spaces where people can grasp and manipulate digital elements (like the graphs and icons in Pitch’s hero section). You can’t help but think of the popular assertion that Facebook’s real disruption is the way it makes us, its users, into the product — and wonder if designers aren’t subconsciously pushing against this notion.”
Let’s take a look at some examples that exemplify these types of designs.
30 Awesome Web Designs That Create an Illusion of Depth
https://www.webfx.com/blog/web-design/30-awesome-web-designs-that-create-an-illusion-of-depth/
10 Inventive 3d Website Designs
https://dzone.com/articles/3d-unique-website-designs
Best Examples of Design with 3D
https://www.awwwards.com/websites/3d/
Note: While this example is a little dated, coming from 2011, this still applies today and gives you tips to create depth in web design. Use a modern spin on these examples to come up with something fresh and original!
Creating Depth in Web Design: 5 Tricks
https://onextrapixel.com/creating-depth-in-web-design-5-design-tricks/
Trend #15: Flat Design
Flat design is a new trend that has everyone’s attention. Especially in SEO.
The reason why is that flat design really lends itself well to very fast loading web pages, pages that create a seamless SEO experience from desktop to mobile.
With a focus on minimalism and not using so many graphics, these designs have the potential for being some of the fastest sites in your industry.
But, there is one caveat, however.
The caveat being how simple most flat web designs are.
They are in fact, a hallmark of simplicity.
This simplicity, when not planned well, does tend to leave a few issues where function is concerned.
Like Nick Babich of uxplanet.org writes:
“The simplicity of flat design is hard to achieve — everything should be designed with the same goal in mind to create a cohesive visual and functional design.”
Some of his suggestions for achieving simple, flat design include:
- Invisible design – make choices in your designs that won’t be noticed by your users,
- Use bright, vibrant colors,
- Focus on your design’s typography to communicate,
- Using a flat, 2.0-like design. This means that interaction should be intuitive for any users without needing anything extra to be explained.
You can find more of his great tips in this article:
https://uxplanet.org/best-practices-for-flat-design-6e7a6997805
Let’s examine some resources that might pique your curiosity, if you are into these types of designs:
Best Flat Design Websites
https://www.awwwards.com/websites/flat-design/
50 Perfect Examples of Flat Web Design for Inspiration
https://speckyboy.com/flat-web-design/
Best Flat Websites
https://www.webdesign-inspiration.com/web-designs/style/flat
40 Inspirational Websites with a Flat Design
https://1stwebdesigner.com/flat-web-design-inspiration/
Also, here are some resources that don’t really fit into any “gallery-typed” category:
The Ultimate Guide to Flat Website Design
https://www.hongkiat.com/blog/flat-design-resources/
A Complete Guide to Flat Designs in Website Designing
https://acodez.in/flat-website-designs/
Your Guide to Using Flat Design
https://www.invisionapp.com/inside-design/your-guide-to-using-flat-design/
Trend #16: Custom Typography
When it comes to website design, typography is an often-overlooked factor in creating an amazing user experience.
Most website design agencies don’t focus on creating a typography that meshes well with the graphics and design itself.
When in fact, typography should be top-of-focus on most websites.
Here are some examples of how typography is often poorly implemented on most sites.
I wanted to talk about the most common issues I have personally run into – not only on newly designed websites, but also old ones who are looking to me for guidance on how to improve their usability and SEO.
The Site Has Overlapping Headers and Paragraphs
This one is annoying. You know those text headings (H2s) that overlap with paragraphs? The cause of this is usually not enough padding or careless line spacing in the CSS.
It’s an easy fix.
Headings (h2s, Even H3s) Have So Much Spacing around Them It’s Ridiculous
If you want the best readability and user experience, go for typography in your content that is easy-to-read.
Easy-to-read includes paying attention to how the words are spaced relative to their size (text size).
One example of this issue not being dealt with on a site are headings that have so much spacing around them there are at least 3 lines of empty space on top and on the bottom of the heading.
Something like this is incredibly excessive and only leads to aggravation on the part of the reader.
All of these issues with typography can be traced back to poor execution of code by the web designer, who did not pay attention when they were making these choices.
The goal of fixing these issues is to create great formatting for a pleasant reading experience.
Like Jordan DeVos writes on toptal.com:
“Selecting a typeface is only the beginning. Decisions around line length and height can make or break a digital design. There are simple tips—never use all caps and keep the number of fonts to a minimum—but a lot of formatting decisions rely on trial and error.
The ideal text size relies on the chosen typeface because factors like x-height and counter openness will impact legibility. The text size will then determine the line height and length. An easy way to test the relationship between these decisions is to use tools like Grid Lover, which uses sliders to change the appearance of each measurement.”
Using these tools to see how your text performs on any resolution is a great way to assess exactly what your text is doing and when.
This is one aspect of typography that should not be overlooked.
Jordan also writes: Do NOT skimp on testing.
“A guide is useful when designing an onscreen experience, but there are too many factors to know when a design is successful without looking at it in situ. Test typography on screens and display settings that fall on the far edges of average—such as nearly-outdated smartphones, the largest hi-res monitors, and screens turned up blindingly bright. Designs that pass extreme conditions are ready for full user access.”
Jason Beever of howtogetonline.com writes the following tips about making sure your typography is up to par. I agree with every single one of them:
- “The most common font size for Body text is 16px—or, better yet, 1em (more on this later).
- Avoid center-aligning your text, as the uneven edges on both sides will make for an unappealing sight. Instead, set the left and right margin of the text’s container to auto to achieve a more desirable effect.
- Justified text works great for newspapers, not web pages. The nature of fluid layouts can create unpredictable gaps of spacing between words.
- Choose low-contrast fonts over high ones. Fonts like Didot work nicely for jumbo headlines or for large format printing, but its high contrast between thick and thin stroke lines make for difficult reading at small sizes on websites.
- Be mindful of legibility. In many sans-serif fonts the capital “I” and lowercase “l” letters look exactly the same, which can create unnecessary confusion.
- The optimal line-height of paragraph text is between 1.25–1.5× the font-size. Adjust accordingly based on your chosen typeface.
- The average font size for Heading text is somewhere around 36px—or, better still, around 2.25em (we’re going to get to this).
- Attention should always go to the Heading before the Body. Make sure your Heading text isn’t overpowered by too thick a font weight in the Body.
- Ensure that your headlines meet readers’ expectations. Considerably larger text with ample spacing between its child paragraph signifies a change in subject matter, whereas smaller headlines much closer to paragraphs imply that the content is related.
- In the event that your headline should wrap to the next line, be aware that the optimal line-height for Headings is less than what it is for Body text.”
Anything like Headers, Logos, Everything Else Is Fair Game
Custom typography can be great if you are a large brand and you want to set yourself apart with a unique brand identity.
It’s also great for other types of sites who want to create their own personality that’s not used in many other sites across the world wide web.
Aside from text, website elements like headers, logo, and seals are all fair game when it comes to creating your own custom fonts.
And, when you use a font rendering engine like Google Fonts or Font Awesome, you can increase the quality of your fonts tremendously.
You don’t have to rely on just the user’s computer to render the fonts.
Let’s take a look at sites that use amazing typography, along with some other great resources:
25 Examples of Beautiful Web Typography
https://www.webfx.com/blog/web-design/web-typography-examples/
7 Great Typography Examples in Web Design
https://blog.prototypr.io/7-great-typography-examples-in-web-design-20b99eecc35e
17 Websites with Typography-Driven Design
https://www.designbombs.com/websites-typography-driven-design/
Other resources:
A Reference Guide for Typography in Mobile Web Design
https://www.smashingmagazine.com/2018/06/reference-guide-typography-mobile-web-design/
A Basic Look at Typography in Web Design
https://www.webfx.com/blog/web-design/a-basic-look-at-typography-in-web-design/
17 Best Typography Design Websites & Tutorials to Create Striking
https://www.mockplus.com/blog/post/typography-design
Designing for Readability – A Guide to Web Typography (With Infographic)
https://www.toptal.com/designers/typography/web-typography-infographic
Web Design Galleries for Inspiration
It was challenging naming this section. Do we simply go for the gold and name it “top web design galleries for inspiration”?
There are many web design galleries out there.
Or, should we just name it web design galleries?
Well, the goal of this guide is to become one of the most comprehensive one-stop resources for website design on the web, so I figured I’d drop about 20 or 30 of them.
It’s not really a best-of compilation, but it is a good one. I hope that you will agree.
General Website Design Galleries
Template Monster
https://www.templatemonster.com/
Web Creme
Design Shack
https://designshack.net/gallery/
Favourite Website Awards
Best Website Gallery
CSS Heaven
The Awards of Design, Creativity, and Innovation on the Internet
Site Inspire
Unmatched Style
The Best Designs
https://www.thebestdesigns.com/
Design Bombs
Styleboost
One Page Love
Web Design Inspiration
https://www.webdesign-inspiration.com/
CSS Design Awards
https://www.cssdesignawards.com/
Land-Book – The Finest Hand-Picked Website Inspirations
The Design Inspiration
https://thedesigninspiration.com/category/websites/
Oriental Gallery – Oriental Design Inspiration, We Show Website Design You Have Never Seen
We Love WP – Best WordPress Site Design Inspiration
CSS Line – Showcase Gallery of Excellent CSS Sites
Divine CSS – CSS Web Gallery
CSS Crive
CSS Clip
Chapter 5: Putting it All Together
Step 11: Putting Everything Together
Here, we get to the fun stuff.
Now that we have our brains overflowing with inspiration, it’s time to get to the fun part – creating your site!! As we get into the finer details, we wanted to mention that there are some no-code and low code website builders you may want to try. One is duda.co. Another is Wix. Both have their own thing, so it’s recommended to check them both out before making a decision.
First, before getting into the WordPress end of things, we should take a look at creating a standard HTML5 and CSS3 website.
Creating Your Site from Scratch
Our first tutorial involves creating your site 100% from scratch. The only thing you will need for this tutorial is:
- A code editor (such as Notepad, Dreamweaver, or Notepad++)
- A domain name
- Your web host
This tutorial assumes that you are at least basically familiar with how to use an FTP program (such as FileZilla) to upload your files. It also assumes that you have your domain name live, working, and all setup.
It also assumes that you have your login information for your FTP access to your host also.
If you are unaware of how to use an FTP program, I suggest visiting the following video:
Here’s a good video tutorial on using Filezilla FTP if you aren’t familiar with how to use it: https://www.youtube.com/watch?v=XJEsFds7588
Foundations – Building the Page Skeleton
We need to start by building our page skeleton.
First, in our process we need to head over to the W3C. This is the foundation of all website HTML documents: the DOCTYPE.
W3C DOCTYPE declaration:
https://www.w3.org/QA/2002/04/valid-dtd-list.html
The way the DOCTYPE declaration works is that it will cause your document to conform to any of the W3C document type standards.
In other words, it is an instruction to your browser to tell it what version of HTML your document is in.
The DOCTYPE declares the following HTML standards as defined by the W3C:
- HTML5 and beyond
- HTML 4.01 strict, transitional, and frameset
- XHTML 1.0 strict, transitional, and frameset,
- XHTML 1.1
- XHTML Basic 1.1
It’s important to note at this juncture – if for any reason during your site build, you forget to create this DTD, it will cause your browser to default to what’s called quirks mode. What is quirks mode?
Modern web browsers like Google Chrome and Firefox have a few different modes. These include quirks mode, standards mode, and almost standards mode.
Per Mozilla’s web developer guide:
“There are now three modes used by the layout engines in web browsers: quirks mode, almost standards mode, and full standards mode. In quirks mode, layout emulates nonstandard behavior in Navigator 4 and Internet Explorer 5. This is essential in order to support websites that were built before the widespread adoption of web standards. In full standards mode, the behavior is (hopefully) the behavior described by the HTML and CSS specifications. In almost standards mode, there are only a very small number of quirks implemented.”
This is why it’s important to get things syntactically correct!
You don’t want to accidentally trigger another mode by not including the required DOCTYPE! In your code.
Different modes can cause your site to behave differently, regardless of how it is coded.
I want to mention here – my primary mode of development nowadays includes themes, pre-made templates, and other goodies that are pre-made. But, I know exactly what everything does at every moment in time.
Because I’ve already spent the greater part of 10-15 years learning and tweaking by writing my own code.
I highly suggest, if you are new at this, to work on writing your own code when you develop a site.
This will get you used to development best practices and how to use actual code to create your site.
For the purposes of our build, we are going to use HTML 5 and CSS 3.
First, bring up Dreamweaver.
You will see the following. Make sure your Doctype is set to HTML in the left column (step 1), HTML 5 in Doc type (Step 2), and then click on create (step 3):
This is why we are using Dreamweaver. You don’t HAVE to remember to go to the W3C every time when you build a page, and it will include this DOCTYPE! declaration automatically.
When your document comes up, you should be seeing the following code:
Next, let’s add a couple of lines of code to our document.
These lines of code are essential elements of SEO-friendly websites–the meta description and meta keywords.
Now, it’s important to note here – Google has deprecated the use of meta keywords for ranking, so you won’t find them on most any website nowadays.
It’s not a bad idea to include them anyway, however, IF you want to (although I don’t see why you would for ranking reasons…).
I can see in cases of reporting where you may want to directly attribute pages to tracked organic keywords. By adding meta keywords in this fashion, you can crawl them with Screaming Frog and make End-Of-Month reporting much easier by directly attributing tracked meta keywords to said page.
Just don’t spend a ton of time on them.
Yoast discusses this in even further detail here: https://yoast.com/meta-keywords/.
Next, let’s save our document as index.html.
Index.html is the default page extension that web servers use, and should be the only one you need for the moment.
Next, we’re going to create our CSS document. Let’s head over here to get our basic responsive design boilerplate CSS template: http://getskeleton.com/
Now, it’s important to note here – for more complex sites built on larger frameworks, this responsive template may not work well.
But, it’s great for our purposes, and to get you familiar with the type of code that’s needed for building responsive websites from scratch.
Once you have it downloaded and extracted, launch the skeleton.css file in Dreamweaver.
Note: You must take the normalize.css and skeleton.css files and move them to your main site directory.
In the main skeleton CSS directory, we will find index.html.
Open it.
You should see the following code:
What we want to do here is take the existing code and copy/paste it over to our main index page.
We need the style, mobile-specific, and primary page layout sections for our purposes.
Feel free to grab the FONT-specific line also.
Your final index.html file should look like the following:
Please note that I removed the self-closing forward slash “/” from the end of the meta tags. These are deprecated coding habits that I carried over from my days in XHTML 1.0.
Sometimes I need to remind myself to remove those because they are not entirely necessary in HTML 5.
What’s the big idea with Skeleton?
Well, we are using this to create a basic mobile framework.
Mobile CSS code – in order to create a responsive design – uses what are called media queries – to code the same layout for different platforms and display resolutions.
So, when you expand or shrink your site design, or view it on smaller displays, it will display properly and not as if it were on a bigger display.
This is the whole principle behind responsive website design.
Next, we are going to save our site as index.html in our new website directory.
Let’s look at the nuts and bolts of this code on the home page, so you can understand what each line means.
This is exactly what would happen if you were to code it on your own, line-by-line, rather than copying and pasting chunks of code.
<!doctype html> – This is the document type declaration that must be included at the beginning of every document.
<html> – Declares that it is an HTML document.
<head> – The beginning head tag, declaring the header area. This is where we put everything that doesn’t typically render on-page like various scripts, calls to external code documents, and any other code that we need. Meta tags are not typically considered on-page rendered elements, even though they do technically render elsewhere (in the top title bar of a web browser along with in Google’s search results).
<meta charset=”utf-8”> – This defines the character encoding of the document. If you don’t have a character encoding element, your document will show up in the W3C validator as invalid anyway. UTF-8 is the standard text encoding for the web, although there are other standards you may use depending on the specifications of your developer.
<title>This is our first website | FirstWebsite.com</title> – This code declares the title of the page. This is displayed on Google at the top of your listing.
<meta name=”viewport” content=”width=device-width, initial-scale=1″> – This declares how your code is going to scale on a mobile device.
Why do we need the viewport meta tag?
From Mozilla’s developer guide:
“The browser’s viewport is the area of the window in which web content can be seen. This is often not the same size as the rendered page, in which case the browser provides scrollbars for the user to scroll around and access all the content.
Narrow screen devices (e.g. mobiles) render pages in a virtual window or viewport, which is usually wider than the screen, and then shrink the rendered result down so it can all be seen at once. Users can then pan and zoom to see different areas of the page. For example, if a mobile screen has a width of 640px, pages might be rendered with a virtual viewport of 980px, and then it will be shrunk down to fit into the 640px space.
This is done because many pages are not mobile optimized, and break (or at least look bad) when rendered at a small viewport width. This virtual viewport is a way to make non-mobile-optimized sites in general look better on narrow screen devices.”
<meta name=”description” content=””> – This line declares your meta description. This is the description that shows up underneath your link in Google’s search results.
<meta name=”keywords” content=””> – This code declares your meta keywords. While not displayed or rendered anywhere (internally or externally), and should not have any serious amounts of time spent on it, you could still add it if you choose to do so.
<link rel=”stylesheet” href=”normalize.css”> – This line calls the normalize.css file.
Here is some background on normalize.css, and the differences between that and reset.css, from author necolas on Stack Overflow: https://stackoverflow.com/questions/6887336/what-is-the-difference-between-normalize-css-and-reset-css“Normalize.css preserves useful defaults rather than “unstyling” everything. For example, elements like sup or sub “just work” after including normalize.css (and are actually made more robust) whereas they are visually indistinguishable from normal text after including reset.css. So, normalize.css does not impose a visual starting point (homogeny) upon you. This may not be to everyone’s taste. The best thing to do is experiment with both and see which gels with your preferences.
Normalize.css corrects some common bugs that are out of scope for reset.css. It has a wider scope than reset.css, and also provides bug fixes for common problems like: display settings for HTML5 elements, the lack of font inheritance by form elements, correcting font-size rendering for pre, SVG overflow in IE9, and the button styling bug in iOS.
Normalize.css doesn’t clutter your dev tools. A common irritation when using reset.css is the large inheritance chain that is displayed in browser CSS debugging tools. This is not such an issue with normalize.css because of the targeted stylings.
Normalize.css is more modular. The project is broken down into relatively independent sections, making it easy for you to potentially remove sections (like the form normalizations) if you know they will never be needed by your website.
Normalize.css has better documentation. The normalize.css code is documented inline as well as more comprehensively in the GitHub Wiki. This means you can find out what each line of code is doing, why it was included, what the differences are between browsers, and more easily run your own tests. The project aims to help educate people on how browsers render elements by default, and make it easier for them to be involved in submitting improvements.”
<link href=”//fonts.googleapis.com/css?family=Raleway:400,300,600″ rel=”stylesheet” type=”text/css”> – This line declares that your document is using the Google Font Raleway.
</head> – This is the closing head tag.
<body> – This line opens up the body section of your document. Everything that you want to include in the visual rendering of your page should go here. The navigation bar, the breadcrumb, graphics, text, all other content, your footer, everything.
<div class=”container”> – This container defines the content area of your page. In the CSS, the code looks like this:
.container {
position: relative;
width: 100%;
max-width: 960px;
margin: 0 auto;
padding: 0 20px;
box-sizing: border-box; }
.column,
.columns {
width: 100%;
float: left;
box-sizing: border-box; }
<div align=”center” class=”row”> – This line defines the top row with a centered, responsive HERO image.
</div> – This is the closing tag for the above div section.
<div class=”row”> – This line of code declares your row with the main single column.
<div class=”one-half column” style=”margin-top: 25%”> – This line of code declares the main content column.
</div> – This one closes your content column.
</div> – This one closes your row containing the content column.
</div> – And this one closes your container class.
</body> – This tag closes out your body.
</html> – And this one finally closes out your entire document.
That’s pretty much it for the entire home page. Now, where is all the style information?
It is embedded in the linked CSS stylesheet.
So What’s the Deal with Inline CSS Styles?
Your HTML should never include any styling code, because this goes against the very principle of HTML – hyper-text markup language.
When you include style code by way of the style=” “ HTML tag attribute (called inline styles), this causes several issues.
One, when you constantly add more inline styles, you run the risk of increasing your site’s code bloat.
Two, this adds more lines of code that can introduce errors in different browsers when not managed correctly.
This is why it is important to avoid inline styles altogether, and just add new style rules for these tags in styles.css.
Now that we have the basics of our site setup, we can preview it in the browser window!!
Are we ready? Just hit F12 while in Dreamweaver to bring up your site in live preview.
Wait a minute!! Where is all the content, graphics, and everything else?
Well, that’s what I am planning on showing you how to do in the next section.
Creating Graphics for the Website
Ok, we have our basic framework. But, it is a drab reminder of what just text on a white background would look like.
We can create brand-new graphics separately, or before we create the design (which is usually how it’s done).
You create the mockup in Photoshop, and then you can slice it and code it in Dreamweaver using the structure of the framework.
We know that the final version of our framework is going to contain the following structure:
- Header (with logo/contact information)
- HERO Image
- A horizontal navigation menu
- Two-column content
- Footer
First, bring up Adobe Photoshop (I bet you didn’t know I was going to say that, did ya?).
Next, we are going to create a new document that is 1366 x 2500 (1366 being the standard desktop width nowadays, and 2500 being enough vertical height to include all our text and layout stuff).
Shaun Anderson of hobo-web.co.uk writes: https://www.hobo-web.co.uk/best-screen-size/
“Based on the Worldwide Screen Resolution Stats (Nov 2016 – Nov 2017) chart above and the charts below, these are the resolutions you need to be aware of in 2019.
- 360×640 – 21.54%
- 1366×768 – 12.85%
- 1920×1080 – 7.76%
- 375×667 – 4.94%
- 1440×900 – 3.32%
- 1280×800 – 2.67%
These resolutions take into consideration desktop, mobile and tablet resolutions. I’ve clarified this data (below) to focus on Worldwide, US and UK web traffic.”
Your New Document specifications should look like this:
Next, let’s select our color palette. We can use some of the rules we discussed earlier in the design trends section.
A great tool to use for selecting your own color palette is https://coolors.co. Just press the spacebar in that web application, and you can randomly select your own palette.
You can also adjust each color within the palette as needed, and compare them next to each other.
Pretty cool huh?
This is the mockup we have ended up with in Photoshop after some editing.
Don’t worry – I’m about to go through all the steps that we can take to create our own mockup in a similar fashion.
Stay tuned!!
This is your entirely custom, basic lead gen site for a real estate business:
The first step in the slicing of the mockup is to set up guides in terms of how you prefer to slice and structure your page.
As you set up these guides, keep in mind how your final design is going to look, as well asthe context of how these graphics will fit into your finished design.
You will find that you need to toggle the visibility of layers, or make other adjustments as you go along.
It’s a challenging process that doesn’t let you just “create your own process” and stick with it.
You must adapt as you go along.
Let’s examine some of today’s best practices for slicing PSDs and converting them into fully functional HTML pages.
Chapter 6: Creating Graphics
Best Practices for Slicing Mockups in Adobe Photoshop
Before we even start slicing, it’s important to discuss the best practices for slicing mockups in Adobe Photoshop.
What is slicing?
This is the practice of cropping your PSD mockup into a final, functional, HTML website.
There are several great useful methods behind the madness here.
First, you can use the automatic slice-to-guides feature in Photoshop.
This is a tremendous way to build design comps quickly, and you can add great efficiency to your work as a result.
You can also slice your guides up manually.
I recommend this approach because although slicing up your guides manually takes a bit more time, it’s more accurate and it gives you more control.
Do: Take Your Slices and Dump Them All into Their Own Folder
Trust me, you don’t want to go hunting for them after the fact when you don’t remember where you saved them.
That doesn’t help anybody.
Instead, make sure that you save your slices into their own folder for easy access and referencing within your code.
Do: Keep Constant Visual Watch in Terms of How Your Slices Will Fit Into Your Final Website Layout
You can make adjustments along the way, sure.
You can make some adjustments after the fact.
But, if you make a major change to how the layout functions between when the slices begin and when you put together the final HTML page, you may have problems.
These problems will cause your layout to be glitchy and it won’t feel right.
Instead of creating these problems at the outset, why not simply create your slices from the beginning so they have no further issues?
Do: Make Adjustments to Account For Image Optimization Factors That Will Decrease Page Speed
As you are optimizing, you may find one format that is significantly less on load time than another format.
That’s why it’s critical to test your settings (i.e. change your image settings from one to the other) to find what works best for that image.
It only takes a second, and you will be rewarded with faster page speeds at the end of your site build.
Do: Ensure That Layer Visibility Is Toggled as Needed
When slicing your website mockup, it will be necessary to toggle the visibility of your layers on and off.
This is especially true for text layers and other layers where you plan on using the background without the text, or other objects on top.
Strategically making sure that your layers are hidden and shown as needed will allow you to see exactly how each slice will be affected in your design.
Do: Use as Few Images as Possible for Backgrounds, Graphics, and So On
Not every slice has to be a graphic.
In fact, some slices (and in some designs, the majority) will end up being structurally-based in nature.
This means that you will simply be using the guides to create slices that will serve a structural purpose.
This purpose will manifest itself within your coding as you move forward with your design.
Do: Use the Auto Slice Tool When Possible
I am not (and never have been) a big advocate of using the auto slice tool with your guides.
For one thing, if your guides are not properly created in the beginning, all hell will break loose and you won’t be able to differentiate between which slices are what.
So, always keep organization and manual work above all else.
Do: Organize Your PSD from Top to Bottom before Beginning Any Slicing Project
This one step at the beginning of your project will help you avoid major headaches later.
It will also add to the efficiency, increase the quality of your project at the end, and will help you build from the bottom up more easily.
And this is the important part.
Developers will tend to prefer building from the bottom up, rather than from the top down.
This organizational planning will help you (or any developer, really) have an easier time creating your slices.
Do: Always Keep a Record of Your Typography Details
If you don’t plan on creating slices from layers, you will be creating slices from a flattened version of your design.
This will be very confusing, because rasterizing the typefaces in your design means that you have no idea which layer has what typeface.
Either rename the layer to the name of the typeface that you were using, or keep detailed records about the typefaces you actually used.
You won’t realize it while you’re creating your first or second mockups, until you reach the end of the project and you start coding.
Then you will realize: oh crap I have no idea which font I used.
Don’t be that person!!
Don’t: Use Rasterized Layers for Any of the Content
If you use rasterized layers for the content, good luck finding the typeface that was used for the font, because all that information goes away after rasterization.
It is best to keep everything in its standard layer format before rasterizing, and then you can rasterize to your heart’s content.
Doing this just makes everything much harder at the end, where you then try to figure out exactly which font you used in the beginning.
It can be a huge nightmare to untangle when you reach the final production stage of your design.
Don’t: Use Any Layer Blending Modes Such as Multiply
This makes it extremely difficult to cut out the transparent element.
And, when you transfer it over to your final design, it will look like absolute crap.
Just make sure that you don’t use any fancy layer blending that prevents effective cutting out of the images.
This will just make things harder when you get to the final production stage.
Don’t: Use Random Margins, Paddings, for Different Elements Everywhere You Can Imagine
Your design should be consistent from page to page within the mockup.
If you want to make things easier for other designers and developers on your team, specify the exact margins and paddings in the columns and other elements within your designer notes.
Similar elements should have similar margins and paddings.
Randomness is fine in art galleries, but not so when it comes to web design.
Consistency is key.
Your team, and your viewers, will love you all the more for it.
Don’t: Be Careless with Your Guides and Use Too Many
This one is critical.
If you don’t plan out your slices properly, you run the risk of generating very careless, and sloppy slices.
Don’t be “that designer” who has no clue what they are doing when they embark on a layout slicing project.
Do, however, plan out your slices beforehand.
I like using my brain to really get into this and make adjustments as I am moving forward with a slicing project.
When you make live adjustments, you can see exactly how that slice will be affected once you understand where it is going.
Don’t: Flatten Your Design If You Are Planning on Using Many Transparent Images
This part here is very important.
If you flatten your design when you begin slicing, you will lose any transparency that you would have otherwise had.
This is why building your design from slices, before flattening is applied, is so important.
However, if your design has very few transparent images, you do NOT have to worry about flattening.
Don’t even worry about flattening your mockup if your design contains very few transparent images.
But, DO keep this in mind if you plan on having transparency be a large part of your finished product.
This one planning decision in the beginning can make or break your final design later.
Chapter 7: Creating Our Mockup
Proceeding with Our Mockup
Let’s proceed with slicing our website mockup.
First, the header.
Then we can take a look at the settings for the saved image:
Here, we are choosing PNG-8. If you choose JPG, you will notice that it is double the file size of the PNG-8 setting that we chose.
You don’t really have to change all that much else here. Just save!
By the way…
You will notice that we have some issues with going back to the full mockup after saving. This is easy to do.
Depending on your version of Photoshop (CC2019 or earlier), you can use either ctrl + alt + z to step backward to your full mockup. Or, you can use ctrl + z in the newer versions.
Yes, I know. They changed the keyboard shortcuts for 2019. And I have to learn them all over again. Bah!
Ok, next part…
Navigation bar:
This part is important. Remember how I said it is important to always think about your slices and adjust as you move forward?
This is one example of that methodology in action.
Don’t just think about saving the image and being done with it.
Think about how this will fit into the HTML space on the final site. We’re not creating an entirely graphically-based navigation bar in this instance here.
No, we are creating a placeholder that will then be coded in the same color HEX code within the CSS.
Don’t worry – I’ll show you how to put that together in a few minutes!
Now, we’ll just go ahead and save this, and move on to our HERO image.
You’ll notice if you save it as a PNG the file size is nearly 200K.
But, if you save it as a JPG image, you will see that the image size is less than 90K.
This is over a 50% savings in file size.
This case is a demonstration of why it’s important to focus on optimization steps while building the site.
By doing so, you can shave off a large amount of load time as a result, right from the outset.
Pretty cool, huh?
Next, we’re going to slice the video thumbnails.
Just select, image > crop, and create transparency.
Here’s how:
We want to toggle the visibility so the background of the image is not entirely visible.
First, we can select and crop the image to just the video.
Then, we will toggle the visibility so that it is off for all background layers, like this:
Next, select all layers except for these three — toggle the visibility of these background elements off first.
Next, highlight all layers except these three, and right click, then select “merge layers” as shown below:
Your image will still look like this with the tiled background – this still indicates transparency.
Here, we can now export this and set the transparency.
Let’s do the usual ctrl + alt + shift + S to bring up the export dialog.
GIF – we can set it as a transparent GIF if the GIF won’t make the quality look like crap.
JPG – this is not a transparent image format and won’t work for our purposes.
PNG-8 or PNG-24 will work because they are both transparent image formats.
Next, make sure that transparency is checked in the below dialog.
Once you save this, guess what?
We do not have to do this again (for now).
That’s the beauty of call-to-action elements that are exactly the same – you should never have to use the same element more than once.
This is another point of thinking in our “always be SEOing” paradigm.
Ok, at this point in the discussion let’s take a brief break and talk about layers.
I’m not going to overly-complicate the deal for you, but layers are the basic core of how Photoshop works.
If you have no idea what Photoshop layers are, we can think of them as individual, flat puzzle pieces.
But, unlike a traditional puzzle, they are vertically stacked.
Some have the ability to be solid, and others have the ability to be transparent.
Others have the ability to be visible, and you can toggle still others to not be visible.
If that wasn’t easy enough, you also have the ability to make changes to these layers.
Anything and everything from blending modes to layer effects, you have control over each individual layer.
This is what makes Photoshop a very powerful program for manipulating images and creating graphics – virtually anything you can think of.
These layers are literally a fundamental element for most Photoshop projects.
By following just a few basic rules, you can avoid the confusion associated with layers.
First, Use Layer Names to Make Finding Your Layers Much Easier
This may not be as much of a big deal when you are working alone (you may think).
But it can be.
If you don’t name your layers, you won’t understand where your layers are, what they are doing, and how you can make them work in the finished product.
It just becomes one giant, confusing mess.
It’s quite easy. Just double click on the layer name itself to change it.
If you don’t perform this crucial step in your layers management, it can get out of control very quickly as you add more layers to your design.
Don’t Forget That You Can Group Layers to Keep Them Organized
Say you created a logo graphic that was part of a website mockup.
And in this website mockup, you created a logo graphic with about 10 different layers that you didn’t want to lose to random layering.
Just create a main logo layer, and group the 10 other layers along with it.
This will create a group of layers that all correspond to one object, and you don’t have to mess with selecting all of these layers once they have been grouped.
This one tip will instantly help you achieve better layer management.
Don’t Forget to Clean Up Your Work When You’re Done
This means doing things like deleting all layers that have no bearing on the final product, and closing all layer groups.
If you are part of a team, nothing is more annoying for other team members than someone else who doesn’t know how to manage their own work.
Managing clean up and making sure that others can follow along after you is important. Don’t just leave these random layers around for someone to guess at what’s happening.
Here’s a Cool Tip: Make Layers Work Faster
Did you know that you don’t have to click on every single layer or select them all (like I showed you earlier in this tutorial) to toggle their visibility?
Nope.
First, click on the layer you want to keep visible.
Just hold down alt (Windows) or option (Mac) and click on the eye to make every single layer disappear but the one that is selected.
Another Cool Pro Tip: Create a Layer with One Click
Yes, that’s possible.
At the bottom of the layers palette, you can click on the ‘create a new layer’ icon to create a new layer instantly.
No more clicking more than once to do this.
Layers Are an Important Skill for Anyone Looking to Master Photoshop Web Graphics
That’s why we’re discussing this.
No, I’m not looking to turn you into a Photoshop expert in one day.
Quite the contrary. It takes years of practice.
But, you can learn some great techniques that will help you on your website creation endeavors just by checking out a few tutorial sites built for it.
Let’s take a look at some resources that will help you with even more Photoshop web graphics work:
Photoshop for Web Design: 20 Pro Tips
https://www.creativebloq.com/web-design/photoshop-web-design-tips-111140
61 Top-Class Photoshop Tutorials to Try
https://www.creativebloq.com/graphic-design-tips/photoshop-tutorials-1232677
28 Photoshop Tutorials for Creating a Logo
https://colorlib.com/wp/photoshop-logo-tutorials/
89 Best Photoshop Tutorials
https://www.digitalartsonline.co.uk/features/illustration/best-photoshop-tutorials/
Other resources:
50 Essential Free Resources for Your Graphic Design Projects in 2019
Ok, moving on…
We are not really slicing much other than the video image in the content area.
Why?
Because we can define the other content areas in our CSS.
Our next slicing project is going to be the newsletter signup box.
First, we’re going to crop and slice the newsletter email signup form.
Insert screenshot here
Next, we are going to slice the subscribe button.
There shouldn’t be any transparency selections here.
Next, we can slice the social media icons. Here, we’ll create the transparency.
These icons will all be transparent. For every icon, you will repeat the transparency process and save as PNG-8.
We do not need to slice anything else at this time.
Now, we can start coding. I love Microsoft’s Visual Studio Code.
As a code editor, it is sleek, powerful, and I’ve found it better than Dreamweaver in every way.
Anyway, let’s get started coding!
Let’s examine the rest of these sections section-by-section, and I will show you how to code them.
Chapter 8: Coding Best Practices
First of all, we need to consider some coding best practices.
Whenever you embark on a coding project, it’s important to keep in mind best practices so that you don’t create bad code.
Best practices exist to avoid this situation.
Bad code can lead to drastic declines in website quality overall, leading to glitches in the display of graphics, and other major issues.
When you choose a coding standard and stick with it, you refine your processes over time.
This leads to issue-free web design with flawless execution, every time.
Practice makes perfect!
Don’t Use Inline Styles and Javascript
I may have mentioned this before, but it is important enough to mention again. Don’t use inline styles and JavaScript.
For three reasons:
- They are not conducive to cross-browser and cross-platform compatibility;
- They add code bloat to every page when they are not managed effectively;
- They can also cause glitches when an inline style is taking over for a style that doesn’t exist in the original stylesheet.
Unfortunately, realistically, there are cases where these things are unavoidable due to access reasons.
In these cases, manage your CSS styles as much as you can. And don’t add them if you can help it.
Nobody ever made a design better by adding styles that caused glitches on the other side.
Don’t Load an Image Larger than 2000px on Any Website
Here’s why: Only the higher resolution-based monitors will be able to display it properly.
Not only that, these images are unconscionably large, also impacting page speed.
Always use the image optimization process we have discussed in an earlier section to make sure that your images are sized properly.
For That Matter, Don’t Load an Image Larger than 2mb on Any Website
See the previous point.
Server Technology Should Always Be Kept Up-To-Date
Plugins change.
Code practices change.
Coding platforms change (PHP upgrades regularly).
CMSes change – WordPress updates regularly.
Languages also change.
This means that eventually, something is going to break the site.
Whether it’s a rogue plugin, a new platform upgrade that causes plugins not to play nice with each other, or even a simple plugin update can cause major issues.
This is why you must make sure that your server technology is up-to-date and that compatibility does not slide.
It can be a juggling act just making sure that your server technology does not break your site at the next plugin update, but it can be done.
Hire a Programmer to Build Your Own Plugin, Rather than Installing 10 Just to Use 1% Of What These 10 Do
Your server bottleneck will thank you.
Have you ever installed 10 plugins just to take advantage of a single feature that one plugin had?
This is the exact opposite of what you should do.
There is no shortage of resources for programmers for hire online. Simply hire a quality programmer who can program one plugin to do exactly what you want it to do.
Your server bottlenecks will thank you for not plugging them up with nonsense.
CSS’s Display:None Should Never Be Your First Solution to Doing Something. The Same Goes for Using !important
Display:none is not cross-browser friendly.
Also, if you don’t know what you are doing with !important, you can cause issues and conflicts with any other styles that were part of your overall design.
Here are five situations where display:none can cause major issues:
If you want to hide an iframe.
Look, I get it. Iframes are ugly. They are uninspired pieces of crap, and they are not fully cross-browser friendly.
Neither is display:none. Using display:none to get rid of an element on a design, so you can use another element, is simply asking for trouble from the browser compatibility point of view.
But guess what?
This solution works great in Chrome, Firefox, and Edge. In Safari, the DIV would never appear when display was set back to block.
Ouch.
Zach C reports that “Safari won’t add iFrames with a display:none property to the DOM on the initial page load. This means that if you ever decide to reveal your element later, it won’t be available in the DOM.”
Talk about alienating all of your users who are using Safari!
The same situation applies when you use !important.
Here’s an example. You may have run into a situation once or twice where your styles are not doing exactly what you want them to.
Enter the !important rule. You may have also heard that you can use this rule to force your CSS to do what you want it to do.
This is rarely a good idea, so let’s explore why to avoid this.
Nick Rollins of uxengineer.com explains this using the following example:
“When you’re just starting with CSS, the !important tag seems like a secret weapon that you can pull out when styles aren’t working as expected. This situation occurs when you’re trying to override styles that are declared somewhere else in your CSS.”
For example, let’s imagine you want to italicize everything that appears inside of <blockquote> elements.
blockquote * {
font-style: italic;
}
And for some reason it’s not working as you would expect, so you add !important and everything is fine! It’s like magic!
blockquote * {
font-style: italic!important;
}
What you’re actually doing in this case is increasing the specificity of everything inside blockquotes to an unreasonably high level.
By using !important, you’re essentially telling the browser that, under no circumstances should elements inside of blockquotes ever be anything other than italic.”
If you see where we’re going with this, congratulations. You must be a developer already. But, just in case, I’m going to spell it out.
If you use !important once, you will end up using it again.
And again.
And again.
What happens when you use !important to force an override of all your styles in the stylesheet?
Another developer comes along.
They can’t make sense of your styles.
Or, you use another type of code that you expect to work in your document.
And, you can’t get it to work because all of your other !important declarations are overriding your new CSS code declarations.
Not even your new class or ID.
This can be frustrating, especially if you’re newer to CSS and you are not sure how to solve these types of problems.
Luckily, there is a solution – don’t do it in the first place.
Whenever you use a specific CSS selector or code snippet, make sure that you utilize it for exactly what it is to be used for.
Don’t just use random code to force an implementation of code that you don’t understand. It will come up later by someone else, only to be overriding everything they want to implement.
This is a very important practice to learn. But, it can also be one of the hardest!
Use Fluid Images
Using fluid images is important in any responsive development endeavor.
Fluid, or responsive, images are used in responsive designs. These images resize automatically depending on the screen resolution of the device.
Static images are fixed width and display only at that width/height for all resolutions.
One solution, posted on Mozilla’s developer guide, suggests using a CSS implementation of responsive images to create this effect.
There are issues, but there are issues with most CSS implementations of this effect on mobile devices – the header hero image tends to be much smaller and barely visible.
One solution is to crop the image in such a way that the center of the image shows up in the responsiveness side.
Here is how Mozilla does this effect: https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Responsive_images
This is considered a best coding practice nowadays – when it comes to responsive designs.
Do Make Clickable Elements Large Enough for Mobile
If someone has ever told you that size does not matter, well – they are in for a surprise. And they have never worked on creating mobile buttons!
Nothing is more make-it or break-it in terms of user interaction than button designs on mobile devices.
If a user is unable to tell what is and what is not a clickable graphic, there is even less of a chance that they will interact with it.
What should you design for, and what targets should you aim for when creating these types of elements?
If ‘tap’ is the primary means of navigation on your mobile design, Android’s Material Design directives recommend that your target should be 48 x 48dp, with at least 8dp (or more between the objects).
The spacing is meant to ensure a balanced usability factor, along with the density of information.
Shape and padding are also important.
When it comes to shape, it really does depend on what you’re designing for.
But, as a general rule – use color along with contrast to guide mobile users towards taking a meaningful action that will help them accomplish their goals.
Don’t JUST stick a button into the design just to make a button. Make sure it has a specific purpose and direction towards helping that user accomplish their goal – whether it’s buying your product or service, or moving forward with a consultation.
Do Stick to Design Standards
While you want your design to be outstanding and awesome, you don’t want to sacrifice usability for flashy, unpredictable design.
Yes, I know – I’ve discussed different types of designs throughout this guide.
But, the one thing that’s important is keeping in mind design standards throughout your industry.
If you want to be creative, that’s great – you can be creative all you want while also following general positions of design elements on your site.
And that’s important – following the usual position of design elements throughout your industry.
People are creatures of habit – don’t make things more difficult for them by requiring them to think.
They spend time online a lot more leisurely these days, and leisurely does not mean constantly reading and thinking.
It is an outlet for entertainment and unwinding after a long day at work.
Adhering to design standards across your industry could be an important pain point to address as you are creating your site.
If, however, you are in an industry like SEO or graphic design, have at it. You can create the most wildly creative site anyone has ever seen.
For more conservative industries like law or finance, following consistent industry design standards will enable you to capture the vast majority of people who are familiar with the exact same things.
And this can mean the difference between a converting site, and a site that doesn’t convert.
Always Close Your Tags
Don’t assume that just because Google doesn’t take into account coding standards for ranking, that you don’t have to pay attention to good coding habits.
Not at all.
An important point of good coding habits is always closing your HTML tags.
And knowing which ones self-close, and which ones require an additional closing tag that needs to be added.
These are all important things that you should be getting right from the start.
Not closing your tags can lead to design glitches you may not be prepared for.
From massive gaps in the design, to broken images, and other major issues, not closing your tags properly can lead to a whole host of problems.
Use Validation Tools
Using validation tools is an important part of any coding endeavor.
If you are not familiar with the task of code validation, “validating” a page is really just “a jargon-filled way of referring to the use of a computer program to check that a web page is free of errors” – Christopher Heng, thesitewizard.com.
When you validate your code, you increase the possibility that it will be compatible across a wide variety of platforms and devices.
You can also clean up your code effectively – reducing issues like random errors and design flaws.
It also helps SEO by making your site easier to crawl, parse, and index. Search engines will run into fewer errors.
When you use validation tools, you ensure that tags are being used for what they are meant to be used for, and you cut down on clutter.
This is important for making your documents easy to load, read, and make them better for both users and search engines.
Validation can also help to future-proof your work.
Any modern (most prior-release) web browser is built with standards.
If you create code that conforms to web standards today, you don’t have to worry (much) about its compatibility with future browsers of tomorrow.
But, if you use many different hacks to get something working properly on different browsers, don’t be surprised if you have to go back to square one in a future update.
Code validation is also a great debugging tool.
Validators will tell you where you have errors in your code.
If your page is presenting with a glitch somewhere, your validation process will easily point you towards what’s causing the error.
It also makes maintenance much, much simpler!
A vast majority of developers code using these standards.
If you code the same way, another developer should have no problems with ongoing maintenance of your code.
If, however, you use a great many different hacks to piece things together, having to untangle these is never fun.
Use Tags That Are Meaningful
If you don’t use meaningful tags, you create an avalanche of confusing code that nobody will be able to understand when they pick it up.
It’s fine to use <div>, <div>, and <div>. But, when using your CSS class or ID selectors, give them meaningful names. Like:
- <div class=”heroarea”>
- <div class=”topheader-firstrow”>
- <div class=”navigation-menu”>
- <div class=”contentarea”>
Using semantic markup will help you reinforce the semantic meaning of the content, rather than its appearance.
In a broader perspective, this really means that your site’s architecture separates presentation from the actual content.
When you use meaningful HTML tags, these tags will help define each and every one of your areas in such a way that it’s:
- Easy to understand for anyone looking at your code with a fresh perspective,
- Easy to maintain,
- Easy to read.
In simplest terms, this means coding things such as one would in the following way:
- When you code a heading, use H-tags (<h1>, <h2>, <h3>, etc.)
- When you code a paragraph, use P-tags (<p>).
- When you code content sections, use <div class=”content”>.
- If you code tables as DIVs, give the class selectors meaningful names like “content-column1,” “content-column2,” etc.
- If you code a navigation menu, use <div class=”nav-menu”> or “<nav>” in HTML5.
Why Should I Care about These Details?
As an SEO pro who is beginning their web development knowledge (or maybe you’re diving in after some experience with other types of work that has exposed you to web development), you may be asking why you should care.
It has been my experience that people who care about these details tend to have higher quality code overall.
Now, when we talk about quality code, I wanted to reiterate a few points that I have made elsewhere:
- Validated code is not always great code,
- Great code is not always validated code,
- Great code can be subjective,
- Left up to too much loose interpretation, good code can quickly turn to awful code.
Besides, isn’t any of this stuff something that only developers should be concerned about?
As the SEO, shouldn’t I be concerned about overall SEO, and only know enough to help guide developers through their day-to-day tasks?
The more you learn about related professions, the better the SEO you will be.
Anyone who is a creator of content should understand how pages are structured. The benefits of creating content to fit said structure is also important.
There are three main reasons behind this: accessibility, maintenance, and SEO.
“In SEO — this semantic coding structure is important because search engines weigh the importance of keywords by their placement in the HTML hierarchy.”
When it comes to accessibility, most people don’t think about this part very much, and this is a mistake.
Simple optimization of HTML will allow the presence of things like alternative text in image alt text attributes.
This enables screen readers for the blind to access your site. In fact, this can be a great source of lawsuits and legal headaches for site owners- those who have not optimized their alt text.
SeekBrevity.com also discusses the wide range of applications that accessibility serves – even for people without disabilities. This accessibility allows these people to customize their experiences.
To expand on the maintenance discussion — because this semantic HTML uses elements and tags that are meaningful and familiar in their structure, both people and machines can read and understand it easier.
SeekBrevity.com also writes:
“In addition to writing semantic HTML, there are a handful of rich, structured data standards that make it easier for machines to understand the content hierarchy and display relevant information to users. Things like microdata, microformats, and RDFa can be used individually or in combination in order to take accessibility to the next level. Microdata is the recommended format from Google and other search engines, as well as part of the HTML5 specification, and it uses information from both microformats and RDFa. It’s worth researching how best to implement one (or all) of these data structures if you want to make sure that search engines can read and, in turn, output the most important information to users.”
This is why caring about these details is so important.
Not just to you as an SEO, but also to you as a website owner.
Practicing what one preaches is one more step towards claiming your legitimacy as an SEO that people will listen to.
Keep HTML Elements to a Minimum
Following all the best practices we have talked about usually results in the above situation: your HTML elements will be kept at a minimum.
In SEMRush, their tool refers to code-to-text ratio as an important consideration for on-page optimization.
What is code-to-text ratio?
Basically, it’s the amount of your text content compared to the amount of code on-page.
In healthy SEO situations, you should have a significant amount of text content compared to the amount of on-page code.
What is a healthy amount?
Per SEMRush, a code-to-text ratio above 10% is a good goal to shoot for. Basically, make sure your text content exceeds the amount of code on your page by a wide margin.
Their warning in this regard is triggered when text content does not exceed the amount of code on the page.
When you keep your HTML elements to a minimum, you are, in essence, working to keep your code to text ratio down.
Other Coding Best Practices
These are not the only coding best practices you should follow. But, they are designed to give you a good head start.
Do Not Use Tables for Layout – Use Divs
For those who are still stuck in using tables for the site layout, DON’T. Please. DON’T.
I have long since upgraded my own developer skills with DIV layouts. And you should too. Here’s why:
Tables Are Not Flexible
I know. It’s possible to create table layouts using percentage widths.
However, they are usually slower to load and can change how your layout looks significantly.
The other major issue concerns specific widths for tables. If you use these, you won’t be able to take advantage of flexible layouts and responsive designs, rendering your website obsolete before it even starts.
Tables for Layout Purposes Do Not Conform to W3C Standards, and They Are Not Accessible
The W3C themselves recommends the following:
- Table layout can be used to represent tabular relationships between data. Authors specify these relationships in the document language and can specify their presentation using CSS 2.1.
- BH comment: Note here that they say table layouts should only be used to represent tabular relationships between data (say if you’re using table-based data ONLY).
- In a visual medium, CSS tables can also be used to achieve specific layouts. In this case, authors should not use table-related elements in the document language, but should apply the CSS to the relevant structural elements to achieve the desired layout.
If you want to write W3C valid code, DIVs are your answer. Only use tables for tabular data.
Have I drilled this into your head yet?
Tables Can Be Complex and Far Harder to Maintain than You Ever Wanted Them to Be
I remember at one point one popular music singer’s website had more than 200 columns and 200 rows putting together an avalanche of graphics that were sliced all to hell. This was back in the days of 1999 – Front Page.
Thank goodness notepad was my exclusive editor of choice.
Not to mention, tables are entirely ambiguous to anyone but the developer who made them.
Let’s visualize: if you are part of a team – imagine having to explain what every element – column, row, etc. of that table does.
To Every. Single. Team. Member.
Not fun, right?
Why not just implement better web development best practices and use the right ones to create your layout?
Tables Are Also Not Accessible
You introduce major issues in your designs when you use tables for layout.
Did you know that screen readers have an extremely hard time parsing tables?
Content that is rendered in a table layout is linear, but it is not easily understood when read left-to-right and top-to-bottom.
Also, various attributes that define how a table behaves (more specifically spans on table elements) will make the page very difficult to figure out for these screen readers.
Don’t Make More Work for Yourself (And Your Team) Than Necessary
Many of these web development best practices are stated here to make your life easier.
You should not make more work for yourself than absolutely necessary.
This doesn’t make things look good for anybody.
If you learn the right principles of DIV-based layout design along with CSS, you’re making things easier for yourself, your colleagues, and anyone that may come across your work in the future!
Chapter 9: Breaking Down Our Code
The header:
This is the header.
Not much is happening in this section other than the standard SEO meta tags, linking the style sheet, etc.
This is, however, where you would include anything like additional CSS styles, any other JavaScript styles, etc.
By the way, and this is something that is important because it will help your efficiency: Be sure to complete testing and full construction on your home page first.
Then, you won’t create additional work for you when you begin creating the other pages on the site.
In fact, the majority of this work will be complete and this will help you make faster progress.
Let’s examine each of these sections one by one:
The Header In Detail
<!DOCTYPE html> — This line declares the fact that this is an HTML5 document.
<html> — Opens up the HTML document.
<head> — Sets the header section.
<title>Test website</title> — Sets the title tag.
<meta name=”description” content=””> — Sets the meta description.
<meta name=”keywords” content=””> — Sets meta keywords (if you want to use them).
<link rel=”stylesheet” href=”styles.css”> — Declares the CSS stylesheet you are using.
</head> — Closing header tag.
<body> — Opening body tag (declares the main body of content in the document).
The Content Area
Here, your coding stops at your body tag.
The content area will include all page-specific website elements. Everything from graphics, body text, and everything else will go here.
Let’s look at two coding best practices that will really help you with your coding efficiencies.
Code Your Header Using PHP Includes
While not demonstrated here, there are ways you can use PHP includes to further speed up efficiency and web development time.
For example, you can take current page-level elements and include a PHP header that loads all of the redundant header stuff across your site.
Things like your logo, call-to-action, and search function header that repeat themselves everywhere.
Did you know that you can take your PHP header, dump all of these in one file, and just change one line,of one file, that then populates all throughout your site?
You NEVER have to do redundant changes ever again!
The rule is – anything repeatable site wide after the title and meta tags should be included in this external PHP include file.
Even the navigation. Bet you didn’t know you could do that did you?
Around 95% Of Websites Will Use Redundant Items in Their Header Sitewide. Use This to Your Advantage
Consider how you can put redundant items in your PHP header.
Then think about how you would go about changing your phone number on 150 pages of your website.
Just thinking about it gets tiring doesn’t it?
Using PHP saves you a ton of time because you don’t have to go through many, many hundreds of pages to change the phone number on each line.
Just go to your header.php file, change that one line, and voila.
PHP is not just for WordPress websites, people!
Don’t just copy and paste your headers into every page. Use PHP includes.
Let’s examine the coding that goes into the first part of this content page, typically the header, navigation, and hero image.
<div id=”top-header”> – This div is the top header div. This creates the box that will house all of our header items.
<div id=”headerwrapper”> – The header wrapper surrounds our header items within. This is necessary to create because you need to wrap and code the items specifically so they are a 3 column header, and they don’t start to look weird everywhere when the page is on different screen resolutions.
<div id=”column1leftheader”> – This is fairly simple. This is our left-hand column containing our logo.
<img src=”images/real-estate-genius-logo.png” width=”234″ height=”56″ alt=”Logo”> – This, of course, is our logo. You must include the width and height by default. It does speed up page rendering by doing this, because the browser does not have to “guess” at what the width and height of all of your images are.
</div> – This is your closing DIV tag that corresponds to the column1leftheader div.
<div id=”column2centerheader”> – This is actually the header on the right, based on how we had to code the CSS – more on this in a minute.
#headerwrapper {
width: 100%;
margin: 0px 0px 0px 0px;
padding: 25px 0px 0px 0px;
}
Notice here that our width is declared to be 100%. This will contain the DIVs below, which are coded as IDs (the # symbol before the initial CSS ID selector).
#column1leftheader {
float: left;
width: 35%;
font-family: Roboto;
font-size: 28px;
color: #ffffff;
font-weight: normal;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
#column2centerheader {
float: right;
width: 35%;
font-family: Roboto;
font-size: 28px;
color: #ffffff;
font-weight: normal;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
#column3rightheader {
float: right;
width: 25%;
font-family: Roboto;
font-size: 28px;
color: #ffffff;
font-weight: normal;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
The magic within the above CSS are the following:
Column 1:
float: left;
width: 35%;
Column 2:
float: right;
width: 35%;
Column 3:
float: right;
width: 25%;
This is how you code these columns to act as a table.
You must include two float rights because these will automatically be situated to the left of your left column. But, the width declarations must be less than 100%. Or close to it.
This is why we code all of the widths of our elements in the CSS to be 100%, and not 500px, 100%, 200px, 60%, and so on.
If you use percentages, you are able to create DIV elements that will respond when the browser window expands and contracts.
When you use fixed px (pixel) widths, the DIVs will stay the same at the defined px width, regardless of how you resize the browser window.
This is why pre-defined coding does not make for a very good responsive design coding technique.
Because of how the CSS floats are nested, what is supposed to be column 2 is really column 3.
It’s not all that confusing but it is helpful to make sure that you insert code comments on exactly what’s going on if the code is behaving any differently than what is actually written.
<form> – This tag declares our contact form on the right.
<input type=”text” value=”Site Search” class=”searchinput1″> – This one declares the input form for the search box on the right. To create default form text, use the “value” element. It’s important to use class CSS selectors here because they will help you style the form properly.
</form> – This tag closes out our form.
</div> – And this one closes out our form section.
<div id=”column3rightheader”> – This is the one that is kind of out-of-sorts. You would expect this to be the column on the far right, but it is really the column in the middle.
<img src=”images/call-us.png” width=”227″ height=”73″ alt=”Call Us”> – This is our “call us” call-to-action.
</div> – This is our column3rightheader closing DIV.
</div> – This is our column2centerheader closing DIV.
</div> – This is our headerwrapper closing DIV.
</div> – This is our top-header closing DIV.
Our next section involves coding and creating the navigation menu in CSS.
<div id=”navcontainer”> – This DIV is the declaration of our navigation menu container, the light purple navigation bar at the top of our design.
#navcontainer { – This is where you should see the id (#) and navcontainer.
width: 100%; – Our width is set to 100%.
background: #748cab; – Our background color is set in hex code to light purple.
margin: 0px 0px 0px 0px; – Our margin is set to 0px 0px 0px 0px. This means that the top side of the box of the DIV is 0 pixels, the right side of the box of the DIV is 0 pixels, the bottom side of the box of the DIV is 0 pixels, and the left side of the box of the DIV is 0 pixels.
padding: 5px 0px 0px 0px; – Our padding (the space between the content and the edge of the DIV box) is set to 5px 0px 0px 0px. This means that the space between the top side of the box of the DIV and the content is 5 pixels, the right side of the box of the DIV is 0 pixels, the bottom side of the box of the DIV is 0 pixels, and the left side of the box of the DIV is 0 pixels.
}
CSS follows what’s called the DIV box model. Basically, all elements in HTML are thought of as “boxes.” When you declare padding, margins, etc. of these boxes, you use top, right, bottom, and left sides of the box as defining variables. Like so:
padding: 0px (top), 0px (right), 0px (bottom), 0px (left);
- or rather –
padding: 0px 0px 0px 0px;
<div id=”nav”> –
<nav role=”navigation”>
<ul>
<li><a href=”about-us.html”>About Us</a></li>
<li><a href=”locations.html”>Locations</a>
<ul class=”dropdown”>
<li><a href=”anaheim.html”>Anaheim</a></li>
<li><a href=”orange.html”>Orange</a></li>
<li><a href=”buena-park.html”>Buena Park</a></li>
<li><a href=”tustin.html”>Tustin</a></li>
<li><a href=”costa-mesa.html”>Costa Mesa</a></li>
<li><a href=”newport-beach.html”>Newport Beach</a></li>
<li><a href=”villa-park.html”>Villa Park</a></li>
<li><a href=”long-beach.html”>Long Beach</a></li>
<li><a href=”huntington-beach.html”>Huntington Beach</a></li>
</ul>
</li>
<li><a href=”featured-listings.html”>Featured Listings</a></li>
<li><a href=”mls-property-search.html”>MLS Search</a></li>
<li><a href=”contact-us.html”>Contact Us</a></li>
<li><a href=”/blog/”>Blog</a></li>
<li><a href=”resources.html”>Resources</a></li>
</ul>
</nav>
</div>
</div>
<div id=”heroimage”>
<div id=”searchlistings”>
<img class=”searchlistings” src=”images/search-listings.png” width=”428″ height=”164″ alt=”Search Our Listings”>
</div>
</div>
<div id=”nav”> – This is our custom navigation DIV declaration ID. The CSS looks like the following:
#nav {
width: 65%;
height: 65px;
font-family: roboto;
font-size: 20px;
font-weight: normal;
line-height: 20px;
margin-left: auto;
margin-right: auto;
background-color: #748cab;
background-size: cover;
background-position: center;
}
Most of this should be self-explanatory. But, beyond the self-explanatory aspect, we want to accomplish a few things with this navigation CSS:
- Create a responsive full-width navigation bar area;
- That’s pretty much it!
<nav role=”navigation”>
This is the HTML 5 way of doing things by using semantic markup to define the navigation menu. Of course, the rest of the CSS is generally standard.
The way we write our CSS makes it so that we markup the menu as a list here in the HTML:
<ul>
<li><a href=”about-us.html”>About Us</a></li>
<li><a href=”locations.html”>Locations</a>
<ul class=”dropdown”>
<li><a href=”anaheim.html”>Anaheim</a></li>
<li><a href=”orange.html”>Orange</a></li>
<li><a href=”buena-park.html”>Buena Park</a></li>
<li><a href=”tustin.html”>Tustin</a></li>
<li><a href=”costa-mesa.html”>Costa Mesa</a></li>
<li><a href=”newport-beach.html”>Newport Beach</a></li>
<li><a href=”villa-park.html”>Villa Park</a></li>
<li><a href=”long-beach.html”>Long Beach</a></li>
<li><a href=”huntington-beach.html”>Huntington Beach</a></li>
</ul>
</li>
<li><a href=”featured-listings.html”>Featured Listings</a></li>
<li><a href=”mls-property-search.html”>MLS Search</a></li>
<li><a href=”contact-us.html”>Contact Us</a></li>
<li><a href=”/blog/”>Blog</a></li>
<li><a href=”resources.html”>Resources</a></li>
</ul>
</nav>
</div>
</div>
As you can see, the markup is standard HTML list markup. Consisting of the <ul> (for unordered lists), <li> (for list items), and so on.
Here’s the CSS that makes our navigation menu work:
#navcontainer {
width: 100%;
background: #748cab;
margin: 0px 0px 0px 0px;
padding: 5px 0px 0px 0px;
}
#nav {
width: 65%;
height: 65px;
font-family: roboto;
font-size: 20px;
font-weight: normal;
line-height: 20px;
margin-left: auto;
margin-right: auto;
background-color: #748cab;
background-size: cover;
background-position: center;
}
a {
text-decoration: none;
}
nav {
font-family: roboto;
width: 100%;
margin-left: auto;
margin-right: auto;
}
ul {
background: #748cab;
list-style: none;
margin: 0 auto;
margin-left: auto;
margin-right: auto;
padding-left: 0;
}
li {
color: #fff;
background: #748cab;
display: block;
float: left;
padding: 1rem;
position: relative;
text-decoration: none;
transition-duration: 0.5s;
}
li a {
color: #fff;
}
li:hover {
background: #1d2d44;
cursor: pointer;
}
ul li ul {
background: #748cab;
visibility: hidden;
opacity: 0;
min-width: 5rem;
position: absolute;
transition: all 0.5s ease;
margin-top: 1rem;
left: 0;
display: none;
}
ul li:hover > ul,
ul li ul:hover {
width: 250px;
visibility: visible;
opacity: 1;
display: block;
}
ul li ul li {
width: 100%;
}
Let’s go through these lines one by one:
a {
text-decoration: none;
}
This line defines our links as having no hover effect (underline) that appears when you mouse over the link. No underline shows up.
nav {
font-family: roboto;
width: 100%;
margin-left: auto;
margin-right: auto;
}
This one declares our navigation area, and sets the DIV box with an automatic margin, to center the box and to create a responsive design.
By setting both margins to auto, you tell the margins to automatically take over when there is no defined margin number in place.
ul {
background: #748cab;
list-style: none;
margin: 0 auto;
margin-left: auto;
margin-right: auto;
padding-left: 0;
}
This CSS code declares the start of the list items that will be decorated with dropdowns. It declares the styles for the overall unordered list (ul).
li {
color: #fff;
background: #748cab;
display: block;
float: left;
padding: 1rem;
position: relative;
text-decoration: none;
transition-duration: 0.5s;
}
This is the code that declares the style instructions for the main li (list items).
li a {
color: #fff;
}
This is the CSS that declares that the links (a) within a list (li) will have the default color as plain white (#fff).
li:hover {
background: #1d2d44;
cursor: pointer;
}
This CSS declares the hover property and that links will have a hover color as #1d2d44.
ul li ul {
background: #748cab;
visibility: hidden;
opacity: 0;
min-width: 5rem;
position: absolute;
transition: all 0.5s ease;
margin-top: 1rem;
left: 0;
display: none;
}
The magic of this CSS includes the following lines in this code:
“Visibility: hidden;
Transition: all 0.5s ease;”
The code that says ‘hidden’ is what’s causing the entire list itself to remain hidden until you hover your cursor over it. And, the transition causes the fade effect.
ul li:hover > ul,
ul li ul:hover {
width: 250px;
visibility: visible;
opacity: 1;
display: block;
}
This code is what makes the magic happen upon hover. You may be wondering what the > sign is doing here.
It targets elements that are a direct child of another element. In this case, “ul, ul li ul: hover” respectively.
ul li ul li {
width: 100%;
}
This one, finally, says to apply a width of 100% to all ul, li, ul, and li elements.
<div id=”heroimage”> – This next one declares the page division that will house our hero image.
The hero image is coded with the following CSS:
#heroimage {
width: 100%;
min-height: 481px;
background-image:url(“images/hero-background.jpg”);
background-repeat: no-repeat;
background-size: cover;
background-position: center;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
At this point, it should be fairly self-explanatory, except we are introduced to three new elements:
background-repeat: no-repeat;
background-size: cover;
background-position: center;
This says that our background is not going to repeat, it’s going to cover the entire DIV area, and that it will be centered within the DIV area.
<div id=”searchlistings”>
<img class=”searchlistings” src=”images/search-listings.png” width=”428″ height=”164″ alt=”Search Our Listings”>
</div>
</div>
This HTML is for our main search-listings button in the middle of our HERO image.
#searchlistings {
margin: auto;
width: 65%;
}
img.searchlistings {
display: block;
margin: auto;
width: 50%;
padding: 100px 0px 0px 0px;
}
Because our search-listings button is quite a way down the page, using padding for CSS positioning we can add 100px to the top side of the box like in the above example.
The .searchlistings right after the img there declares that the class (denoted by the “.”) will be applied to the img tag with that class.
For now, we have discussed our top header, along with the initial page constructs.
Next, let’s talk about our content area (exciting).
Here is the CSS that defines the containers and other CSS within our content area (below the main HERO image).
#container {
width: 100%;
min-height: 800px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
#main-wrapper {
width: 100%;
padding: 30px 0px 0px 0px;
margin-right: auto;
margin-left: auto;
min-height: 1400px;
}
#column1 {
float: left;
width: 65%;
min-height: 500px;
margin: 0px 0px 0px 60px;
}
#between {
float: right;
width: 10%;
min-height: 500px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
#column2 {
float: right;
width: 20%;
min-height: 500px;
margin-right: auto;
padding: 0px 0px 0px 0px;
}
#container {
width: 100%;
min-height: 800px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
This part simply creates a container that has a full width and minimum height of 800px. The padding and margin are all set to zero.
#main-wrapper {
width: 100%;
padding: 30px 0px 0px 0px;
margin-right: auto;
margin-left: auto;
min-height: 1400px;
}
This is the main wrapper. Again, it’s a width of 100%, but here we have right and left margins set to auto, and minimum height set to 1400px.
#column1 {
float: left;
width: 65%;
min-height: 500px;
margin: 0px 0px 0px 60px;
}
This CSS defines column 1, or our left column with text, that it’s going to float left, has a width of 65%, and a min-height of 500px.
This is why floats are important – on columns that are less than 100% width like this, you set each column like so – say if you have a two column layout, you can set them both to 50%, and just float the left one, and float the right one.
float: left; for the left one.
float: right; for the right one.
This will cause your columns to be laid out in a single row, with two columns side-by-side, just like a table. These are the beginning basics of table-based DIV layouts.
And these beginning basics can be very powerful, especially if you haven’t made the leap to DIV layouts instead of tables (if you’re using tables in 2022 for layout? Shame on you…)
Anyway. Our next CSS defines the second between column:
#between {
float: right;
width: 10%;
min-height: 500px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
This simply gives us a 10% wide column in the middle to separate our two columns of content, so they don’t run into each other. We want to apply a float: right; on this column.
#column2 {
float: right;
width: 20%;
min-height: 500px;
margin-right: auto;
padding: 0px 0px 0px 0px;
}
Then, finally, this one defines the dimensions of our video column. For the video column, we also want to apply a float: right; CSS direction. This will cause the right-hand column to display against the left two other columns.
When you apply floats in this way, assuming the columns are all of a total size less than the maximum container size, we are telling the browser that:
- I’d like the first column to be on the left,
- I’d like the second column to be in the middle,
- I’d like the third column to be on the right.
Along with the percentages in our columns, this creates a nice, fluid layout the way we want it displayed.
Next, we’re going to go through the Newsletter section.
First, let’s examine the HTML:
<div id=”newsletter”>
<div id=”newsletter-new”>Sign up for our newsletter</div>
<div id=”newsletter-form”>
<form>
<div id=”forminputfield”>
<input type=”text” class=”forminput1″>
</div>
<div id=”formsubmitbutton”>
<input type=”image” src=”images/form-submit.png” value=”submit” class=”formsubmit”>
</div>
</form>
</div>
</div>
<div id=”newsletter”> – This sets up the block for our newsletter.
<div id=”newsletter-new”>Sign up for our newsletter</div> – This sets up our newsletter call-to-action.
<div id=”newsletter-form”> – This sets up the block for our form.
<form> – This is the start of coding for our actual form.
<div id=”forminputfield”> – This is the coding for our form input field.
<input type=”text” class=”forminput1″> – This is the actual form input field.
</div> – Closing DIV.
<div id=”formsubmitbutton”> – This sets up the DIV for the form submit button.
<input type=”image” src=”images/form-submit.png” value=”submit” class=”formsubmit”> – This is the coding for the actual form submit button.
</div> – Closing DIV tag.
</form> – Closing form tag.
</div> – Closing DIV tag.
</div> – Closing DIV tag.
#newsletter {
width: 100%;
height: 175px;
font-family: Oswald;
font-size: 26px;
font-weight: bold;
background-color: #3e5c76;
}
#newsletter-new {
width: 100%;
height: 50px;
font-family: Oswald;
font-size: 26px;
font-weight: bold;
color: #ffffff;
text-align: center;
padding: 20px 0px 0px 0px;
margin: 0px 0px 0px 0px;
}
#newsletter-form {
width: 625px;
height: 87px;
display: block;
margin-right: auto;
margin-left: auto;
font-family: Roboto;
font-size: 16px;
font-weight: normal;
background-image:url(‘images/newsletter-signup.png’);
background-color: #3e5c76;
background-repeat:no-repeat;
}
#forminputfield {
width: 65%;
float: left;
font-family: Roboto;
font-size: 16px;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
border-width: 0px;
}
.forminput1 {
float: left;
font-family: Roboto;
font-size: 16px;
color: #000000;
background-color: #f0ebd8;
padding: 0px 0px 0px 0px;
margin: 15px 0px 0px 65px;
border: 1px 1px 1px 1px;
}
#formsubmitbutton {
float: right;
font-family: Roboto;
font-size: 16px;
color: #000000;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
vertical-align: top;
}
.formsubmit {
float: right;
font-family: Roboto;
font-size: 16px;
color: #000000;
padding: 0px 0px 0px 0px;
margin: 0px 0px 0px 0px;
background-repeat:no-repeat;
}
This CSS is not all that surprising, and builds on all the elements that we have used before.
The one thing you should notice in this CSS is the fact that we are using the same floating concept from before: the main floats are on the left, and the remaining floats on the right, leaving room for the cascade to happen fluidly and completely.
p {
font-family: roboto;
font-size: 16px;
font-weight: normal;
line-height: 16px;
}
h1 {
font-family: roboto;
font-size: 28px;
font-weight: normal;
line-height: 28px;
}
h2 {
font-family: roboto;
font-size: 24px;
font-weight: normal;
line-height: 24px;
}
h3 {
font-family: roboto;
font-size: 20px;
font-weight: normal;
line-height: 20px;
}
h4 {
font-family: roboto;
font-size: 20px;
font-weight: normal;
line-height: 20px;
}
h5 {
font-family: roboto;
font-size: 20px;
font-weight: normal;
line-height: 20px;
}
This group of CSS code is defining all of your styles for all your standard tags like <p>, <h1>, < h2>, <h3>, etc.
It’s a good idea to define styles for all of your tags, because then you can use them without issue and without using inline styles.
<div id=”footercontainer”>
<div id=”social”>
<p>Follow us on social media:</p>
</div>
<div id=”socialicons”>
<img src=”images/facebook-icon.png” width=”45″ height=”44″ alt=”Facebook”>
<img src=”images/twitter-icon.png” width=”43″ height=”44″ alt=”Twitter”>
<img src=”images/linkedin-icon.png” width=”43″ height=”44″ alt=”LinkedIn”>
<img src=”images/instagram-icon.png” width=”44″ height=”44″ alt=”instagram”>
<img src=”images/pinterest-icon.png” width=”44″ height=”44″ alt=”Pinterest”>
<img src=”images/youtube.png” width=”44″ height=”44″ alt=”YouTube”>
</div>
<div id=”footer”>
<p class=”first-child”>
Featured Listings<br>
MLS Search<br>
Other Listings<br>
Homes<br>
Apartments<br>
Commercial Buildings<br>
Condos<br>
Mobile Homes
</p>
<p class=”nth-child(2)”>
Anaheim<br>
Orange<br>
Buena Park<br>
Tustin<br>
Costa Mesa<br>
Newport Beach<br>
Villa Park<br>
Long Beach<br>
Huntington Beach<br>
</p>
<p class=”last-child”>
About the Company<br>
Our Team<br>
Careers<br>
Charitable Causes<br>
Contribute<br>
Our Blog<br>
Terms of Service<br>
Privacy Policy<br>
</p>
</div>
<div id=”footerrow2″>
Copyright © 2022 Real Estate Genius<br>
All Rights Reserved.<br>
You may not copy our content without our explicit written permission.<br>
</div>
</div>
</div>
The Footer
Finally, we have reached the footer. The footer is just as important as other sections of your site, but most people treat it as an afterthought.
This is a shame, because there is plenty of opportunity within the footer to really add some great value and perform one final attempt to close the sale.
Whether it’s through adding a newsletter signup form, or creating a footer with more contact information, or creating a footer with yet one last button that takes you to a product or service page, the footer is a great opportunity to really dial in the final closing sale tactic.
There are many things that you can include in your footer. Such as:
Links to Information
One of the important things that you should include in your footer is a link to your information.
You should include links to your Contact Us and About Us pages to further drive home information to your visitor – that you are a legitimate business and can solve their problems.
You want them to know what your brand is about, and/or what your company is about. This is a great way to reinforce that.
Be Sure to Include at Least One Call-to-Action
This call-to-action can be as simple as a call button for your phone number or Skype address.
It can also be as complex as a click arrow to an internal page, where you provide more information about your products and services.
This not only provides a review opportunity, but you also provide an opportunity for potential clients to really dive into the nitty-gritty details of your different products and services.
Include a Link to Your Local Business Maps Page or Reviews Page
Don’t forget to include at least one link to your local business maps page or reviews page.
This will give people a great way to find you on Google Maps or Google My Business, and leave reviews for you. Additionally, as you establish your reputation, others will see these reviews and are more likely to trust you.
Don’t Forget Your Copyright Notice!
This may be the web, and some people consider this the wild wild west – so much so that some have zero issue with stealing content, whatever.
Not true. Make sure your footer includes your copyright notice.
It’s more of a “formality” statement. But don’t leave home (or create your footer) without it.
It can be a lifesaver when it comes to legal content issues that you may run into online.
Do Be Sure to Organize Your Footer Links!
Organizing your footer links can bring a nice sense of cohesiveness and order to your website’s footer.
Consider several columns or rows of relevant information. This information can include things like your social media icons, your contact information, links to your products and services, etc.
It’s a great way to include some easy jumps to pages that will help your website visitors find exactly what they’re looking for.
Don’t Forget Your Privacy Policy and Terms of Use, Either
Your privacy policy details the information that your site collects: any cookies, data bound by privacy rules and regulations, and any identifiable information your site uses to do your analytics.
When you create a Terms of Use, this dictates the terms by which your user will agree to by using the site.
Both of these can be legal lifesavers at the end of the day, especially if someone tries to sue you for a relatively innocuous issue on-site.
In addition, the privacy policy should also include some information about how your site handles GDPR, along with a specific GDPR implementation (which is beyond the scope of this section). But, without going too much into GDPR, this is what digitalguardian.com says about it:
“The General Data Protection Regulation (GDPR), agreed upon by the European Parliament and Council in April 2016, will replace the Data Protection Directive 95/46/ec in Spring 2018 as the primary law regulating how companies protect EU citizens’ personal data. Companies that are already in compliance with the Directive must ensure that they are also compliant with the new requirements of the GDPR before it becomes effective on May 25, 2018. Companies that fail to achieve GDPR compliance before the deadline will be subject to stiff penalties and fines.
GDPR requirements apply to each member state of the European Union, aiming to create more consistent protection of consumer and personal data across EU nations.”
This is especially true for sites in ultra-regulated industries like the legal and health industries, the latter of which has significant HIPAA violations that can result if you don’t spell these things out.
Now that we’ve discussed some of the more important items you should include in your footer, let’s proceed with a more thorough review of the code!
<div id=”footercontainer”> – Your opening DIV for the footer.
<div id=”social”> – Your opening DIV for the box for the social icons.
<p>Follow us on social media:</p>
</div> – Closing DIV.
<div id=”socialicons”> – Your opening DIV for the social icons.
<img src=”images/facebook-icon.png” width=”45″ height=”44″ alt=”Facebook”>
<img src=”images/twitter-icon.png” width=”43″ height=”44″ alt=”Twitter”>
<img src=”images/linkedin-icon.png” width=”43″ height=”44″ alt=”LinkedIn”>
<img src=”images/instagram-icon.png” width=”44″ height=”44″ alt=”instagram”>
<img src=”images/pinterest-icon.png” width=”44″ height=”44″ alt=”Pinterest”>
<img src=”images/youtube.png” width=”44″ height=”44″ alt=”YouTube”>
Please note: we do not have a lot of fancy stuff going on here. This is mostly just including image tags and the required alt text attributes.
</div> – Yet another closing DIV.
<div id=”footer”> – This tag opens up our footer right here.
<p class=”first-child”> – This one is interesting, but I am going to go over the CSS we used and how it’s implemented. It’s basically how we are doing the 3-column links list within the middle of the footer.
Featured Listings<br>
MLS Search<br>
Other Listings<br>
Homes<br>
Apartments<br>
Commercial Buildings<br>
Condos<br>
Mobile Homes
</p> – I’m not going to go through every closing <p> tag right here. By this point, you should know what the <p> is, and what it does.
<p class=”nth-child(2)”>
Anaheim<br>
Orange<br>
Buena Park<br>
Tustin<br>
Costa Mesa<br>
Newport Beach<br>
Villa Park<br>
Long Beach<br>
Huntington Beach<br>
</p>
<p class=”last-child”>
About the Company<br>
Our Team<br>
Careers<br>
Charitable Causes<br>
Contribute<br>
Our Blog<br>
Terms of Service<br>
Privacy Policy<br>
</p>
</div>
<div id=”footerrow2″> – This creates a DIV that starts the box for row 2 of the footer.
Copyright © 2022 Real Estate Genius<br> – Here we have our copyright.
All Rights Reserved.<br>
You may not copy our content without our explicit written permission.<br>
</div>
</div>
</div>
And, that’s pretty much it for our footer. Fairly basic right?
Let’s take a look at the CSS for the footer, because we do have some interesting things going on in this footer that I wanted to explore in further detail.
At this point, I am not going to go over each and every line of the CSS.
#footercontainer {
width: 100%;
min-height: 450px;
margin: 0;
background-color: #0d1321;
}
#footer {
align: center;
width: 55%;
min-height: 250px;
font-family: Roboto;
font-size: 16px;
font-weight: normal;
background-color: #0d1321;
padding: 0% 0% 0% 25%;
margin: 0% 0% 0% 0%;
}
#footer > p:first-child {
float: left;
text-align: left;
width: 33.3%;
font-family: Roboto;
font-size: 16px;
color: #a5afbd;
}
This is what I wanted to talk about, because of the use of the first-child elements.
Here’s what happens when you use the greater-than, less-than symbols in CSS.
You are technically implying that the #footer > p:first-child element takes precedence as a child element, and these child elements of the footer should be applied in the footer.
These three CSS selectors are also using the percentage-based layout that we have used before, so you will see the floats also being applied. It’s not all that complicated – feel free to use this CSS on your own and test it out for yourself.
#footer > p:nth-child(2) {
float: left;
text-align: left;
width: 33.4%;
font-family: Roboto;
font-size: 16px;
color: #a5afbd;
}
#footer > p:last-child {
float: right;
text-align: left;
width: 33.3%;
font-family: Roboto;
font-size: 16px;
color: #a5afbd;
}
Again, this is the box for row 2 for the footer. The rest of this CSS at this point should be fairly self-explanatory.
However, if you have any questions about any of the CSS, feel free to ask us at any time.
#footerrow2 {
text-align: center;
font-family: Roboto;
width: 100%;
margin: auto;
padding: 0px 0px 0px 0px;
color: #a5afbd;
}
#social {
width: 15%;
margin-left: auto;
margin-right: auto;
font-family: Roboto;
font-size: 16px;
color: #ffffff;
padding: 20px 0px 0px 0px;
}
#socialicons {
width: 20%;
margin-left: auto;
margin-right: auto;
font-family: Roboto;
font-size: 16px;
color: #ffffff;
padding: 0px 0px 0px 0px;
}
This now concludes our Build Your Own Website tutorial for website number 1. Let’s move forward by creating a brand-new WordPress website!! (I know some of you are excited to get to this point).
Chapter 10: WordPress Preparations
Preparations for WordPress Websites
First of all, when you create a WordPress site, it is a much different beast than your standard site.
A standard site is just a group of HTML & CSS files that are served by your web server, and you don’t need a special database or anything fancy.
However, WordPress throws several things into the mix that make it a powerful platform:
- Plugins
- It runs on the latest version of PHP (typically)
- It’s database-powered by MySQL
Now, there are several preparations you must make before you start to download WordPress and install it.
These steps assume you are on a standard cPanel server with Apache, MySQL, and PHP.
These steps also assume that you have purchased a domain, the required web hosting, and have at least updated all of your nameservers at your web host.
The first step would be to download WordPress. Just go to WordPress.org, and download it.
It may make sense to create a separate folder on your hard drive to download the WordPress files for easy editing later.
We are not touching these files for now.
Next, we need to create our MySQL databases on our domain.
This can be done manually if you want. It only takes 5 minutes!
First, go into cPanel and find your databases section:
We want to click on the MySQL Database Wizard.
Next, you will be on the MySQL Database Wizard itself, which will take you through the steps of creating a new Database:
As you go through the steps, it will ask you to create a user, and create a password.
Be sure to create a very strong password because we don’t want someone to hack our website.
Once you have created your databases, next is the fun stuff: our WordPress install. Be sure to write down your database name, your database username, and password that you created in this section, because we will need it for the next step.
Installing WordPress
First off, we’re going to download the full WordPress install package from WordPress.org.
Just go to WordPress.org and click on Get WordPress:
Next, click on download WordPress:
Save the files to an innocuous, random folder on your desktop.
Extract the files, and you will see a file structure that looks like the following:
The important file we need right now is wp-config-sample.php.
Go ahead and open it.
In the file that opens, you will see the following code:
Remember the MySQL db name, username, and password we created before with the MySQL database wizard in CPanel? This is where we will enter that information in.
Depending on your host, you may have differently-formatted usernames and logins, but for most hosts you DO need to include the prefix like so:
sitename_dbname, sitena_username, etc.
Also, include them within the apostrophes, and be careful that you don’t delete anything. Just insert the information in between the apostrophes and you will be good to go.
Then, we’re going to rename our wp-config-sample.php file to wp-config.php.
After we’ve done all this, we are ready to upload the WordPress files to our site:
Once all of this is done, you can move forward with WordPress’ famous five-minute install.
Please note that the local install of WordPress on your computer will take some different steps than the ones we have gone through here.
Point your browser to the URL where you have WordPress fully installed.
Select your language.
If you have done everything correctly, you should see a confirmation screen.
On the next screen, you can fill in the basic information for your site.
If you are creating this on a staging domain, or you are working on a site that’s likely to be a duplicate of the other site, I highly suggest clicking on “Discourage search engines from indexing this site.”
If you don’t, you may wind up in the situation that I’ve found many staging sites in: the developer who built the site forgot to check “discourage search engines from indexing.”
You don’t want to uncheck that selection AT ALL until the staging site goes live and you switch it over to the new site.
Click on the ‘install WordPress’ button and that’s it — after a couple of minutes installing some files, WordPress should be fully installed on your server!!
Now, we are ready to get to work.
First of all, let’s discuss some best practices that are exclusive to WordPress websites:
Don’t use the wp-config.php files for creating URLs
In WordPress, your domain can be configured using a WordPress Address (URL), and a Site Address (URL). In wp-config.php, it’s site_url() and home_url().
Hardcoding your URL in wp-config.php is possible, but you will save yourself a lot of headaches by using the native solution.
This is in the WP Admin dashboard. Just navigate to Settings > General and change these fields to the settings that you want.
Do Not Neglect Any Updates!
I know. It’s hard to overcome update fatigue.
Especially when software like WordPress releases updates many times per year. As if that wasn’t enough, major updates are often combined with maintenance and security updates.
Many of these updates are extremely important to maintaining functional integrity of WordPress, so please don’t forget any updates!
Also, plugins don’t play nice when they get outdated. Be sure to continue updating plugins as well.
And, it sucks when this happens, but sometimes you have no choice: you may have to abandon a plugin if a developer has decided to no longer support that plugin.
It’s a better solution than one day seeing your WordPress installation go up in smoke.
Practice Standard Security Best Practices
Preventive action is better than reactive action after a hacker has trashed your WordPress site.
You can run into such issues as spammy login attempts, comment spam, or malicious bots that perform DDOS attacks in an attempt to take down your site.
You can also become the victim of traditional hacking if your day-to-day best practices are not secure enough.
It’s better to take preventive security measures such as the following.
Use a Secure Name and Password
I know. Doing this is a pain. But, would you rather do this or spend 10 hours cleaning up after someone maliciously trashes your site?
If you really hate having to remember complex passwords, I suggest using a password manager like LastPass. This will help you automatically add passwords to a browser app, that will auto-fill everything for you!
That being said, don’t use easily guessed usernames like admin. Make sure your password is over 10 characters, and contains a random mix of letters, acceptable punctuation, special characters, and numbers.
Use Spam Prevention Methods Like CAPTCHAs on Any Easily Submitted Form
Using CAPTCHAs and honey pots are all great practices to implement to ensure that spammers don’t get past your online forms.
These types of methods ensure that a malicious bot or spammer cannot repeatedly send any requests through such forms.
Don’t Forget to Use a General Security Plugin or Service for Additional Security
You have several security plugins you can use that will help you identify and fix any security issues that they encounter.
Some of them report IP address activity, while others report on other multiple vectors.
These plugins keep a log of things like fake login attempts, and you can even whitelist or blacklist any IP you want with some of them.
They can also log user activity, and block DDOS attackers who use brute force to bring down your site.
Additionally, it’s a great idea to use a firewall like CloudFlare to mitigate the risk of a DDOS attack.
Check to Make Sure That Your Function Is Not Already Covered by Existing WordPress Functions and Libraries
You should always perform a check to see whether or not any dev task you want to accomplish is covered by existing WordPress functions or libraries.
There is no sense in creating a brand-new function when WordPress does the same or similar function with its own code.
This is how you can introduce confusion in your own coding.
Your scripts will be less vulnerable to weaknesses, and if any appears, they will be fixed by the core contributors of WordPress. You won’t have to worry about contacting all of your WordPress clients and letting them know that your code has some issues that showed up.
The core WordPress coding includes many scripts that can be used to complete any functions required by themes or plugins.
Always look into the WordPress codex to figure out what you can do before adding new libraries or otherwise creating new code that will introduce conflict within existing WordPress code.
Coding Best Practices for WordPress
Remember that when you write code in WordPress, don’t forget that you’re writing code for other people, not just yourself.
All of your code should be very readable by any developer who may come across it in the future.
This means that you should adhere to standard grouping and spacing patterns. Avoid creating something “original” or “clever” just for the sake of it.
Code for Readability, Reliability, and Flexibility
These are the three standards that will help your WordPress themes stand out above the rest.
You want your code to be readable by any developer that comes in later. If you think that by creating confusing code you’re creating “job security,” don’t kid yourself.
People would rather work with someone who knows their stuff enough that it doesn’t cause issues with their code, than have to perform a full site redesign when their code doesn’t work the way it is supposed to.
Nothing is more painful than having to perform a code refactoring when it turns out that prior code was not done in the way it should have been from the start.
It’s better to include these three points because that is the true hallmark of any professional level developer:
- Their ability to create readable code that anyone at all levels can tackle,
- Their code’s reliability to work with all manners of updates, plugins, and functionalities,
- Their code’s flexibility to be able to be picked apart and changed at a moment’s notice for any other functionality that’s required by the website.
Using code readability as a best practice, you should choose readability over shorter, confusing code.
When your code is fully explained and written out at the outset, you make it easier for others to work on your site.
Aside from reading comprehension, you should also stick to WordPress’ recommended coding standards, while also using your own team’s standards.
This means that all code is created with a consistent structure. Handling actions in a similar way with any code you write, while observing your team’s standards, is something that should be done to reinforce reliable code.
Files and functions should also have similar filename conventions.
You should always use classes, hooks, and functions that align with WordPress core. This simple development best practice will ensure that you build in the ultimate reliability and insurance into your code.
You will ensure that your code won’t break when WordPress updates by including this best practice.
Chapter 11: Choosing a Theme
Creating Your New WordPress Site by Downloading a Theme
Now that we have our basic WordPress install setup and working, let’s move on with one aspect of WordPress site building: choosing our own theme.
For most WordPress beginners, they tend to start with downloading themes and uploading them to their own site.
Even most advanced people do this too, especially if they don’t want to create a new site entirely from scratch.
It’s a perfectly valid method for creating a brand-new website.
Despite what the professionals would have you think.
The benefits of downloading a premade theme and uploading it to your WordPress installation are:
- You can customize said theme to your liking,
- You don’t have to spend so long in development,
- You often have access to different variations of the design
Let’s examine some of the best practices of choosing your own WordPress Theme (there is actually a lot more that goes into this process than you may think)…
Don’t Choose a Theme with a Bunch of Bloated Code
Choosing a theme is a complex process.
What you don’t want to have happen is choosing a theme that has a ton of bloated code behind the scenes, that has more code than you can shake a stick at.
The reality is that more than a few WordPress themes out there could use a ton of thinning down of their code.
However, this doesn’t mean dumbing it down.
Code can contain 2-3,000 lines for just one page, when only 50-100 lines of code are needed on average (if that).
Themes that use unnecessary plugins, functions, and WordPress-specific code for certain tasks should all be avoided, because all this does is cause bloated code.
Bloated code is often the result of a developer who is rushing to get the theme out the door, and does not understand the importance of code optimization.
Be Sure to Choose a Responsive Theme
Choosing a responsive theme simply means that your theme is viewable on many devices and platforms, without using a mobile or m. subdomain to serve your mobile site.
If you recall from our development discussions earlier, this is our preferred method of creating a site, with a responsive design.
You want to assess whether or not the theme you’ve selected has a fluid site grid and images that are flexible, which can translate to non-desktop devices.
There shouldn’t be any hiccups when a theme is viewed on desktop, tablet, or mobile.
You May Want to Think About Buying Premium Themes
When you buy a premium theme, you tend to have a higher level of control over the customization.
These themes also come with plugins built in, and you don’t have to pay for other plugins.
There are several benefits to using premium themes that you will not get in free themes, such as:
- Coding is of higher quality in premium themes. If you purchase a premium theme from a theme outlet like ThemeForest.com for example, you are usually guaranteed that the theme meets a certain standard.
- Premium themes offer more features than free themes do, and these can help you create a unique appearance that helps you stand out from everyone else.
- Premium themes also offer support from the developer after you purchase the theme, and some themes can give you managed support on top of this.
Not only does purchasing your own theme cut down on development time, especially if you are in a quick hurry to get a project finished, but they offer a slew of benefits that you just won’t get if you’re coding your own theme.
This is especially true if you are just getting into WordPress theme development, and you are not quite as confident in your development skills yet.
Themes with Hard to Read Fonts Are Never a Good Idea
If you remember our earlier discussions, you want to create a site with text that’s easy to read.
But, you also don’t want to create a site with fonts that are overly large.
You should make your fonts simple, readable, and sophisticated.
While some themes may be limited in their customization options, you should always be able to go into the CSS of that site and make changes to it in this manner.
Testing the Theme Should Be a Priority
At the end of the day, if you buy a theme that doesn’t work, your hard-earned money has turned into a digital paper-weight.
You should immediately perform testing on the theme that you download.
This testing should include:
- Cross-browser compatibility,
- Platform compatibility,
- Display size compatibility
You can do all three through a program called BrowserStack.com. This program allows you to visualize your site and see how it performs on a variety of browsers and platforms. At last count I believe you were able to test around 20 of these.
You could then select operating system, display sizes, and more.
Are You Looking for a Theme or a Framework?
Just to add a teensy, weensy bit of complexity to the equation, themes are not all that’s available for you to choose from.
You can also choose frameworks, and these frameworks use child themes to add functionality and customization options to the front end.
How Will My Theme Look Immediately after Upload?
This is one of the hardest things you will have to get used to about WordPress themes – they will seldom look exactly like the demo screenshots that you were so impressed with.
They will not look quite as awesome as that demo screenshot when you upload it.
You will not find very much in the way of high quality designs immediately after you upload.
In fact, it will look like a mish-mash piece of crap that you have no idea what it is.
This is mostly true for premium themes, also.
The reality is that all of those awesome demo screenshots you saw were heavily customized by the theme’s developer before the theme was put up for sale.
You will have to perform the customization on your own if you wish to achieve the exact looks of the theme that you saw in those awesome demo screenshots.
But, there is something that’s going to save you — WordPress demo content!
You can download a sample of demo content that the theme typically uses. In some cases, you will have demo content from the coder of the theme, and WordPress sample demo content.
You have two options in this regard:
- Customize the theme and create the demo content yourself;
- Download the XML demo content file from https://codex.wordpress.org/Theme_Unit_Test
The fastest, most efficient method is to make sure that you download the XML demo content, and use the partial demo content that comes from the developer of the theme in combination with this.
Is the Theme Compatible with SEO?
This means things like text structure – does the theme use standard <p> paragraph tags?
Does the theme use standard <h> header tags?
And, most importantly, if it doesn’t, does it allow you to add your preferred tags and is the text still styled properly?
Nothing’s worse than finding out that you got a theme and halfway through development, you find that it’s not properly compatible with SEO, and you have to start from scratch.
You Will Find Things You like and Don’t Like as You Work with Themes
As you work with downloading themes, you will figure out exactly what you like and what you don’t.
Maybe you don’t like the fact that it’s not properly SEO’d.
Maybe you don’t like the fact that it doesn’t download fast enough.
It could even be that you prefer the mobile or m. subdomain over a responsive design (although in these times, I can’t see why you would)…
Maybe you don’t like that big ugly slideshow on the front, and you wish you could make it smaller.
Perhaps you aren’t happy with how the theme implements particular widgets.
This is really a trial and error process that’s only resolved through constant practice, and investigating themes thoroughly.
And figuring out your likes and dislikes in this regard.
Don’t expect the first theme or two that you download will look exactly like the awesome demo screenshots you saw when you download it.
If you download a premium theme, hopefully the support will be good enough to where you can ask them how to make the theme you downloaded exactly like the awesome demo screenshots that you saw.
Does the Theme Have Social Sharing Call-to-Action Buttons?
This is another important consideration.
You must have, at the very least, social icons that allow you to link to your social media accounts.
Other themes have enhanced functionality that will allow you to have social sharing buttons, along with social like buttons.
These only serve to enhance your site’s content and make it all immediately shareable to your audience on your social networks.
If it doesn’t have social sharing call-to-action buttons, you should still be able to add them by a plugin. Any theme should not interfere with your efforts in this regard.
If it does, you don’t want to use that theme.
Beware of the Dangers of Free Themes
As you get started with WordPress theme development, and you start downloading themes on your own, you should be aware of the weaknesses involved in downloading free themes.
First of all, you will never know every single weakness of the free theme.
There can be plugin compatibility weaknesses, especially if your free theme is particularly terrible.
You can also run into security weaknesses, which will allow a hacker to take over your site in a hostile manner.
It’s also possible that you can run into code weaknesses. These will impact exactly what you can do, especially from an SEO perspective.
Perhaps the developer uses proprietary coding that doesn’t include standard SEO coding. In which case you will be screwed when it comes to SEO.
You may either have to customize the theme yourself (if you are good enough), or you can hire another developer to customize it.
Either way, when you skimp on your themes, these are the issues that you will run into.
Now that we have discussed some of the essential thinking processes behind choosing your own theme, let’s discuss how to actually do this.
Afterward, I will show you how to convert an existing HTML 5 & CSS 3 – based design to a custom WordPress theme!
Searching for the Perfect Theme for Your Site
There are a variety of ways you can find your theme online.
From theme repositories, to specific companies who create themes, there is no shortage of themes to choose from.
Here are a few resources you can use to find that perfect WordPress theme for you:
First off, you can use a Google search. Just search for your industry + WordPress Themes.
In case you don’t want to go through all that, here’s a list of places where you can find WordPress Themes based on your industry. These examples should get you started on how to find your own:
40+ Accountant WordPress Themes
https://alienwp.com/accountant-wordpress-themes/
21 Accounting WordPress Themes
https://colorlib.com/wp/accountant-wordpress-themes/
21+ Airlines / Aviation Services WordPress Themes
16+ Bank WordPress Themes
https://www.templatemonster.com/category/bank-wordpress-themes/
13+ Banking WordPress Themes
https://www.shivarweb.com/11598/best-wordpress-themes-for-banks-accountants/
Banking WordPress Themes
https://themeforest.net/search/banking%20wordpress
20 Car & Automotive WordPress Themes
https://www.premiumwp.com/best-car-wordpress-themes/
20+ Automotive WordPress Themes
https://themegrill.com/blog/automotive-wordpress-theme/
37 Car / Automotive WordPress Themes
https://colorlib.com/wp/automotive-wordpress-themes/
30+ Directory WordPress Themes
https://colorlib.com/wp/best-directory-wordpress-themes/
67+ Farming & Agriculture WordPress Themes
https://freshdesignweb.com/wordpress-agriculture-themes/
39 Lawyer WordPress Themes
https://colorlib.com/wp/best-lawyer-wordpress-themes/
25+ Lawyer WordPress Themes
https://templatic.com/wp/lawyer-wordpress-themes/
Download Your Theme
Once you have chosen your theme, you can download it.
Create an easy-to-find folder on your desktop or other easily accessible location on your computer.
You don’t have to extract anything. We will be using our zip file for upload.
Next, we are going to our WordPress back end.
Click on Appearance > Themes.
On the next screen, you should see all the themes currently available to you on your site.
Next, click on Add New.
On the next screen, click on Upload Theme.
On the next screen, we will click on Choose File, which will let us choose the theme zip file that we downloaded.
Next, we want to click on the zip file:
Just a quick note: it is not necessary to extract your zip file before you download it.
Depending on the place you download your theme from, you will also have documentation, theme demo content files, and other items included with your theme.
Usually, they will all be downloadable from the theme developer backend for your specific theme.
Next, it will show up here. After your theme’s name shows up next to Choose File, you can click on upload.
And that’s pretty much it!
The steps that vary after this tend to vary from theme to theme.
You may have some theme customizations, plugins to install, and other changes you must make to really get things going on your end.
Chapter 12: Creating a Theme From Scratch
Creating Your Own WordPress Theme from Scratch
You probably thought we would never get here, did you?
You thought – all this guy does is drone on and on and on and on…and on about best practices. When are we really going to DO something!
Ok, you got me…but those best practices are important!
There’s not much of an introduction in this heading except…let’s just dive right in shall we?
Step 1: Setup Your Local Server Environment
First, it’s not helpful to do WordPress theme development on a hosting server that is not on your computer. There is some inconvenience in doing so.
You can accomplish a lot more when you can edit the files on your PC (or Mac) and code the site on your own.
Then, you can deploy or upload the WordPress site to your server.
Next, I wanted to show you how to set up your local server environment for this.
I recommend using MAMP or MAMP Pro (I particularly enjoy MAMP Pro due to its ease of use and the fact that its functionality is far better than other servers I have tried, such as WAMP or XAMPP).
The reason why we have to download this is because our local server environment needs to have the capability of utilizing MySQL Databases, PHP, and PHPMyAdmin.
The nice thing I like about MAMP Pro is that you can run your own Apache server, NGINX server, whatever.
Just make sure that your machine is secured by a Firewall behind your network, so any prying eyes are not able to see exactly what you are doing.
When you first bring up MAMP Pro you should see something like this screenshot above. It will have Apache, MySQL, and SMTP enabled (unless there are very different settings on your PC that prevent these things from working).
As of this writing, the PHP version is 7.2.10.
You should also (usually) have your host name as localhost, although this will change depending on your computer’s settings, whether or not you are working from home or work, and if you’re at work, what your company’s security policies are, etc.
Ok, so once you have downloaded MAMP (or MAMP Pro) and have it running, point your browser to localhost. You should see the following screen:
You should see your server name, and your document root.
The default document root is C:\MAMP\htdocs\
This is where we will store all of our WordPress files, create new folders for multiple WordPress installations, and so on.
Having the MAMP Pro server environment enabled also allows you to create new themes if you have a visual WordPress theme creator, like Extend Studio’s WordPress Site Designer 2 for Dreamweaver.
Having this or XAMPP installed and running is a requirement if you hope to achieve custom WordPress theme development on your local machine, before you deploy it to a live site.
Next, we are going to create a folder in the default MAMP htdocs folder called myfirsttheme.
After you do this, you should download and unzip the WordPress files from WordPress.org, if you haven’t done this already.
After you do that, you can then dump the files into the htdocs myfirsttheme folder, like this:
Next, we’re going to alter our wp-config-sample.php file. We need to create a username/password for this.
If we want to create a custom username/password we need to create a database and add that in phpmyadmin on our local machine.
To do this, guess where we are going to point our browser? You got it…to localhost/phpmyadmin/. Still, we need to make sure that our MAMP Pro server is still running.
By the way…I am not going to show you all of the database specifics of my machine, to all you would-be hackers out there…so you can forget about that right now… 😛
Next, we’re going to create a new database for our new site by clicking on New.
Next, we’re going to name the database newwpdb2, use the default utf8, and then click on the create button (shown below).
This new database will now appear in your left vertical database navigation menu.
Next, we have to add a user to our database.
Click on new in the database column, then click on user accounts, and then click on Add user account.
Next, we are going to create our new username and password. For obvious reasons, I will not show the password here.
But, anyway – you don’t need to change anything about the hostname at this point in time.
This next part halfway down this screen is important.
If your machine is NOT secure, I repeat, if your machine is NOT SECURE, DO NOT proceed with this step. I highly recommend that you do your WordPress development on the live server at your web host instead.
But, otherwise – for secure settings, be sure to deselect ALL columns except for the data column.
WordPress only needs the functions in the Data column in order to function properly, as mentioned by Robert Abela at WP White Security (https://www.wpwhitesecurity.com/secure-mysql-database-privileges-wordpress/).
Next, and this is structured a little weird: At the bottom of the screen, we are going to click on GO.
You should now have the following confirmation message appear:
Next, you should add the user account newwpdb2 to the database by clicking on New > user accounts > Database > selecting newwpdb2 > Go.
Next, we are ready to proceed with installing WordPress on our local machine.
We should update our wp-config-sample.php with our new information.
Where your DB_NAME is your database, your user is newadmin, and the password is your chosen password.
Next, we can go to the htdocs myfirsttheme folder and rename wp-config-sample.php to wp-config.php.
Now, we can go to our localhost/myfirsttheme in the browser and this will show up:
When it does, we can click on Continue.
If you have done everything correctly, you should see the following screen:
This is what it should look like after it’s been filled out. Please, remember — ALWAYS click on and select “Discourage search engines from indexing this site” on all sites you work on…especially on sites you work on locally.
You can always untick this later upon the launch of the site.
Next, we are going to (quite excitedly for me at this point, I might add) click on Install WordPress.
After you complete the WordPress installation, you will see this success screen:
Whoo-hoo!!
Now, we are ready to move forward with our WordPress theme creation.
We are going to proceed with our previously created real estate website.
The thing we are going to do is convert this site to a WordPress design.
Exciting, right?
WordPress Theme Conversion
When you create your WordPress theme, you should be creating the theme around the WordPress PHP, syntax, and other web development code.
But, in case you are working from a similar example like we are here, it’s not hard to convert a standard HTML 5 and CSS 3 site to WordPress.
It just requires time, patience, and a bit of skill.
Either way, you will end up with the same end result: a website theme that is built on WordPress. That’s what makes learning how to create custom themes with WordPress so powerful.
Not only do you avoid code bloat, which is all-too-often a common side effect of using WYSIWYG editors, but you also avoid the use of plugin-specific code.
Not sure if you have noticed but most visual page builders (Elementor as an example) have their own URLs coded into their plugin code.
This also translates into the backend of WordPress, so you see all of the plugin code if you go to view source in your browser.
If you are someone who does not want another colleague or anyone else to easily see what page builder you’re using, this can be a big drawback of that approach.
The code bloat is another one. While it may not result in obvious glitches at the page display level (I would hope), it can result in issues when code bloat gets out of control, and you are not entirely familiar with the page builder.
This is especially true if multiple team members are working on the same site with the same page builder.
See how something seemingly innocuous as this can get out of control very quickly?
These critical issues can all be avoided by learning how to build WordPress sites on your own.
Let’s dive right in, shall we?
Setting up the WordPress Structure
For this example, I wanted to use the custom site we built for our real estate site.
I think this will help us get more familiar with how the inner workings of WordPress are set up, as well as how to really nail down the structure of a standard WordPress website.
All righty, first – the website structure.
By the way – don’t forget to start MAMP PRO or your local web server of choice, since we will need to display things in that directory when we upload our theme.
The file structure of WordPress is as follows:
index.php
functions.php
header.php
content.php
sidebar.php
sidebars.php
footer.php
The procedure is that we will take our custom design that we have created, and we will split it up into header.php, content.php, sidebar.php, and footer.php.
We will also create some PHP functions that will enable widgets in the sidebar that we create.
Does that sound exciting, or what?
First, preparations: Create a file folder in your htdocs folder in your MAMP directory. Make sure MAMP PRO is running. You can pin this folder to quick access if you’re on Windows 10, if you want an easier way to access this folder.
We must create and save a blank style.css to our WordPress theme directory.
And it must have the following attributes:
/*
Theme Name: Real Estate Theme
Author: Your name
Author URL: https://shouldbeyoururl.com/
Description: Real Estate Theme
Version: 1.0
License: GNU General Public License Version 3.0
Text Domain: Real Estate Theme
Tags: responsive, WordPress, real estate
*/
First, let’s create and save a header.php file.
Next, we’re going to snip the section from our index.html file and paste it into header.php. So, your header.php file should look like this:
<!DOCTYPE html>
<html>
<head>
<title>Test website</title>
<meta name=”description” content=”” />
<?php enqueue_my_custom_styles(); ?>
<!– this is just a quick test –>
</head>
<body>
By the way, the following is our functions.php file. There are two important things in this file.
First, the sidebars.php file. This file is used to initiate widgets in the sidebar.php file.
Next is the enqueue_my_custom_styles function. This function is important because it lets us load our CSS styles. Please note that the ‘enqueue_my_custom_styles’ function must also be initiated in header.php, right where you would put the normal style tag.
<?php
require_once(‘lib/sidebars.php’);
function enqueue_my_custom_styles() {
wp_enqueue_style( ‘main-css’ , ‘http://localhost/newwordpressinstalls/NewWordpressSite1/wp-content/themes/RealEstateTheme/main.css’, false );
}
add_action( ‘wp_enqueue_scripts’, ‘enqueue_my_custom_styles’ );
?>
Here is a quick snapshot of the lib/sidebars.php file. This initiates the ability to include widgets in sidebar.php:
<?php
function _themename_sidebar_widgets() {
register_sidebar( array(
‘id’ => ‘primary-sidebar’,
‘name’ => esc_html__( ‘Primary Sidebar’, ‘_themename’ ),
‘description’ => esc_html__( ‘This sidebar appears in the blog posts page.’, ‘_themename’ ),
‘before_widget’ => ‘<section id=”%1$s” class=”c-sidebar-widget u-margin-bottom-20 %2$s”>’,
‘after_widget’ => ‘</section>’,
‘before_title’ => ‘<h5>’,
‘after_title’ => ‘</h5>’
) );
}
add_action(‘widgets_init’, ‘_themename_sidebar_widgets’);
Next, we’re going to take the entire section after the <body> tag, beginning at <div id=”top-header”> and ending at <div id=”between”></div> and we’re going to paste it into content.php.
<div id=”top-header”>
<div id=”headerwrapper”>
<div id=”column1leftheader”>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/real-estate-genius-logo.png” width=”234″ height=”56″ alt=”Logo”>
</div>
<div id=”column2centerheader”>
<form>
<input type=”text” value=”Site Search” class=”searchinput1″>
</form>
</div>
<div id=”column3rightheader”>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/call-us.png” width=”227″ height=”73″ alt=”Call Us”>
</div>
</div>
</div>
</div>
<div id=”navcontainer”>
<div id=”nav”>
<nav role=”navigation”>
<ul>
<li><a href=”about-us.html”>About Us</a></li>
<li><a href=”locations.html”>Locations</a>
<ul class=”dropdown”>
<li><a href=”anaheim.html”>Anaheim</a></li>
<li><a href=”orange.html”>Orange</a></li>
<li><a href=”buena-park.html”>Buena Park</a></li>
<li><a href=”tustin.html”>Tustin</a></li>
<li><a href=”costa-mesa.html”>Costa Mesa</a></li>
<li><a href=”newport-beach.html”>Newport Beach</a></li>
<li><a href=”villa-park.html”>Villa Park</a></li>
<li><a href=”long-beach.html”>Long Beach</a></li>
<li><a href=”huntington-beach.html”>Huntington Beach</a></li>
</ul>
</li>
<li><a href=”featured-listings.html”>Featured Listings</a></li>
<li><a href=”mls-property-search.html”>MLS Search</a></li>
<li><a href=”contact-us.html”>Contact Us</a></li>
<li><a href=”/blog/”>Blog</a></li>
<li><a href=”resources.html”>Resources</a></li>
</ul>
</nav>
</div>
</div>
<div id=”heroimage”>
<div id=”searchlistings”>
<img class=”searchlistings” src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/search-listings.png” width=”428″ height=”164″ alt=”Search Our Listings”>
</div>
</div>
<div id=”container”>
<div class=”col-xs-12 xs-column-reverse”>
<div id=”main-wrapper”>
<div id=”column1″>
<h1>Lorem ipsum dolor sit</h1>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque lobortis enim vel est luctus, sit amet laoreet neque dictum. Nullam ut mi tempor, lacinia leo id, facilisis eros. Aenean enim est, suscipit et arcu vitae, fringilla lacinia odio. Sed ornare lobortis nisl, a finibus velit aliquet eget. Sed in odio at lacus egestas dapibus ac vel mauris. Fusce gravida consequat lectus eu pellentesque. Pellentesque iaculis posuere pretium. Fusce eu ex egestas, dignissim enim vel, tincidunt enim. Aliquam feugiat congue dapibus. Nulla non aliquet ante. Duis eu diam turpis. Vestibulum et rhoncus ipsum, sit amet convallis lectus. Nulla fringilla metus ultrices purus bibendum, et volutpat diam facilisis.</p>
<h2>Lorem ipsum dolor sit amet 2</h2>
<p>Cras ac faucibus lacus. Proin nec tortor non nunc convallis auctor. Nullam dignissim arcu eget quam pulvinar, a rhoncus quam laoreet. In ut dui tempus, condimentum sapien quis, efficitur nulla. Nullam imperdiet maximus tortor, quis convallis felis. Nulla imperdiet nisl sapien, a aliquam lacus vestibulum vitae. Nulla facilisi. Donec blandit tortor quam, lobortis sollicitudin lorem bibendum tempor. Maecenas varius erat est, ut ornare augue ullamcorper quis. Ut eget ante nisi. Cras sed elit at dui consequat mollis. Aliquam non lacus lobortis, hendrerit lectus id, finibus justo. Ut quis bibendum mi, a cursus nisi. Vestibulum ut mauris a diam mollis accumsan in non eros. Nullam rhoncus ut lorem tristique congue. Phasellus ut turpis quis risus pulvinar convallis.</p>
<h2>Lorem ipsum dolor sit amet 2</h2>
<p>Fusce vestibulum odio turpis, at luctus sem interdum ut. Praesent neque dolor, sodales in dapibus a, pulvinar sed felis. Curabitur eget elementum nunc, vel venenatis lectus. Pellentesque in metus nulla. Vivamus facilisis ultricies mi eu aliquet. Aliquam erat volutpat. Cras metus nisi, condimentum eu malesuada vestibulum, luctus eu nunc. Mauris sed elementum neque. Ut quis cursus elit. In hac habitasse platea dictumst.</p>
<h2>Lorem ipsum dolor sit amet 2</h2>
<p>Maecenas ex est, tincidunt vel imperdiet et, dapibus eget velit. Vivamus posuere dignissim libero, nec semper nisl luctus quis. Nam nec egestas ligula. Donec mattis consequat enim id facilisis. In dictum tincidunt leo, in convallis massa eleifend gravida. Aliquam ac orci id nisl viverra lobortis. Pellentesque eleifend nisl tellus, vel rhoncus felis finibus vehicula. Donec non lacus sed nunc commodo suscipit eget vel ex. Duis non velit nec ligula malesuada pulvinar. Vestibulum fringilla massa ac velit commodo fringilla. Donec semper purus nulla, non placerat erat mattis in. Cras convallis magna felis, sit amet molestie nulla pulvinar ut. Nulla non augue mollis, sodales quam volutpat, tincidunt massa. Maecenas convallis ex non magna aliquet, ut condimentum enim faucibus. Morbi vitae consequat ex, non aliquet ipsum.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque lobortis enim vel est luctus, sit amet laoreet neque dictum. Nullam ut mi tempor, lacinia leo id, facilisis eros. Aenean enim est, suscipit et arcu vitae, fringilla lacinia odio. Sed ornare lobortis nisl, a finibus velit aliquet eget. Sed in odio at lacus egestas dapibus ac vel mauris. Fusce gravida consequat lectus eu pellentesque. Pellentesque iaculis posuere pretium. Fusce eu ex egestas, dignissim enim vel, tincidunt enim. Aliquam feugiat congue dapibus. Nulla non aliquet ante. Duis eu diam turpis. Vestibulum et rhoncus ipsum, sit amet convallis lectus. Nulla fringilla metus ultrices purus bibendum, et volutpat diam facilisis.</p>
<h2>Lorem ipsum dolor sit amet 2</h2>
<p>Cras ac faucibus lacus. Proin nec tortor non nunc convallis auctor. Nullam dignissim arcu eget quam pulvinar, a rhoncus quam laoreet. In ut dui tempus, condimentum sapien quis, efficitur nulla. Nullam imperdiet maximus tortor, quis convallis felis. Nulla imperdiet nisl sapien, a aliquam lacus vestibulum vitae. Nulla facilisi. Donec blandit tortor quam, lobortis sollicitudin lorem bibendum tempor. Maecenas varius erat est, ut ornare augue ullamcorper quis. Ut eget ante nisi. Cras sed elit at dui consequat mollis. Aliquam non lacus lobortis, hendrerit lectus id, finibus justo. Ut quis bibendum mi, a cursus nisi. Vestibulum ut mauris a diam mollis accumsan in non eros. Nullam rhoncus ut lorem tristique congue. Phasellus ut turpis quis risus pulvinar convallis.</p>
<h2>Lorem ipsum dolor sit amet 2</h2>
<p>Fusce vestibulum odio turpis, at luctus sem interdum ut. Praesent neque dolor, sodales in dapibus a, pulvinar sed felis. Curabitur eget elementum nunc, vel venenatis lectus. Pellentesque in metus nulla. Vivamus facilisis ultricies mi eu aliquet. Aliquam erat volutpat. Cras metus nisi, condimentum eu malesuada vestibulum, luctus eu nunc. Mauris sed elementum neque. Ut quis cursus elit. In hac habitasse platea dictumst.</p>
<h2>Lorem ipsum dolor sit amet 2</h2>
<p>Maecenas ex est, tincidunt vel imperdiet et, dapibus eget velit. Vivamus posuere dignissim libero, nec semper nisl luctus quis. Nam nec egestas ligula. Donec mattis consequat enim id facilisis. In dictum tincidunt leo, in convallis massa eleifend gravida. Aliquam ac orci id nisl viverra lobortis. Pellentesque eleifend nisl tellus, vel rhoncus felis finibus vehicula. Donec non lacus sed nunc commodo suscipit eget vel ex. Duis non velit nec ligula malesuada pulvinar. Vestibulum fringilla massa ac velit commodo fringilla. Donec semper purus nulla, non placerat erat mattis in. Cras convallis magna felis, sit amet molestie nulla pulvinar ut. Nulla non augue mollis, sodales quam volutpat, tincidunt massa. Maecenas convallis ex non magna aliquet, ut condimentum enim faucibus. Morbi vitae consequat ex, non aliquet ipsum.</p>
</div>
<div id=”between”></div>
Next, we’re going to take the entire section at <div id=”column2”> all the way down to the last <div> tag and add it to sidebar.php.
<div id=”column2″>
<h1 class=”column2″>Watch Our Videos!</h1>
<div class=”column2″>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/watch-video.png” width=”301″ height=”231″ borde=”0″ alt=”Watch the video”><br>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/watch-video.png” width=”301″ height=”231″ borde=”0″ alt=”Watch the video”><br>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/watch-video.png” width=”301″ height=”231″ borde=”0″ alt=”Watch the video”><br>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/watch-video.png” width=”301″ height=”231″ borde=”0″ alt=”Watch the video”><br>
<img src=”http://localhost/newwordpressinstalls/newwordpresssite1/wp-content/themes/realestatetheme/images/watch-video.png” width=”301″ height=”231″ borde=”0″ alt=”Watch the video”><br>
<aside role=”complementary”>
<?php dynamic_sidebar( ‘primary-sidebar’ ) ?>
</aside>
</div>
</div>
<br class=”clear” />
</div>
</div>
</div>
</div>
Remember our sidebars.php file earlier, and the line ‘primary-sidebar’ included? This is how we initiate the sidebar widgets to appear in our sidebar, by including the code from <aside> to </aside>.
Then, we’re going to take the entire footer beginning at <div id=”newsletter”> and ending at the closing </body></html> tags.
We should now have the following PHP files:
header.php
content.php
footer.php
sidebar.php
Next, we can begin to build our index.php file.
To do so, we need to call each of these files and put them together into one file. Sounds simple right?
It is, when you know the process.
This is what our index.php file will look like afterward:
<?php get_header(); ?>
<?php get_template_part( ‘content’ ); ?>
<?php get_sidebar(); ?>
<?php get_footer(); ?>
Most of this should be self-explanatory.
If they’re not, here’s a brief explanation for each:
<?php get_header(); ?>
This line calls our header.php file. There is no need to directly reference header.php.
<?php get_template_part( ‘content’ ); ?>
This line calls our content.php file. Again, there is no need to directly reference content.php.
<?php get_sidebar(); ?>
And again, this line references our sidebar.php file.
<?php get_footer(); ?>
Finally, this line references our footer.php file.
After all of these steps are complete, you are ready to upload your theme package to WordPress.
Just login to WordPress on your local server, and click on Appearance > Themes.
Before uploading, be sure to zip your theme up accordingly.
Upload your newly-zipped theme to WordPress.
When you activate your theme, everything should be working properly.
This is barebones basic WordPress theme development.
If you wish to become an even more competent developer, you will need to know about the following:
page.php
single.php
the loop
Here are some further resources that will be useful diving into each of these topics:
Page.php – how to create a custom page in WordPress
https://www.wpbeginner.com/wp-themes/how-to-create-a-custom-page-in-wordpress/
Page.php – page templates
https://developer.wordpress.org/themes/template-files-section/page-template-files/
Single.php – how to create custom single post templates in WordPress
Single.php – creating a custom single.php template
https://askwpgirl.com/creating-a-custom-single-php-template/
Single.php – how to create custom single-post templates in WordPress
https://getflywheel.com/layout/create-custom-single-post-templates-wordpress-how-to/
The Loop
https://codex.wordpress.org/The_Loop
The Loop
https://developer.wordpress.org/themes/basics/the-loop/
4+ Ways to Loop with WordPress
https://digwp.com/2011/05/loops/
Do You Want to Learn Even More WordPress? This Course on Udemy is Highly Recommended:
https://www.udemy.com/the-complete-guide-to-building-premium-wordpress-themes/
Bonus Chapter 13: WordPress Hacks
WordPress Theme Hacks That You Should Know About
I love WordPress.
The scope of its functionality is limited only by your imagination and what you think you can do.
And, when you have figured out what you think you can do, you can run into more ways to customize the WordPress framework to your liking.
Let’s take a look at some WordPress Theme hacks you need to know, and some that are also “fun to know.”
Customizing Your WP-Admin Login Page
Did you know that you can customize your login page? It’s true!
You can add just a couple of tweaks in your functions file. And this will allow you to customize your login page.
In your current theme directory, just add a folder called “login.”
Then, you can create a CSS file in the login folder. Name this file custom-login-styles.css.
Next, you will want to add the following code into your functions.php file:
function my_custom_login() {
echo ‘<link rel=”stylesheet” type=”text/css” href=”‘.get_bloginfo(‘stylesheet_directory’) . ‘/login/custom-login-styles.css” />’;
}
add_action(‘login_head’, ‘my_custom_login’);
Now, all you have to do is customize your CSS file – custom-login-styles.css.
Pretty sweet, eh?
Use a Custom Page as Your Homepage Instead of Blog Posts
Did you know that you can set a custom page as your homepage? It’s true.
In fact, you can set up a custom design to represent your homepage by performing a few simple clicks.
Just click on Settings > Reading. Select and customize whatever you want below.
Keep Your User Account Logged in for a Longer Time Frame
Did you know that you can extend the amount of time that WordPress keeps you logged in for?
It’s not in user options, but you can do this through code.
The default amount of time that WordPress will keep you logged in for is 2 weeks, if you check the “Remember me” box during the time that you’re logged in.
You can, however, choose whether or not you want to be logged in for a shorter time frame, or a longer time frame.
add_filter( ‘auth_cookie_expiration’, ‘stay_logged_in_for_1_year’ );
function stay_logged_in_for_1_year( $expire ) {
return 31556926; // 1 year in seconds
}
The number 31556926 is the amount of seconds in 1 year. If you want to stay logged in longer or shorter, enter the appropriate amount here when you implement the code.
Don’t Forget to Change / Protect Your Login Page along with Your User ID
Remember, thousands of sites use WordPress. It is not unheard-of for hackers to try and guess your login by using your login page and user ID.
One of the most prevalent user IDs is “admin.” Do you realize how easy it is to guess a password once someone knows your user ID?
For that matter, everyone is also familiar with the location of the WordPress standard login URL.
All you have to do is append your site’s URL with the usual – /wp-admin/ or /wp-login.php.
Then, that’s all someone has to do to gain access to the website, once they guess the password, of course.
I highly recommend that you change both your login page and main login user ID.
CodeinWP Editorial writes, on https://www.codeinwp.com/blog/secure-your-wordpress-website/:
“1. Set up a website lockdown feature and ban users
A lockdown feature for failed login attempts can solve the huge problem of continuous brute force attempts. Whenever there is a hacking attempt with repetitive wrong passwords, the site gets locked, and you get notified of this unauthorized activity.
I found out that the iThemes Security plugin is one of the best such plugins out there, and I’ve been using it for quite some time. The plugin has a lot to offer in this respect. Along with over 30 other awesome WordPress security measures, you can specify a certain number of failed login attempts before the plugin bans the attacker’s IP address.
2. Use two-factor authentication for WordPress security
Introducing a two-factor authentication (2FA) module on the login page is another good security measure. In this case, the user provides login details for two different components. The website owner decides what those two are. It can be a regular password followed by a secret question, a secret code, a set of characters, or more popular, the Google Authenticator app, which sends a secret code to your phone. This way, only the person with your phone (you) can log in to your site.
I prefer using a secret code while deploying 2FA on any of my websites. The Google Authenticator plugin helps me with that in just a few clicks.”
He/she also mentions other WordPress security tips, like:
- Change your login passwords frequently,
- Use SSL to encrypt data,
- Add user accounts, but make sure you take care while doing so. Something like forcing strong passwords can add an extra layer of security,
- Make backups regularly,
- Change the WordPress table prefix in the mySQL database,
- And much more.
These are some excellent WordPress security tips.
Don’t Forget to Update WordPress on a Consistent Basis
Not exactly a hack, but it is something that newbies need to know.
Yes, I understand. You’re using a framework from 2008 that, quite frankly, does not cut it anymore and you’re afraid of breaking the entire site.
If your website is 10 years out of date, then I’m sorry, but you’re going to have to bite the bullet and re-create it from scratch to match today’s technologies.
If such a simple procedure is something that will cause massive issues and/or result in the permanent bricking of your site, well, I’m going to be blunt here.
You NEED, nay, you MUST update WordPress on a consistent basis in order to prevent your site from being compromised.
Or, perhaps you have a few plugins that won’t play nice with each other after you update.
Or maybe you absolutely hate Gutenberg (I know, I feel your pain) and have zero desire to update WordPress just for that reason alone.
Well, did you know that you can download plugins that disable Gutenberg?
I highly recommend that you update your implementation of WordPress, and then disable Gutenberg if you hate it so.
Believe me, you don’t want to go through a hack that also destroys all of your backups.
That’s not going to be fun for anyone. Just be sure to keep your WordPress installation updated.
Change the Width of Your Editor to Match the Layout of Your Blog
Do you ever get that nagging feeling? That feeling that what you’re writing is just not right?
It’s not the greatest feeling in the world being that unsure about your writing, and whether or not it’s going to deliver maximum impact on your blog.
Well, you can change that.
Just modify the width of your WordPress editor and make sure that it matches your blog while you’re writing.
Bet you didn’t know you could do that! (you WordPress gurus don’t have to respond to this one)…
Simply use the keyboard shortcuts to make it narrower and wider (accordingly): CTRL and -, and CTRL and +.
One caveat on this: if your cursor is flashing inside the body of the page or your headline, this hack is not going to work.
Be sure to click outside the editor and try the shortcut again.
Odd Text Formatting and How to Avoid It When Pasting Text from Elsewhere
You have likely been the unwitting victim of that odd text formatting.
You know the drill.
You copy/paste text from somewhere that you think is safe. Like a quote, from Word, or another blog.
If you haven’t copied and pasted it just right, you end up with weird formatting.
Things like extra DIVs everywhere, strange formatting tags in the code behind the scenes, and other strange formatting tricks that will leave you dumbfounded.
There are two ways to do this that are optimal.
The first way involves the keyboard shortcut CTRL + SHIFT + V (Windows), and CMD + SHIFT + V (Mac).
This is – in theory – supposed to remove any additional formatting.
However, I have seen situations where if you copy and paste from Word or another program directly into WordPress (like Google Docs) that you will end up with other strange formatting that you hadn’t anticipated either.
The best way to ensure that you don’t get any strange formatting whatsoever, is to copy/paste from Word into Notepad to strip all formatting 100%, and then take the text and CTRL + SHIFT + V into Word. Or CTRL + V.
This way, your text retains its exact unformatted awesomeness, and you can copy and paste it to your heart’s content.
All you have to do is format it within WordPress on the other side.
Other Tips to Enhance Your WordPress Site’s SEO
While the above explores development and other things associated with creating a site from scratch, there are some WordPress-specific SEO things you can do to boost your WordPress SEO.
Don’t Forget to Set Your Permalinks!
These are extremely important. If you don’t set your permalink structure, you can run into the situation where you have a URL that looks like this:
domainname.com/2017/08/09/987123987e298771!&#@!
Ideally, I recommend a WordPress permalink structure that reflects the post / page category, and the name of the post.
Something like the following:
domainname.com/category/page-name-or-post-name
domainname.com/personal-injury/how-can-i-recover-from-my-injury
WordPress Is Not Search Engine Optimized Out of the Box – You Must Hire an SEO Professional to Help You
Even though this article was written in 2015, its implications hold true in 2022 regardless of where you are on the SEO spectrum. Trond Lyngbø on Search Engine Land writes:
“There isn’t any such a thing as a search engine optimized CMS. Though WordPress is search engine friendly, you will still need to do some manual SEO work for best results. Just switching to WordPress won’t rank your site on Google’s front page auto-magically.
The myth of the “SEO Optimized CMS” continues to spread only because CMS vendors have made it a unique selling point. They announce it at client meetings. They proudly state it on their websites. They highlight it on marketing materials. They speak of it at conferences.
And it works!
Business owners or leaders without much technical knowledge about SEO often cannot distinguish between the similar-sounding terms “search engine optimized” and “search engine friendly.” I’ve seen companies invest the equivalent of annual salaries of a team of employees on a new CMS that was chosen over others only because they believed it would cover all their SEO needs.
Sadly, that’s not how it works. What WordPress does offer is a great starting point. You can build a site without spending much time or money, and easily weave additional SEO elements into it — if you know how.”
Trond also writes the following about WordPress themes, and I agree – there are a great many free themes available that you can choose from, and they can all help you, especially if you do a ton of SEO testing.
“A great benefit of WordPress is the huge array of free themes available. Many are harmless and are great choices for any website pr blog. Some, however, can hurt your SEO. Consider the following:
Are There Any Spammy Links? A WordPress theme that’s given away as part of a link network or SEO tactic can hurt your organic search visibility and SEO results. If you are not permitted to remove links, don’t use the theme or template.
Will It Be Updated And Supported? Few free themes are patched against security vulnerabilities or upgraded for future WordPress releases. That could be bad for your SEO.
What Do Others Say About It? User reviews and feedback can tell you if the developers are trusted and have a good reputation.
Does It Follow Google’s Guidelines And SEO Best Practices? Run a quick quality check on the demo site and see if it meets Google’s guidelines, is mobile friendly, loads quickly and is coded well. This research can save you plenty of frustration later on.
Is It Well Crafted And Mobile Friendly? The best themes look attractive and are coded properly, following standards and best practices.”
Don’t Forget to Uncheck “Discourage Search Engines from Indexing Your Site”!!
While during WordPress theme development, I wrote earlier that you should check the box next to “discourage search engines from indexing your site,” don’t forget that you should ALWAYS uncheck it as soon as you are ready to launch your finished site.
If you have problems later due to a website redesign, always check this first.
I can’t tell you how several problems with indexing and ranking issues were fixed because of this one tiny thing that wasn’t done at the outset.
In fact, in most of my past positions that utilized WordPress, it was a requirement that we always periodically check for such things, simply because of how easy it can be to re-check it again.
Also, Don’t Forget about Installing an SEO Plugin, and Using Rel=Canonical Tags!
Rohit Palit on the TechTage blog writes the following:
“Installing a good SEO plugin is a must because it can take good care of numerous SEO aspects of your blog automatically. As soon as you install one, you should enable the rel=”canonical” tag for pages on your blog. It helps search engines to determine the original source URLs of content on your blog. That way, it helps eliminate duplicate content issues from WordPress sites.
I personally prefer using the All in One SEO Pack by Michael Torbert. It provides users a broad range of options regarding link canonicalization, page titles, meta description, keyword optimization, no indexing categories, tags and archives, Google Plus authorship, Google Analytics and Google Webmaster Tools verification. So many options under the hood make me love the plugin so much.
Another popular SEO plugin for WordPress is Yoast by Joost de Valk.
If you can afford a paid plugin, I’d suggest Squirrly. In addition to SEO, it helps you out with keyword selection (by analyzing keyword competition and search trends) and various other elements of SEO. When you’re writing a new article, Squirrly’s live assistant tells you about how optimized that article is, SEO-wise. It also includes all-in-one SEO Analytics that shows information about Google indexation, social metrics, inbound links and a variety of other things.”
You Should Nofollow Links That Are Not Trustworthy and That Are Useless
By default, the search engine spiders are all capable of crawling and indexing a web page.
They only stop spidering in the case of explicit directives in places like the robots.txt file, and using nofollow and/or noindex.
Rohit of TechTage also explains:
“Basically, a hyperlink with a rel=”nofollow” attribute on a webpage means that the webpage tells the search engine spiders not to ‘follow’ the link and that it doesn’t guarantee the reliability of the linked page. Additionally, adding a rel=”nofollow” attribute to a link ensures that it gets no PageRank points from the page the link was posted on.
Google advises that webmasters set unrelated links as nofollow. This includes paid advertisements on websites with links to the advertisers’ websites. Generally, you should nofollow links (such as a link to the RSS feed) that are either unrelated to the website that they’re posted on, or are not useful to search engines. You can check out what Google has to say about it.”
Don’t Forget to Block Spam Comments!
Spam comments are horrible, inane pieces of trash that only serve to frustrate the webmaster and provide a bad impression of your site to any users who read it.
In fact, you may want to block spam comments altogether! Rohit also writes:
“New versions of WordPress do a very good job in nofollowing links posted by users in comments. You can prevent spam comments from getting posted in the first place implementing these 3 simple methods.
So, why are spam comments bad for your blog? First of all, they don’t contribute anything to the topic and annoy legit users. Secondly, if a post on cars get a comment saying things about ‘cheap viagra,’ search engines don’t like that.
In that case, there’s a chance that the page will be flagged as spam by search engines and your site will get penalized. “Preventing spammers from doing bad stuff on your site is the only effective way” in this case – according to Gareth Bull from Bulldog SEO.”
Don’t Forget to Use Proper Semantic Structure for SEO When You Code Your Content
“There isn’t really any “proper” coding method that will help you rank for SEO,” Google has said on multiple occasions.
But, they are contradictory in and of themselves.
In fact, their webmaster guidelines even state that you should use W3C code validation as a standard against how you should code your page. This could help rankings indirectly by improving the user experience, however.
Where does proper semantic structure for SEO fit in?
A well-structured page is good for SEO because this leads to better understanding of the context of your content, and how it is arranged on your page.
All the more, it also further increases the quality of your page because these coding signals are present.
Using paragraph tags for paragraphs, H1 tags for main headers, and proper tags for unordered lists vs. ordered lists, etc. are all important habits to form and use during your WordPress site development.
It’s also important to know that in HTML 5, there is a difference between using tags like <strong> and <b>.
In HTML 5, <b> just means bold and is used for marking up “offset text conventionally styled in bold.”
Strong has a semantic meaning that means any text wrapped with it “represents a span of text with strong importance.”
There are, however, more semantic elements that you can choose from, including:
- <article>
- <aside>
- <details>
- <figure>
- <footer>
- <header>
- <main>
- <nav>, etc.
Be sure to visit this page for a complete list of semantic elements that you can use in HTML.
For these reasons, and others, it is important to really nail down the semantic difference and application of your tags and how you code your pages in WordPress (or any other platform, really).
Don’t Forget to Check How Any Theme You Purchase Handles Header <h1>, Etc. Tags
David Atlard of CollectiveRay writes the following:
“Very important as part of your onpage SEO techniques are your content headers. H1-H6 tags are a critical part of your on-page search engine optimization structure. For years now, those headings have been used to notify the reader (and also the search engines) what the hierarchy of the information on the page is, and what’s more and less important.
The idea is simple:
- H1 – main, top-level heading – it’s what the page is about. It’s somewhat of a standard to only use one H1 tag on a single page. Google also recommended that in the past, so don’t put multiple H1 tags
- H2 – secondary heading – it’s what a section on the page is about.
- H3 – third level heading … and so on.
- Check how your theme handles those headings. To do so:
- Visit any given post.
- View source by pressing Ctrl+U (Windows) or ⌘-Option-U (Mac) in most web browsers.
- Press Ctrl+F (or ⌘-F) to find all instances of H1 and H2 tags. See if they make sense and present a good structure of the document:
When it comes to the order in which the tags appear, apparently it’s not that important. Not just me saying, but Matt Cutts as well.”
This backtracks to our discussions on semantic SEO and how proper semantic coding structure can impact your WordPress pages.
WordPress Site Development Is a Different Beast than Standard Site Creation, but Well Worth Learning in the End
Anything worth learning takes time.
WordPress theme creation is no different, and once you master the basics, the only way for you to go is up.
WordPress theme creation is different in one aspect – there is a large market for just about any type of theme you can think of when you create them.
You can create your own premium theme and sell them on Theme Forest for a great price.
Or, you can set up your own WordPress development business if you want.
There is (for the most part) no shortage of potential client prospects if you target the right industries.
But, at the end of the day, this is a guide by SEOs for SEOs. I wanted to give you the basics so that if you are not familiar with WordPress from the development side, you can use more information to further your requests and get things done.
The more knowledge you have of the basics, the more you can communicate with developers to get what you want to have happen, happen.
The more knowledge you have of the basics, the more you can empower yourself to affect positive change when you are working with a team behind a WordPress website.
And plus, the more knowledge you have, the more you can add to your resume or CV. The more you can boost your career.
Lastly, creating websites and being able to use your own SEO-specific requirements to target common SEO issues is just so darn fun.
When do you plan on putting these techniques to use and creating your own WordPress website?