# data[].attributes.attachment_link.readable_text
Google AdSense is one of the most popular ways to monetize your website. It allows you to automatically sell your website's ad space to advertisers and get paid. AdSense is one of the easiest way to start making money online with your website. In this... Read More "

Featured WordPress Plugins

WordPress Deals & Coupons

Get 25% off on VisualModo's collection of beautiful WordPress themes. View this Deal "

Get 33% OFF RingCentral, a popular VoIP and business communications solution. View this Deal "

# data[].attributes.attachment_link.title
WPBeginner - Beginner's Guide for WordPress

# data[].attributes.attachment_link.description
Google AdSense is one of the most popular ways to monetize your website. It allows you to automatically sell your website's ad space to advertisers and get paid. AdSense is one of the easiest way to start making money online with your website. In this...

# data[].attributes.attachment_link.readable_text
Do you want to start a WordPress blog the right way? We know that starting a blog can be a terrifying thought specially when you are not geeky. Guess what - you are not alone. Having helped over 370,000+ users create a blog, we have decided to create the most comprehensive guide on how to start a WordPress blog without any technical knowledge.

The process is easy to follow whether you are 20 years old or 60 years old. However if you need help, our expert team will help you setup your blog for free. → Click Here to Get Your Free WordPress Blog Setup! ←

What do you need to start a WordPress blog?

There are three things you need to create a WordPress blog:

1. A domain name idea (this will be the name of your blog i.e wpbeginner.com)

2. A web hosting account (this is where your website live on the internet)

3. Your undivided attention for 30 minutes.

Yes, you read it right. You can start a blog from scratch in less than 30 minutes, and we will walk you through the whole process, step by step.

In this tutorial, we will cover:

How to Register a Domain Name for Free

How to Choose the Best Web Hosting

How to Install and Setup WordPress Blog

How to Change Your Blog Design Template

How to Write Your First Blog Post

How to Customize WordPress Blog with Plugins

How to Add a Contact Form

How to Setup Google Analytics Tracking

How to Optimize Your Website for SEO

How to Make Money From Your Blog

Resources to Learn and Master WordPress

Ready? Let's get started.

Video Tutorial

If you don't like the video or need more instructions, then continue reading.

Step 1. Setup

The biggest mistake beginners make when building a blog is choosing the wrong blogging platform. Thankfully you're here, so you won't be making that mistake.

For 95% of users, it makes more sense to use WordPress.org also known as self-hosted WordPress. Why?

Because it is free to use, you can install plugins, customize your blog design, and most importantly make money from your blog without any restrictions (see the difference between WordPress.com vs WordPress.org).

WordPress is also the number one website platform used by all successful blogs. To put in perspective, 34% of all websites on the internet use WordPress!

Now you might be wondering why is WordPress free? What's the catch?

There's no catch. It's free because you have to do the setup and host it yourself.

In other words, you need a domain name and web hosting.

A domain name is what people type to get to your website. It's your website's address on the internet. Think google.com or wpbeginner.com

Web hosting is where your website files live. It's your website's house on the internet. Every website needs web hosting.

A domain name typically costs around $14.99 / year, and web hosting normally costs $7.99 / month.

That's a lot of money for beginners who are just starting out.

Thankfully, Bluehost, an official WordPress recommended hosting provider, has agreed to offer our users a free domain name and over 60% off on web hosting.
→ Click here to Claim this Exclusive Bluehost offer ←
Bluehost is one of the oldest web hosting companies on the internet. They are also the largest brand name when it comes to WordPress hosting because they host millions of websites including many of our own.

On top of all this, Bluehost has been working with WordPress since 2005, and they are committed to giving back. That's why they have promised us that if you cannot get your blog online within 30 minutes by following this tutorial, then our expert team will complete the process for you without any cost. They will compensate us, so you don't have to. Contact us for free blog setup help.

NOTE: At WPBeginner we believe in transparency. If you sign up with Bluehost using our referral link, we will earn a small commission at no extra cost to you (in fact, you will save money and get a free domain). We would get this commission for recommending just about any WordPress hosting company, but we only recommend products that we use personally use and believe will add value to our readers.

Let's go ahead and purchase your domain + hosting.

Open up Bluehost in a new window and follow along.

First thing you need to do is click on the green Get Started Now button to get started.

On the next screen, select the plan that you need (basic and plus are the most popular).

After that, you will be asked to enter the domain name for your website.

Lastly, you will need to add your account information and finalize the package info to complete the process. We recommend going with the 36-month plan because that's the best value.

On this screen, you will see optional extras that you can purchase. It's entirely up to you whether or not you purchase these, but we generally don't recommend purchasing them right away. You can always add them later on, if you decide that you need them.

Once completed, you will receive an email with details on how to login to your web hosting control panel (cPanel). This is where you manage everything from support, emails, among other things. But most importantly, this is where you install WordPress.

Step 2. Install WordPress

When you signup with the new version of Bluehost using our link, they will automatically install WordPress for you. This new version was recently launched to make it easier for non-techy users to create their blog.

What this means is you simply need to login to your Bluehost account, and then click the Login to WordPress button to get started.

You can also login to WordPress by simply going to yoursite.com/wp-admin/ directly from your browser.

If you are using a different WordPress blog hosting service like SiteGround, HostGator, WP Engine, etc, then you can see our comprehensive guide on how to install WordPress for step by step instructions for those providers.

Once WordPress is setup, you're ready to customize your blog's appearance to make it your own and start blogging.

Step 3. Selecting Your WordPress Theme

The visual appearance of your WordPress blog is controlled by themes. When you first visit your blog, it will look something like this:

This is not very appealing to most people.

Customizing the look and feel of your blog is by far one of the most exciting and rewarding part in the journey of creating your WordPress blog.

There are thousands of pre-made WordPress themes that you can install on your site. Some of them are free themes, while others are paid.

You can change your theme by going to your WordPress dashboard and clicking on Appearance " Themes.

Go ahead and click on the Add New button.

On the next screen, you will able to search from 7,400+ free WordPress themes that are available in the official WordPress.org themes directory. You can sort by popular, latest, featured, as well as other feature filters (i.e industry, layout, etc).

You can take your mouse over to a theme, and you will see a Preview button. Clicking on it will open the theme preview where you can see how the design would look on your website.

The preview of your theme may not look exactly as shown in the screenshot, which is normal as you will get to customize and set it up later. What you need to look for is design, colors, typography, and other elements.

The best tip to select the perfect WordPress theme is to strive for simplicity in design. It helps you keep things clean and clear while offering a good experience to your users.

When you have found the theme that you like, simply bring your mouse on it, and it will show the Install button. Click on it and wait for the theme to be installed. After that, the install button will be replaced with an Activate button. You need to click on it to Activate the theme.

Once you have installed your theme, you can customize it by clicking on the Customize link under the Appearance menu.

If you need help selecting a theme, then please refer to our guide on 9 things you should consider when selecting a perfect WordPress theme.

Once you have selected your WordPress theme, you are now ready to create your first blog post.

Step 4. Creating Your First Blog Post

To write a blog post, click on the Posts " Add New menu in your WordPress dashboard.

You will see an editor area where you can write your first blog post.

WordPress uses a block-based editor where each element is a block. This allows you to create beautiful content layouts for your blog posts.

To familiarize yourself with the editor, see our WordPress block editor tutorial.

Once you're done writing, go ahead and click on the Publish button on the top-right corner of the screen to make your blog post publicly available.

On the posts screen, you will notice several other sections such as Categories and Tags. You can use these to organize your blog posts into sections. We have a great writeup on the difference between categories vs tags, which we highly recommend that you read.

To utilize all the features on the posts screen, you should read our article on how to add a new post in WordPress (video included).

Often beginners are confused between posts and pages menu in the WordPress dashboard. That's why we have also written a complete guide on the difference between posts vs pages in WordPress.

Step 5. Plugins & Customizations

Once you have written your first sample blog post, you probably want to get started with adding other usual elements on your website such as contact forms, galleries, sliders, newsletter subscription form, etc.

To add all these additional features, you need to use plugins.

WordPress plugins are apps that allow you to add new features to your website (without writing any code).

There are over 55,000 WordPress plugins available in the free WordPress plugin directory alone. This means no matter what you want to accomplish, there is a plugin for it.

We have a step by step guide on how to install a WordPress plugin.

That being said, let's take a look at how to use plugins to add some essential features to your WordPress blog.

How to Create a Contact Form in WordPress

Every website needs a contact form. It allows your users to email you directly. Since WordPress doesn't come with a built-in contact form, you will need a WordPress form builder plugin to add a contact form on your site.

We recommend using the WPForms Lite plugin. It is a free version of the popular WPForms plugin, which is #1 in our list of best contact form plugins for WordPress.

Over 3 million websites use WPForms!

You can install the plugin by going to Plugins " Add New page and typing WPForms in the search box. Next, you need to click "Install" and then "Activate". Upon activation, you need to head over to WPForms " Add New page to create your first form.

This will open the WPForms builder interface.

First, you need to enter a name for your contact form and then click on 'Simple Contact Form' template.

WPForms will now create a simple contact form for you with all the required fields. You can click on any field to change it, or add a new field from the left column.

Once you are done editing the form, click on the save button at the top right corner and then exit the form builder.

You can now create a new page in WordPress by going to Pages " Add New and call it 'Contact'. On the edit screen, you need to enter the WPForms block into the editor.

After that, select the form you created earlier from the drop down menu and WPForms will load a live preview of the form in the editor.

You can now save and publish the page and visit it in your browser to see your contact form in action.

If you need more detailed instructions, then see our step by step guide on how to create a contact form in WordPress.

How to Setup Google Analytics Tracking

Google Analytics helps you see how many people are visiting your blog, where they are coming from, and what are they doing on your website?

It is best to install Google Analytics when starting your blog, so you can see how much your blog has grown over time.

First, you need to visit Google Analytics website and sign in using your Gmail account.

Once you are logged in, you can go ahead and sign up for a free Google Analytics account.

You will be asked to provide your information and website URL. After that, you will be presented with your Google Analytics tracking code.

You can stop here because we will be using a plugin to automatically fetch and add this code to your blog (along with setting up proper WordPress tracking).

Switch to your WordPress admin area to install and activate the MonsterInsights plugin. It is the free version of the best Google Analytics plugin for WordPress, and it is the easiest way to add Google Analytics on your site (trusted by over 2 million websites).

Upon activation, you need to visit Insights " Settings page to configure the plugin settings.

On the settings page, click on the 'Connect MonsterInsights' button to connect Google Analytics to your WordPress site.

Follow the on-screen instructions to complete the setup. Once done, you will be able to see your website analytics report straight from your WordPress dashboard under the MonsterInsights tab.

For detailed instructions, see our article on how to install Google Analytics in WordPress.

How to Optimize Your WordPress Blog for SEO

Most beginners don't optimize for SEO when creating a blog. SEO or search engine optimization helps users find your blog in search engines. If you want more traffic, then it's crucial that you optimize your blog for SEO from the beginning.

To get started, first you need to install and activate the Yoast SEO plugin. It is the complete WordPress SEO plugin that will help you optimize your blog.

Upon activation, you will see a new menu item labeled 'SEO'. Clicking on it will take you to the plugins settings page.

The plugin comes with a quick configuration wizard to help you walk through the set up. You can also follow the instructions in our Yoast SEO guide for manual set up.

We also recommend you to follow our complete step by step WordPress SEO guide to set up your blog's SEO.

More WordPress Plugins and Customizations

There are a ton of others WordPress plugins that you can install. Often beginners find it a bit overwhelming to search for the plugins they need.

At WPBeginner, we often feature the best WordPress plugins to help you add the functionality that you need.

Here is our expert pick of the best WordPress plugins that you should check out.

If you are curious about the plugins and tools we use on our site, then check out WPBeginner's Blueprint. It has all the plugins and tools that we use on the WPBeginner blog.

Need more recommendations? See our expert-pick of the must have WordPress plugins and tools for all websites (hand-picked by our founder, Syed Balkhi).

Step 6. Making Money From Your Blog

Now that you've created your blog and customized it to your liking, you are probably wondering how can I actually make money from my blog?

There are a lot of different ways to successfully monetize your blog. However there is no such thing as a get rich quick scheme.

Don't be fooled by the pictures of expensive cars and mansions because those are all fake.

Unlike other "make money online" articles, we have created the most comprehensive guide on how to make money from your blog using WordPress.

That's a 4000+ word guide that everyone who want to make money with their blog needs to read. We have shared our 15+ years of online wisdom in that ultimate guide.

As long as you're willing to put in the hard work and effort, you'll reap the reward. Remember, there are no shortcuts.

Here are some of the best ways to make money from your blog.
1. Google AdSense
Many bloggers make money by showing ads on their blog. If you make a blog with monetization in mind, then Google AdSense is the best way to do this.

It is the largest advertising platform for bloggers and publishers. Acting as a middleman between you and the advertiser, Google allow advertisers to bid for keywords matching your content. This allows you to get the best rates possible for the ads.

For more details, see our article on how to properly add Google AdSense to your WordPress blog.
2. Affiliate Marketing
Affiliate marketing is the second most commonly used monetization strategy among bloggers. Basically, you recommend your favorite products / services to your readers, and when they make a purchase you get a referral commission.

The key in affiliate marketing is to recommend high-quality products and services that you already use and trust. There are plenty of affiliate marketing plugins and tools for WordPress that can help you make more money when promoting affiliate products.

We also have a complete step by step affiliate marketing guide for beginners, that will help you get started.
3. Online Store
Many bloggers make money by selling things directly from their blog. This could be physical products, digital downloads like ebooks, artwork, music, and more. Some bloggers even offer consulting services.

We recommend using WooCommerce because it is the best eCommerce plugin for WordPress. It is also the most commonly used eCommerce platform in the world.

For detailed instructions, see our guide on how to easily create an online store using WordPress.

On top of the 3 methods above, you can do so much more with your WordPress blog. You can make WordPress blogs specifically for reviews, fashion blogging, food blogging with recipes, and more. Each of these blog types brings you more unique opportunities to make money.

You can also turn your blog into a membership site to offer premium content and courses.

Step 7. Mastering WordPress

WPBeginner is the largest free WordPress resource site for beginners.

At WPBeginner, our main goal is to provide cutting-edge helpful WordPress tutorials that are easy to understand for small businesses, bloggers, and non-techy WordPress website owners (see more about us).

To expand your WordPress knowledge, you should check out:

For more discussions, you may want to join our free Facebook group WPBeginner Engage. With more than 24,000 members, the group is focused on helping beginners and non-techy users do more with WordPress.

You can also subscribe to WPBeginner's YouTube Channel where we regularly share video tutorials to help you learn WordPress.

Lastly, you can use Google to type your question and add WPBeginner in front of it. Our users find this trick to be always helpful because it makes it easy for you to find the RIGHT answer for your WordPress questions.

In case you don't find an answer to your question, don't worry. Simply use our contact form to send us a message. Our always helpful, full time WPBeginner support team, will be happy to assist. We love helping users get started with WordPress.

Frequently Asked Questions (FAQs)

Having helped thousands of people start a blog, we have answered quite a lot of questions. Below are the answers to the most frequently asked questions about creating a blog.
Can I create a blog without WordPress?
Yes, there are several other blogging platforms available. We have compared them all, and WordPress is by far the best solution in the market to make a blog with complete ownership and freedom.
Can I build a blog without hosting?
No, that's not possible. Web hosting is where your website files are stored. All websites need web hosting.
How much does it cost to start a blog?
The cost depends on the add-ons that you buy. We have a complete guide on how much does a WordPress website cost as well as tips on how to save money.
Can I create a blog without my parents knowing about it?
Yes. You can make your WordPress blog private and hide it from the internet. Here is a step by step guide on how to make your WordPress blog completely private.
Can I start a WordPress blog and make money with Google Adsense?
Yes, you can use your WordPress blog to earn money from Google AdSense. We have a step by step guide on how to add Google AdSense in WordPress.
How can I create a blog and remain anonymous?
If you want to have a public-facing blog but want to remain anonymous, then you need to make sure that your domain has WHOIS privacy turned on. Often people use a pseudonym / nickname to write under. You should also create a unique email just for your blog. It goes without saying, don't post your pictures or anything on the blog. For more detailed instructions, see our article on how to blog anonymously using WordPress.
How do I add a podcast to my WordPress blog?
WordPress makes it super easy to start a blog and add a podcast to it. We have a step by step guide on how to start a podcast with WordPress.
How do I come up with blogging ideas to write about?
Here's an excellent guide that has 103 blog post ideas that you can write about today. Here's another guide on 73 types of blog posts that are proven to work.

You can also follow this tutorial from Blogtyrant on how to write a good blog post (12 expert tips) which will help you write great content.
Can I build a blog in my own language?
Yes, you can use WordPress in other languages. You can select your language during installation or from Settings page in WordPress admin area. WordPress is fully translated in more than 56 languages and partially translated into dozens of other languages. Many top WordPress themes and plugins are also available in multiple languages. You can also translate a theme or a plugin that you want to use on your website.
How do I create a blog in multiple languages?
Want to start a blog in Hindi, Spanish, or multiple languages? Here's a step by step guide on how to create a multilingual website in WordPress.
Can I design a blog with no coding skills?
Absolutely. You don't need any programming, coding, or design skills to create a professional-looking WordPress blog.

WordPress themes are easy to customize and you can just point and click to set up your theme. There are WordPress themes like Astra which comes with ready-made starter websites that you can import with one-click.

There are other powerful themes like Divi which give you complete drag & drop design options for customizing your blog.

Then there are powerful drag and drop page builders like Beaver Builder and Divi builder that works with any WordPress theme. You can use it to just drag and drop items and design your own pages.

You can even create your own custom theme without writing any code.
Can I add a photography gallery to my blog?
Yes, WordPress comes with a built-in gallery feature that makes it easy for you to add photo galleries in your blog posts.

Professional photographers can also use premium WordPress gallery plugins to better showcase their photos and even sell photos to make money from their photography business.
How can I create a professional email address for my blog?
If you're serious about your blog, then we highly recommend that you create a professional business email address (it's free).

All successful bloggers use professional email address to stand out and make better partnership deals to grow their blog.

We hope that you found our tutorial on how to start a WordPress blog to be helpful. You may also want to check out our article on 19 actionable tips to drive traffic to your new WordPress site.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

# data[].attributes.attachment_link.title
How to Start a WordPress Blog - Easy Guide - Create a Blog (2020)

# data[].attributes.attachment_link.description
Do you want to start a WordPress blog the right way? We know that starting a blog can be a terrifying thought specially when you are not geeky. Guess what - you are not alone. Having helped over 370,000+ users create a blog, we have decided to create the most comprehensive guide on how to start a WordPress blog without any technical knowledge.

# data[].attributes.body
In a way, categories are meant to indicate the genre of the post, so to speak. Tags, on the other hand, go much more in depth and indicate the individual things that the post talks about.

# data[].attributes.attachment_link.readable_text
Did you know that WordPress.com and WordPress.org are actually two very different platforms?

Often beginners confuse WordPress.com and WordPress.org, which leads them to choose the wrong blogging platform for their needs. Even those who know that they are two different platforms are not aware of the differences between them.

We're often asked by our users which is the better platform: WordPress.com vs WordPress.org. To help answer that, we have created the most comprehensive comparison of free WordPress.com vs WordPress.org (self-hosted version).

Our goal is to highlight the key differences between WordPress.com vs WordPress.org, so you can choose the right platform for your needs.

Since choosing the right platform is crucial for your online success, we have created the most detailed comparison of WordPress.com vs WordPress.org (text comparison, table-based comparison, and a full infographic).

If you just want to start a blog or make a website the RIGHT way, then you can skip this article and head over to our guides here:

Having said that, let's take a look at the differences between self-hosted WordPress.org vs WordPress.com.

WordPress.com vs WordPress.org (Infographic)

Note: This infographic and article compare the powerful self-hosted WordPress.org with the free WordPress.com hosting service. You can unlock additional functionality in WordPress.com by upgrading to their paid service. We have highlighted those features as well.

WordPress.com vs WordPress.org Comparison

The best way to understand the difference between WordPress.com vs WordPress.org is to take a look at each platform individually.

WordPress.org

WordPress.org aka "the real WordPress", is the popular website platform that you have heard all the great things about.

It is an open-source software, and it's 100% free for anyone to use. All you need is a domain name and web hosting. This is why it is also referred to as self-hosted WordPress.

Below are the pros and cons of using the self-hosted WordPress.org to build your website or blog.
WordPress.org Benefits
With WordPress.org, you have full control of your website. You are free to do anything you want and customize it as much as you need.

Here are some of the benefits of choosing WordPress.org to build your website, and the reason why it is our #1 pick for the best website builder.

The WordPress software is free, open-source, and super easy to use. (See why is WordPress free?)

You own your website and all its data. Your site will NOT be turned off because someone decides that it is against their terms of service (as long as you are not doing something illegal). You are in full control.

You can add free, paid, and custom WordPress plugins / apps to your website.

You can use customize your website design as needed. You can add any free or premium WordPress theme that you want. You can also create completely custom designs or modify anything that you want.

You can actually make money from your WordPress site by running your own ads without sharing revenue with anyone.

You can use powerful tools like Google Analytics for custom analytics and tracking.

You can use self-hosted WordPress to create an online store to sell digital or physical products, accept credit card payments, and deliver / ship the goods directly from your website.

You can also create membership sites and sell memberships for premium content, courses, etc and build an online community around your website.

WordPress.org Cons
There are a very few cons of using the self-hosted WordPress.org site.

Like all websites, you will need web hosting. This is where your website files are stored on the internet. Initially, the cost is around $3-$10 per month. However as your website grows and gets more traffic, the web hosting plan costs will increase as expected, but then you would be making enough money to cover the costs.

You will need to install WordPress. Luckily most popular WordPress hosting companies offer 1-click WordPress installation options. You can also follow our comprehensive tutorial on how to properly install WordPress.

You are responsible for updates. You can easily update your WordPress site by simply clicking on the update button (one-click), so it's not too much work.

You are responsible for backups. Thankfully, there are tons of WordPress backup plugins that let you setup automatic backups.

The real cost of WordPress.org website varies based on what you are trying to build (simple blog, portfolio website, eCommerce store, membership site, etc). There are also other factors like free templates vs premium templates, free plugins vs premium plugins, etc.

On a low budget, you can build your website for as little as $46 per year. See our guide on how much does it really cost to build a WordPress website for full details.

For 99% of users, our recommendation is always to use WordPress.org. See our guide on how to start a website.

Bonus: The team at Bluehost is offering our readers a 69% discount on web hosting + a free domain name. They're an officially recommended WordPress hosting provider. Get Started Today "

WordPress.com

WordPress.com is a hosting service created by Automattic, the company led by WordPress co-founder, Matt Mullenweg. Because of the same founder, often users confuse WordPress.com with the popular WordPress.org software.

The WordPress.com hosting service has 6 pricing plans:

Free - Very limited.

Personal - $48 per year

Premium - $96 per year

Business - $300 per year

Ecommerce - $540 per year

VIP - starting at $5000 per month

Let's take a look at the pros and cons of WordPress.com.
WordPress.com Benefits
The free WordPress.com platform is a good choice for hobby bloggers and those starting a blog for their family. Here are some of the benefits of using WordPress.com:

It's free for up to 3GB of space. After that you will have to switch to a paid plan for more storage space. (Personal plan $48 /year gives you 6GB, Premium plan $96/year gives you 13GB storage, or Business plan for $300/year for 200 GB storage).

You will not have to worry about updates or backups. WordPress.com will take care of that.

WordPress.com Cons
There are several limitations of free WordPress.com which differentiate it from WordPress.org. Here are some of the disadvantages of using WordPress.com:

They place ads on all free websites. Your users see those ads, and you don't make money from it. If you don't want your users to see their ads, then you can upgrade to a paid WordPress.com plan (starting from $48 per year).

You are NOT allowed to sell ads on your website, which severely limits ways to monetize your site. If you run a high traffic site, then you can apply for their advertising program called WordAds where you share revenue with them. Premium and Business plan users can use WordAds right away.

You cannot upload plugins. Free plan users get built-in Jetpack features pre-activated. Business plan users can install from a selection of compatible plugins ($300 / year). WordPress.com VIP program lets you install plugins, and it starts from $5000 per month.

You cannot upload custom themes. Free plan users can only install from the limited free themes collection. Premium and business plan users can also select premium themes. There are limited customization options for the free version. Premium and Business plan users can use custom CSS.

You are restricted to their stats. You cannot add Google Analytics or install any other powerful tracking platform. Business plan users can install Google Analytics.

Free WordPress.com sites come with a WordPress.com branded subdomain (e.g. https://yourwebsite.wordpress.com). You'll need a paid plan to get a custom domain name (e.g https://www.yourwebsite.com).

They can delete your site at any time if they think that it violates their terms of service.

Your site will display a powered by WordPress.com link. It can be removed by upgrading to the Business plan.

WordPress.com does not offer any eCommerce features or integrated payment gateways unless you switch to the eCommerce plan.

You cannot build membership websites with WordPress.com.

As you can see, the WordPress.com hosting platform is quite limited when you're on the free, personal, or even premium plan. To unlock some of the more advanced features, you have to be on the Business plan ($300 per year) or on the VIP plan ($5000 per month).

WordPress.com vs WordPress.org (FAQs)

Since this is a popular topic, and WPBeginner is the largest free WordPress resource site for beginners, we get tons of questions regarding WordPress.com vs WordPress.org.

We have done our best to answer the most frequently asked questions below:

WordPress.com vs WordPress.org - Which is Better?

If you are a personal blogger, and you don't care about making money from your website, then go with the free WordPress.com.

If you are a business or a blogger that wants to make money from your site, then we recommend using the self-hosted WordPress.org. It gives you the freedom and flexibility to grow your website the way you want.

While you can get several advanced features with the WordPress.com Business plan ($300 / year for each website), you can make that money go much further on a self-hosted WordPress site which costs $46 per year.

In our expert opinion, WordPress.org is hands down the better platform. That's the platform that every professional blogger, small business owner, and even big name brands like Disney uses.

Can I Monetize Free WordPress.com Website?

WordPress.com does not allow you to run ads on free WordPress.com websites. If you run a high traffic website, then you can join their own WordAds program and share your ad revenue with WordPress.com.

You can put some affiliate links on your website, but that's about it.

Basically, you have very limited options to monetize content on your WordPress.com website.

Whereas with WordPress.org, you have full control over content management system, so you have unlimited monetization options for your new website.

WordPress.com vs WordPress.org - Which one is better for Ecommerce?

WordPress.org offers the easiest way to build an eCommerce website. You can use WooCommerce to build your store or choose from many other WordPress eCommerce, membership, and LMS plugins.

WordPress.com also offers an eCommerce plan starting at $540 per year which is a hefty amount if you are just getting started. It is still limited in terms of features, and you'll have to follow WordPress.com's terms of services for your eCommerce store.

See our guide on how to start an online store without a high budget. It includes how to get your own domain for free along with all the powerful features that you need to grow online.

How do I start a WordPress.org Website?

To start a self-hosted WordPress website, you need a domain name and WordPress hosting.

A domain name is your website's address on the internet such as google.com, wpbeginner.com, etc. Web hosting is where your website files are stored on the internet.

We recommend using Bluehost for hosting your website because they are one of the largest web hosting companies in the world. They're also an official WordPress.org recommended web host. Last but not least, they're offering our users a free domain + free SSL + 60% off on hosting.

For step by step instructions, you can checkout our free guide on how to make a website.

If you need help, WPBeginner team can even install WordPress and build your website for free. Learn more about how our free WordPress blog setup works.

Can I move from WordPress.com to WordPress.org?

Often new users who don't know the difference between WordPress.com vs WordPress.org end up starting with the free WordPress.com service. Once they see the limitations of the platform, they want to switch to "the Real WordPress" aka WordPress.org.

Yes, you can definitely switch from WordPress.com to WordPress.org and fairly easily move all of your content.

We have created a step by step guide on how to move your blog from WordPress.com to WordPress.org, or you can take advantage of our free blog setup service, and we will transfer your blog for free.

WordPress.com vs WordPress.org - Summary

The best way to think about the differences between WordPress.com vs WordPress.org is the analogy of renting a house vs. owning a house.

WordPress.com is similar to renting a house. You have limited power and control over what you can and cannot do.

WordPress.org is like owning a house. Where you have full control, no one can kick you out, and you can do anything that you want.

Below is the summary of everything we discussed above in our self-hosted WordPress.org vs WordPress.com comparison:

Final Thoughts

The confusion created by similar domains: WordPress.com vs WordPress.org is quite unfortunate for beginners. There is a lot of history behind the decisions, and you can read more about that in our article how WordPress.com and WordPress.org are related.

Our hope is that you found this article helpful in understanding the differences between WordPress.org and WordPress.com.

We wish you all the best with your website and hope that you chose the right platform: WordPress.org.

If so, you may want to follow these useful guides:

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

# data[].attributes.attachment_link.keywords[]
different between self hosted and a free blog

# data[].attributes.attachment_link.keywords[]
what are the pros and cons of wordpress.org and wordpress.com

# data[].attributes.attachment_link.title
WordPress.com vs WordPress.org - Which is Better? (Pros and Cons)

# data[].attributes.attachment_link.description
Did you know that WordPress.com and WordPress.org are actually two very different platforms? Often beginners confuse WordPress.com and WordPress.org, which leads them to choose the wrong blogging platform for their needs. Even those who know that they are two different platforms are not aware of the differences between them.

# data[].attributes.attachment_link.readable_text
One of the most discussed topics we see when attending WordCamps and other events is what's better for SEO: categories vs tags? What's the difference between categories and tags? What's the optimal number of WordPress categories? How many is too many? Is it okay to assign one post in multiple categories? Is there a limit of tags we can assign to each post? Do tags work like meta keywords? Are there any SEO advantage of using categories over tags or vice versa? We've seen quite a few commentaries on this subject through out the web, but we found that they were inconsistent and incomplete. If you ever had these questions, then hopefully they will be answered once you are done reading this post, so you can make adjustments to your blog if necessary.

Before we discuss any of the questions listed above, we need to understand what is categories and tags. In the WordPress nomenclature, both categories and tags are known as taxonomies. Their sole purpose is to sort your content to improve the usability of your site. Meaning when a user comes to your site, they can easily browse through your content by topic rather than browsing chronologically which is how blogs were initially setup.

What's the difference between Categories and Tags?

Categories are meant for broad grouping of your posts. Think of these as general topics or the table of contents for your site. Categories are there to help identify what your blog is really about. It is to assist readers finding the right type of content on your site. Categories are hierarchical, so you can sub-categories.

Tags are meant to describe specific details of your posts. Think of these as your site's index words. They are the micro-data that you can use to micro-categorize your content. Tags are not hierarchical.

For example if you have a personal blog where you write about your life. Your categories can be something like: Music, Food, Travel, Rambling, and Books. Now when you write a post about something that you ate, you will add it in the Food category. You can add tags like pizza, pasta, steak etc.

One of the biggest difference between tags and categories is that you MUST categorize your post. You are not required to add any tags. If you do not categorize your post, then it will be categorized under the "uncategorized" category. People often rename the uncategorized category to something like Other, ramblings etc.

Another difference is the way your category and tags permalinks (urls) look. If you are using a custom permalink (URL) structure, then your base prefix will look different. Example:

http://yoursite.com/category/ food/

vs.

http://yoursite.com/tag/ food/

What's the optimal number of WordPress categories?

Up until WordPress 2.5, there was no built-in support for tags. This led to very long category lists because people were using it to define micro-details. Tags were added to improve the usability of your site. Having that said, we believe there is no specific optimal number of categories. The optimal number varies based on the complexity of your site. However, for the sake of structure and usability, it is best that you utilize sub-categories and tags.

Categories are meant to encompass a group of posts. It is always best to start with generic categories and work your way down with subcategories as your site grows. After having run multiple blogs, we have heared that blogs evolve. There is no way that you can come up with all the right categories. Chances are when starting out, you are only writing one post a day. Or maybe 3-5 posts a day. Having 30 top categories is pointless especially when some of them will only have one or two posts. You are better off with 5 generic categories that have fresh content rather than 30 top categories where the majority are not updated.

Let's take a look at an example. Say that we are starting a social media blog in 2012. We want to share how-to tutorials, news, tools, case studies etc. We can create top categories like Twitter, Facebook, Google+, LinkedIn etc. As sub categories of each, we can have tools, how-to's, case studies, news etc. However that is a very short-term mindset, and we will run into issues in the future. What if one of the social media network dies and a new one enters the game? You will be required to add yet another top level category and more sub-categories.

A much better way of structuring this social media blog would be to have top categories that are future-proof. You can have your categories like How-To's, News, Case Studies, Tools, etc. But how would people know that it is about twitter? Well your categories are not suppose to do the entire job. This is where tags come in. Let's say you wrote a how-to post about twitter, simply add the tag twitter. In your design just add a section called Popular Topics and control that manually with links to popular tags like Twitter, Facebook, Google+ etc.
When do you add Subcategories?
Let's say that you do a case-study posts where sometimes you interviewed an expert for a specific case-study. Because there is no category called "expert interviews", you will add that as a tag on that case-study post. If you find yourself doing a lot of interviews for case-studies and your expert interviews tag has 10+ posts in it and is consistently growing, then you should consider adding expert interviews as a sub-category of your main category "Case Studies".

Yes, you will have to go back and edit your older posts. If your URL structure is /category/postname/, then you have make sure you are using the Redirection plugin. It automatically redirects your modified posts to their new URL, so you can keep all the search engine rankings.
Do I have to use sub-categories?
No ofcourse not. You can always leave popular tags as tags. In our example above, almost all posts will have a tag for a specific social media network like twitter, facebook, etc. But we are not creating those as categories. The only reason why you add sub-categories is to make it easy for your users to find the content. You are more than welcome to simply add the Expert Interviews tag in your site somewhere.

Remember the whole purpose of categories and tags are to make it easy for your users to browse your site.

Is it okay to assign one post to multiple categories?

You might read on other sites that assigning posts to multiple categories can hurt your SEO. Some say that you can get penalized with duplicate content because of that. We believe that statement is not entirely true. First of all, don't get lost with SEO. Remember the purpose of sorting your content efficiently is to help users find it. By the nature of how top categories should be setup, you shouldn't be able to classify one post into multiple top-level categories. For example, if your blog has three categories "Advertising, Marketing, and SEO". Your posts often tend to fall into multiple categories. Perhaps you need an umbrella category for all three? Maybe they should all fall under Business? Or you can have one category called Advertising & Marketing. Then have SEO as a sub-category for those.

There is no SEO benefits to adding multiple categories. If you think it helps your users, then you are more than welcome to add one post into multiple categories. However, if you see this becoming a regular issue, then you should consider restructuring your categories. Maybe some of your categories need to be tags. Or maybe they should be subcategories of one major category. It is mainly about making the user experience better.

If you are super concerned about duplicate content penalty, then simply (noindex, follow) your category taxonomy using the WordPress SEO by Yoast plugin.

If you only want to (noindex, follow) specific categories, then you can do so by editing the category themselves. Yoast plugin has the setting to override the global settings.

Basically when you (noindex, follow) certain thing, it tells Google and other search engine bots to follow all post links in these categories, so all posts can be indexed. However do not index the main category archives to prevent duplicate content.

Short answer: WordPress allows you to add one post into as many categories as you like. Yes it is okay to assign one post into multiple categories as long as you think it helps your users. However, if you think of categories as Table of Contents for your blog where posts are chapters, then can you have one chapter in two separate sections? The answer to that question is NO.

Is there a limit of tags we can assign to each post?

Short answer to this question is NO. WordPress has NO limits on the number of tags you can assign to a specific post. You can add 1000+ tags if you like. However, the purpose of tags is to relate your posts together. Again think of tags as the index of your book. These are popular keywords that you can use to loosely relate your posts. This makes it easy for users to find your posts specially when they are using the WordPress search. It also helps if you are utilizing the tag archive for users. We say add no more than 10 tags to your posts unless you can justify it. For example: if you are running a movie review blog, you may add multiple tags: actor/actress names (this alone can be over 10). But chances are that you may review multiple movies that have Adam Sandler in it. But for other simpler scenarios, you should really limit the amount of tags you use. Otherwise, you may find yourself with over 10000+ tags with only 300 posts on the site.
Do tags work like meta keywords?
Often people mistake tags to be like meta keywords for your blogs. This is the main reason why they try to add as many tags as possible. Tags are NOT meta keywords for your blog. At least not by default. Popular plugins like WordPress SEO by Yoast allows you to use your tag values to be in the meta keywords template. But if you don't have these plugins configured to do that, then your tags DO NOT work like meta keywords.

Categories vs Tags: What's better for SEO?

The most asked question that we see being asked on this topic is: Are there any SEO advantage of using categories over tags or vice versa? The simple answer to this is NO. You should NOT look at this as categories or taxonomies. They are meant to work together. If you have read this post, then you should be able to understand the individual purpose of categories and tags as well as their combined purpose for your site's usability.

Conclusion

Your site is about your users not search engine bots. The goal of every search engine is to think the way users think when valuing your content. If you make your decisions based on usability, you will almost always find yourself reaping the SEO benefits. Categories and Tags are just the two default taxonomies that comes with WordPress. Most advanced sites use custom taxonomies for sorting their content alongside with categories and tags. Think of your blog as an ever evolving book. Choose the Table of Content (categories) wisely. Make sure that they are broad topics, but be cautious to not make it too vague. Use tags to loosely relate multiple posts. If you see a certain tag is becoming popular, then consider adding it as a sub-category. However, if you have to add the tag as subcategory of multiple top-level categories, then leave it as a tag. The goal is always to make the site as user friendly as possible.

We hope that this article helps clear any and all confusion when it comes to the topic of categories vs tags. We would love to hear your thoughts on this matter. How do you sort your content? What best practices do you follow?

# data[].attributes.attachment_link.title
Categories vs Tags - SEO Best Practices for Sorting your Content

# data[].attributes.attachment_link.description
One of the most discussed topics we see when attending WordCamps and other events is what's better for SEO: categories vs tags? What's the difference between categories and tags? What's the optimal number of WordPress categories? How many is too many? Is it okay to assign one post in multiple categories?

# data[].attributes.body
No-one has a right to any website, but if your content is on a domain that you have asked to be written and the original developer is not helpful, then you can find out which company hosts it and follow from there. It used to be possible to see the contact details, but that's not possible because of GDPR now.

# data[].attributes.attachment_link.readable_text
Need Help?

Nominet is the official registry for all .UK domain names. As part of our service we maintain a directory called 'WHOIS' - an official listing of the full details of all .UK domain names. The WHOIS lookup tool searches our directory and returns information about the domain name searched for. The WHOIS lookup tool will return domain information for .uk, .co.uk, .org.uk, .me.uk, .net.uk, .sch.uk, .plc.uk, .ltd.uk, .cymru and .wales

Responses from WHOIS

Our WHOIS tool will tell you whether a domain is registered and if it is, provide details of the registration. We work hard to ensure the data we hold is correct and up-to-date through our ongoing data validation programme.

Please note that any sensitive registrant information provided will only be made visible within your own Nominet Online Services account for registration purposes. Following the launch of the General Data Protection Regulation (GDPR) on May 25 th 2018, Nominet took the decision to remove all sensitive registrant information from the WHOIS lookup.

Data release process

The .UK WHOIS does not show a registrant's details unless they have given consent to publication. We provide registration data to third parties with legitimate reasons, such as enforcement of legal rights or use of our Dispute Resolution Service. To obtain non-public data you must submit a Data Release Request and provide us with your details (which will be disclosed to the data subject) and the reasons why you believe you have the right to access non-public data. Please send this to [email protected] . On receiving your request, we aim to reply within one working day. We will respond once we have processed the request.

Examples of legitimate requests are (non-exhaustive):

A trade mark holder wants to identify the registrant of a domain name so they can be included in a Dispute Resolution Service complaint

Solicitors acting for a party that is trying to enforce their Intellectual Property rights

A law enforcement agency requesting the data on a domain name

Complaints

If you have a complaint about our WHOIS data please visit our complaints page
WHOIS policies and rules

# data[].attributes.attachment_link.description
Nominet is the official registry for all .UK domain names. As part of our service we maintain a directory called 'WHOIS' - an official listing of the full details of all .UK domain names. The WHOIS lookup tool searches our directory and returns information about the domain name searched for.

# data[].attributes.body
You need a domain (the 'name' of the website) These are controlled by one agency in the UK (nominet). It's like buying a company name without the premises.

You also need a 'host' who will store the content of your site (like putting your goods in a shop). You can separately buy these, and link them up separately, but it is easiest to buy the site from the host that you choose.

Hosts want your business and so will help you transfer the domain to their company.to host. If you want ot do this separately.

# data[].attributes.body
For a free site (wordpress, cloudaccess, weebly etc) you just need to make an account with a password. You can start building the content.

Remember the 'content' - the words and pictures, are in the 'body' section of the page.

# data[].attributes.body
see lower down page for what's included at each price.

# data[].attributes.body
Basics that are buildng blocks of HTML/CSS include:
- Learning the different places CSS can be placed (Inline, internal, external)
- The box model
- Creating Classes (and IDs) and different selectors)
- Using a text editor (or other) to produce HTML/CSS.
-Flexbox (as a layout option)

See below for good resources:

# data[].attributes.body
You can place css actually in with the html (it's very messy), or in the head section of a html page (tidy, easier to edit) or in a separate .css file (this way you can share css, and only need to change once for multiple pages)

# data[].attributes.headline
W3Schools - This is the best resource. Inline, internal, external...

# data[].attributes.subject
W3Schools - This is the best resource. Inline, internal, external...

# data[].attributes.attachment_link.readable_text
When a browser reads a style sheet, it will format the HTML document according to the information in the style sheet.

Three Ways to Insert CSS

There are three ways of inserting a style sheet:

External CSS

With an external style sheet, you can change the look of an entire website by changing just one file!

Each HTML page must include a reference to the external style sheet file inside the <link> element, inside the head section.

Example

External styles are defined within the <link> element, inside the <head> section of an HTML page:

Try it Yourself "

An external style sheet can be written in any text editor, and must be saved with a .css extension.

The external .css file should not contain any HTML tags.

Here is how the "mystyle.css" file looks:

"mystyle.css"

body {
background-color: lightblue;
}

Note: Do not add a space between the property value (20) and the unit (px):
Incorrect (space): margin-left: 20 px;
Correct (no space): margin-left: 20px;

Internal CSS

An internal style sheet may be used if one single HTML page has a unique style.

The internal style is defined inside the <style> element, inside the head section.

Example

Internal styles are defined within the <style> element, inside the <head> section of an HTML page:

Try it Yourself "

Inline CSS

An inline style may be used to apply a unique style for a single element.

To use inline styles, add the style attribute to the relevant element. The style attribute can contain any CSS property.

Example

Inline styles are defined within the "style" attribute of the relevant element:

Try it Yourself "

Tip: An inline style loses many of the advantages of a style sheet (by mixing content with presentation). Use this method sparingly.

Multiple Style Sheets

If some properties have been defined for the same selector (element) in different style sheets, the value from the last read style sheet will be used.

Assume that an external style sheet has the following style for the <h1> element:

Then, assume that an internal style sheet also has the following style for the <h1> element:

Example

If the internal style is defined after the link to the external style sheet, the <h1> elements will be "orange":

Try it Yourself "

Example

However, if the internal style is defined before the link to the external style sheet, the <h1> elements will be "navy":

Try it Yourself "

Cascading Order

What style will be used when there is more than one style specified for an HTML element?

All the styles in a page will "cascade" into a new "virtual" style sheet by the following rules, where number one has the highest priority:

1. Inline style (inside an HTML element)

2. External and internal style sheets (in the head section)

3. Browser default

So, an inline style has the highest priority, and will override external and internal styles and browser defaults.
Try it Yourself "
Ever heard about W3Schools Spaces? Here you can create your own website, or save code snippets for later use, for free.

Get started for free ❯
* no credit card required

# data[].attributes.attachment_link.description
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

# data[].attributes.body
All spaces on a web page can be defined by the spaces and borders of that area. These are together called the 'Box Model'

# data[].attributes.attachment_link.description
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

# data[].attributes.body
You can make your own named spaces (using the box model) which you can reuse (classes) or use once (to ID a specific spot on a page (ID). Also, this explains different selectors (things you can define in any space)

# data[].attributes.attachment_link.description
Lesson Code: http://www.developphp.com/video/CSS/Standard-Selectors Learn to use the standard selectors of CSS. These selectors are not part of any pseudo selector or combinator group, and they serve as the basis for all other selectors. In this video we demonstrate the universal selector, type selector, class selector, id selector and compound selections.

# data[].attributes.body
These videos talk you through the steps to making one basic page, then developing that to a multi page site

# data[].attributes.attachment_link.description
Use these if you want more control over your page. It takes a bit more to get into, but then it's easy to find the parts to personalise. All the videos after this are shown using Notepad++

# data[].attributes.body
This is amazing, and even builds code for you

# data[].attributes.attachment_link.description
Online interactive HTML Cheat Sheet contains useful code examples and web developer tools, markup generators and more.

# data[].attributes.attachment_link.readable_text
Try it Yourself "

CSS Flexbox Layout Module

Before the Flexbox Layout module, there were four layout modes:

Block, for sections in a webpage

Inline, for text

Table, for two-dimensional table data

Positioned, for explicit position of an element

The Flexible Box Layout Module, makes it easier to design flexible responsive layout structure without using float or positioning.

Browser Support

The flexbox properties are supported in all modern browsers.

Flexbox Elements

To start using the Flexbox model, you need to first define a flex container.

The element above represents a flex container (the blue area) with three flex items.

Parent Element (Container)

The flex container becomes flexible by setting the display property to flex:

Example

.flex-container {
display: flex;
}

The flex container properties are:

The flex-direction Property

The flex-direction property defines in which direction the container wants to stack the flex items.

The flex-wrap Property

The flex-wrap property specifies whether the flex items should wrap or not.

The examples below have 12 flex items, to better demonstrate the flex-wrap property.

The flex-flow Property

The flex-flow property is a shorthand property for setting both the flex-direction and flex-wrap properties.

The justify-content Property

The justify-content property is used to align the flex items:

The align-items Property

The align-items property is used to align the flex items.

In these examples we use a 200 pixels high container, to better demonstrate the align-items property.

Example

The baseline value aligns the flex items such as their baselines aligns:

Note: the example uses different font-size to demonstrate that the items gets aligned by the text baseline:

Try it Yourself "

The align-content Property

The align-content property is used to align the flex lines.

In these examples we use a 600 pixels high container, with the flex-wrap property set to wrap, to better demonstrate the align-content property.

Perfect Centering

In the following example we will solve a very common style problem: perfect centering.

SOLUTION: Set both the justify-content and align-items properties to center, and the flex item will be perfectly centered:

Example

Try it Yourself "

Child Elements (Items)

The direct child elements of a flex container automatically becomes flexible (flex) items.

The element above represents four blue flex items inside a grey flex container.

The flex item properties are:

The order Property

The order property specifies the order of the flex items.

The first flex item in the code does not have to appear as the first item in the layout.

The order value must be a number, default value is 0.

The flex-grow Property

The flex-grow property specifies how much a flex item will grow relative to the rest of the flex items.

The value must be a number, default value is 0.

Example

Make the third flex item grow eight times faster than the other flex items:

Try it Yourself "

The flex-shrink Property

The flex-shrink property specifies how much a flex item will shrink relative to the rest of the flex items.

The value must be a number, default value is 1.

Example

Do not let the third flex item shrink as much as the other flex items:

Try it Yourself "

The flex-basis Property

The flex-basis property specifies the initial length of a flex item.

The flex Property

The flex property is a shorthand property for the flex-grow, flex-shrink, and flex-basis properties.

The align-self Property

The align-self property specifies the alignment for the selected item inside the flexible container.

The align-self property overrides the default alignment set by the container's align-items property.

In these examples we use a 200 pixels high container, to better demonstrate the align-self property:

Responsive Image Gallery using Flexbox

Use flexbox to create a responsive image gallery that varies between four, two or full-width images, depending on screen size:

Try it Yourself "

Responsive Website using Flexbox

Use flexbox to create a responsive website, containing a flexible navigation bar and flexible content:

Try it Yourself "

CSS Flexbox Properties

The following table lists the CSS properties used with flexbox:

# data[].attributes.attachment_link.description
Try it Yourself " Before the Flexbox Layout module, there were four layout modes: Block, for sections in a webpage Inline, for text Table, for two-dimensional table data Positioned, for explicit position of an element The Flexible Box Layout Module, makes it easier to design flexible responsive layout structure without using float or positioning.

# data[].attributes.attachment_link.readable_text
For this post, I was looking for the clearest and most convincing way of differentiating a WordPress Plugin from a Widget. And trust me, the more I read, the weirder the explanations that I kept getting.

So, I thought I'd take resort to use an analogy. Why? Because when all else fails (at least fail to make perfect sense), analogies works!

Before I get into more details, let first get the basic understanding about what a WordPress Plugin and Widget is:

WordPress Plugin:

A WordPress Plugin is a program, or a set of one or more functions, written in the PHP scripting language, that adds a specific set of features or services to the WordPress weblog, which can be seamlessly integrated with the weblog using access points and methods provided by the WordPress Plugin Application Program Interface (API).

Turns out we don't have a definition. But it reads something like this:

WordPress Widgets add content and features to your Sidebars. Examples are the default widgets that come with WordPress; for post categories, tag clouds, navigation, search, etc. WordPress Plugins will often add their own widgets.

These are the definitions that WordPress gives but neither really clarify how these two are actually different from each other.

Coming Back to the Analogy

Here is the best way I could think of to try and explain how these things are similar and yet different at the same time.

If WordPress was your smartphone, the plugins would be like Apps, and Widgets would be how you display those apps.

For example, most phones don't come with default task-management functionalities or at least they don't come with the type of task-management that suits our needs. However, we have the option to download an app like Wunderlist and use it to extend the functionality and options available on your phone.
This is like a plugin in the WordPress context.
WordPress may not have a certain functionality you want or need, but you can download a plugin (also considered an app) to extend the functionality of WordPress and your site.

Now on to Widgets.

This one is where people tend to get the confused because there's not really an easy way to explain them, and here's why.
Widgets themselves are not entirely separate from WordPress and are not Plugins. However, you can use and find a plugin that will add new widgetized areas or widgets that can be used in those areas.
Confusing, I know, but let's try that analogy again to explain it better.

On a cell phone like an iPhone, your screen is programmed with predefined areas to display the apps you download and you can organize your apps on the screen in these areas only.

Similarly, WordPress comes with Widget Areas and Widgets which are, in part, predefined areas that you can use to feature and display various types of content including those created by a plugin.

Are Widget Areas and Widgets different? Let's find out.

Widgetized Areas are special places on your site where you place Widgets. These areas often include sidebars, footers, sections in your header and occasionally, your homepage. You can use plugins to add these Widget Areas to WordPress or you can hand-code PHP to add them.

Widgets are placed inside those predefined Widgets Areas. These Widgets can feature content from posts or pages or integrate features from plugins; You can't use a Widget outside of a Widget Area.

When Do You Look For a WordPress Plugin?

So when do you opt for a plugin?
Well, remember that Plugins are geared towards functionality.
Therefore, you look for a plugin when you are looking to add a function that doesn't come built into WordPress.

Want a drag and drop front-end editor for build your pages in WordPress? Then, you would use a plugin like Visual Composer or Beaver Builder to add that functionality to your site.

Now, there really isn't an objective answer to this, but mostly, you want to show or add a widget when you want to show or make something specific visible to your readers.

Widgets are geared towards appearance. Hence, it's no surprise that they are listed under the appearance tab in the WordPress dashboard.

A WordPress Example to Clear the Difference:

Let's say that your WordPress theme a full-width parallax image header and you want to add a text overlay to that image but the theme doesn't have that option.

You can code your homepage.php file or find a plugin that can integrate the needed code in order to create a widgetized area in that part of your site so that you could quickly and easily add text and change it as needed.

Another example would be if you wanted to add social sharing buttons to your sidebar. WordPress doesn't have social sharing automatically available. Therefore, you need to find a social sharing plugin that will create a social sharing Widget that you can then use in your sidebar.

So, you can see that the difference between plugins and widgets lies in the purpose of each one of them.

What's your way of explaining the difference between WordPress plugins and widgets? Share your views in the comment section below.

# data[].attributes.attachment_link.title
WordPress Plugins vs Widgets: How Are They Different?

# data[].attributes.attachment_link.description
For this post, I was looking for the clearest and most convincing way of differentiating a WordPress Plugin from a Widget. And trust me, the more I read, the weirder the explanations that I kept getting. So, I thought I'd take resort to use an analogy. Why?

# data[].attributes.body
save only low res designs

# data[].attributes.attachment_link.title
Free Logo Maker - Make a Free Custom Logo in Minutes!

# data[].attributes.attachment_link.description
Make a custom logo using the free logo maker tool. Choose from millions of graphics and icons to make your logo. Trusted by 10M+ of people.

# data[].attributes.body
requires login

# data[].attributes.attachment_link.readable_text
Can I make edits to a logo after purchasing it?

You can make a lot of minor edits (font, shape, color, etc.) to your logo. You can also download it as many times as you need. If you have an Unlimited plan or a Privilege plan, there are no restrictions: you can modify your logo design as many times as you like.

Is it really free to use?

You can create and modify a logo as much as you like entirely for free. You'll never have to pay to use the logo maker tool. All templates, icons and shapes are available for free for every user. When you're satisfied with your logo, choose the perfect package for your needs.

Do I need any experience in graphic design?

FreeLogoDesign logo maker is an intuitive tool, easy to use for everyone. Choose elements and drag-and-drop them anywhere you want on your canvas. Edit the text, color or shape of any element in your project. The only limit is your creativity.

What's included in the Basic package?

Our Basic package includes a high-definition image, ready to be used for web or print. You'll also get the SVG vector file of your logo and a PDF file. You can also decide to complete your package with add-ons, like business card templates, social media files, and a brand guide for an extra.

I don't know where to start. Are there any templates or examples I can start working with?

FreeLogoDesign offers a library of thousands of logo templates to browse through. Once you've chosen your favorite template, add one of thousands of icons available to customize your logo.

Where can I get inspiration to help me create my logo?

Read our blog articles and get inspired by our many posts on logo design and creation. Read tips and tricks to facilitate your logo creation or learn more about the rich history of famous logos.

How can I make a unique logo for free?

We believe it is possible to create a unique logo for free using our logo maker. First, you need to have an idea of the general style of your logo. Then, browse our logo templates and choose your favorite. To make it unique, customize every visual component: icons, fonts, colors, text, etc.

Are there any good free logo makers?

FreeLogoDesign is a free logo maker used every day by thousands of people around the world. As its name suggests, you can create and download a logo for free. This is the perfect way to try our tool to create all components of your brand identity.

How to make a business logo?

All businesses and companies need a logo. Therefore, where to start? First, we believe you should analyze your products and target clientele. It will help you create the perfect logo. Then, find your business name and note down logo styles you like.

# data[].attributes.attachment_link.title
Free Logo Maker | Create Your Own Logo | Free Logo Design

# data[].attributes.attachment_link.description
Try our free logo maker. Trusted by 30M+ businesses, our online logo generator makes it easy to find the best logo for your business. Make your logo now!

# data[].attributes.attachment_link.readable_text
We're the preferred web hosting provider for thousands of happy cloud family members because of the high level of support that our clients receive from our dedicated and knowledgeable support team. Read our client testimonials.

# data[].attributes.attachment_link.title
Joomla & WordPress Hosting, Support and Tutorials

# data[].attributes.attachment_link.description
We're the preferred web hosting provider for thousands of happy cloud family members because of the high level of support that our clients receive from our dedicated and knowledgeable support team. Read our client testimonials.

# data[].attributes.attachment_link.readable_text
Do you want to add a Google Calendar in your Weebly website? Google Calendar is one of the most useful apps. It allows you to manage and organize almost everything around you. In this tutorial, we will show you how to add a Google Calendar in Weebly.

How to Add Google Calendar in Your Weebly Website

First, we need to get the embed code for Google Calendar. To do so, you need to login to Google calendar using your Gmail address and click on the "Settings" icon to navigate to "Settings" option in the dropdown.

Click then on the "Calendar" tab to see all your existing calendars and also an option to create a new calendar.

Here, we're embedding the "Holidays in the US" calendar. Click on the calendar to see the embed code.

Once done, now we're interesting to add the actual Google Calendar to your Weebly website. On your Weebly site editor, drag and drop an " Embed Code " element and paste the Google calendar code inside. You calendar is ready now and will look something like below:

Adding Events to Calendar

Click on the "Create" button in Google calendar site to add your events to calendar.

If you liked this tutorial, then you may consider subscribing to our WeeblyTutorials YouTube Channel for Weebly video tutorials. You can also find us on Twitter and Facebook.

# data[].attributes.attachment_link.title
How to Add Google Calendar in Your Weebly Website

# data[].attributes.attachment_link.description
Do you want to add a Google Calendar in your Weebly website? Google Calendar is one of the most useful apps. It allows you to manage and organize almost everything around you. In this tutorial, we will show you how to add a Google Calendar in Weebly.

# data[].attributes.attachment_link.readable_text
In this article, we'll discuss various methods to use your website to announce upcoming events. We'll start with event badges and social networking sites, the easiest ways to promote just one or two events. Next, we'll look at various third-party tools for adding a working calendar into your site. Finally, we'll suggest calendar modules for nonprofits that use content management systems.

This article is based on the original article authored by Brian Satterfield on March 13, 2007.

If you want to keep friends of your organization up-to-date on events, meetings, and deadlines, adding a calendar to your website is a must. Fortunately, numerous online tools make it easy to build, update, and publish a professional calendar on your nonprofit's website. All you need is an Internet connection, a web browser, and a bit of spare time.

If you use a content management system (CMS) to manage your website, it may already offer a calendar module. If not, it's easy to add a calendar using one of several online tools. As with an email-client calendar (such as Outlook or Thunderbird), you can add listings to a web-based calendar by creating an entry that includes the event's time, date, location, and other details. The main difference is that with a web-based calendar, you do this through your browser, not on your desktop.

All of the tools we discuss here can publish your events in iCalendar, a format used by numerous desktop, handheld, and online scheduling applications. This means that your nonprofit's supporters can subscribe to your calendar with their scheduling application of choice and view your upcoming events without needing to visit your website.

In this article, we'll discuss various methods to use your website to announce upcoming events. We'll start with event badges and social networking sites, the easiest ways to promote just one or two events. Next, we'll look at various third-party tools for adding a working calendar into your site. Finally, we'll suggest calendar modules for nonprofits that use CMSes.

Event Badges and Social Networking Sites

While a full-fledged calendar will likely be the most appropriate choice for nonprofits that hold regular, recurring events, organizations that only hold occasional events might find that a monthly calendar is overkill. If this describes your situation, you can still keep your funders, volunteers, and supporters in the loop by adding a badge that shows upcoming events to your website.

Rather than displaying a full monthly calendar view, an upcoming-event badge simply lists a few events that will take place in the near future. Upcoming-event badges can be built using several free web services and easily integrated into your website via a simple HTML code cut-and-paste operation.

The free event-management website Eventbrite provides tools for creating widgets to display upcoming events created with the service. Once you create a free account, you can create either a single event countdown widget or a multi-event calendar widget. The single event countdown widget displays the time remaining until your upcoming event, while the multi-event calendar widget shows scheduled events when visitors click on a given day in the widget's mini calendar.

Social-events calendar Upcoming (a Yahoo! company) provides a free tool for creating badges that display upcoming events. Upcoming badges pull an event's information from the site's database, but if your event isn't listed, you can add it after you sign up for a free account. After you add events to your list, you can choose from one of two badge styles, then select whether the badge should display the event's location. Upcoming badges can display either five or 10 future events and will automatically update themselves each time you add a new event.

If your nonprofit engages with the community through social media sites, be sure to use those sites to invite supporters to your events; that way, people who follow you through MySpace, Facebook, Hi5, or other networks can be invited to your upcoming events even if they don't happen to visit your website. Using the iCalendar to Event application, you can turn the events on your calendar into Facebook events automatically. Eventbrite also allows you to publish events scheduled through the service to Facebook or Twitter.

Third-Party Calendar Services

If you're not using a CMS, the easiest way to add a calendar to your website is with one of several third-party calendar services. In most cases, all you need to do to add the calendar is paste a snippet of text into your website's code. You perform all of the customizations to the calendar's appearance on the calendar provider's website.

There are numerous third-party calendar services; we've chosen three to discuss here. Once you've determined which features are important for your calendar, you can select one of these services or seek out others.

Google Calendar

Heavyweight Google offers a number of free web-based services, including one that allows you to create an online calendar and publish it on your website. To build a calendar using Google, you'll need to first create a free Google account.

A sample calendar created with Google Calendar.

Google Calendar's online interface provides several different ways to display upcoming events, including daily, weekly, and monthly views. No matter which view you choose, you can add a new event simply by clicking a date or time slot, naming it, and entering information such as the location and time.

If you want visitors to your site to be able to see your events, you'll need to set them as Public rather than Private. Whenever a visitor clicks a Public event displayed on your site, they will be taken to a Google page that contains the information you entered. You can also configure Google Calendar to permit your organization's volunteers or staffers to add or edit events.

After you've added upcoming events to a Google Calendar, you can use the service's Embeddable Calendar Helper to adjust the way it will look on your website. This includes selecting a background color for your calendar; choosing the width and height; and specifying whether the calendar will display navigation controls, a title, or the other information. After you've previewed the calendar and are satisfied with its appearance, you simply copy and paste the HTML code generated by the tool into your website.

Now every time you add a new event through Google Calendar's online interface, it will automatically appear on the calendar embedded on your site. If you want to make changes to the calendar's appearance or size, you'll need to generate new HTML code, copy and paste it into your site, and upload the file once again to your web server or hosting provider.

For more information on how to add a Google Calendar to your nonprofit's website, check out this tutorial from Google. Here are some examples of nonprofits using embedded Google calendars:

Windows Live Calendar

A sample Windows Live Calendar.

Windows Live Calendar works similarly to Google Calendar. If you use Hotmail or are already using Windows Live calendar to track events, it might make sense to use this free calendar service to add a calendar to your website.

Once you set a specific calendar as public rather than private, you can use the service's tools to create an embeddable calendar and adjust how it will display on your site. You can create either a large, full-size calendar or a small thumbnail calendar. The thumbnail calendar is a monthly view; the view for the large calendar can be set to daily, weekly, or monthly. When you're done tweaking your calendar's appearance and settings, you just copy and paste the HTML code created by Windows Live Calendar into your website.

30 Boxes

A sample calendar created with 30 Boxes.

30 Boxes works very similarly to Google Calendar. 30 Boxes' design is much less snazzy than Google's, but it has many options for customization, including adding weather reports and photos from Flickr.

In addition to letting you embed the full calendar on your website, 30 Boxes also offers numerous widgets for displaying your calendar in social networking sites and other venues.

CMS Calendar Modules

A CMS is a piece of software installed on a web server that delivers many types of information for your website in a consistent design. If you're using a CMS, you'll get the best results if you use a web calendar native to it. In their extensive report on open-source CMSes (free download, requires email address), Idealware found that of the four CMSes they studied (WordPress, Joomla, Drupal, and Plone), only Plone includes a calendar function out-of-the-box, while the other three support additional calendar modules. Many proprietary content management systems may also include a calendar function at no additional cost to you. Check with the vendor or consultant familiar with it to see if there's one already included in the system you're using.

The great thing about using a calendar that's designed for your CMS is that it can interact with other parts of your site. For example, recently posted events can appear on your homepage or news page alongside new blog entries. Upcoming events can appear on a sidebar so that visitors can see them even if they weren't specifically looking for them.

Here are some examples of nonprofit calendars made using CMSes' calendar functions:

If you're overhauling your nonprofit's website and aren't using a CMS, this might be a good time to consider it. The Idealware report mentioned above is an excellent place to start. In addition to thorough reviews of the four most popular open-source systems, the report also lists consultants well-versed in each CMS.

# data[].attributes.attachment_link.title
Free Ways to Add a Calendar to Your Website

# data[].attributes.attachment_link.description
In this article, we'll discuss various methods to use your website to announce upcoming events. We'll start with event badges and social networking sites, the easiest ways to promote just one or two events. Next, we'll look at various third-party tools for adding a working calendar into your site.

# data[].attributes.attachment_link.readable_text
If you're new to WordPress, you might be wondering about the difference between WordPress.org and WordPress.com.

WordPress.com vs WordPress.org

The one major difference between WordPress.com and WordPress.org is who's actually hosting your website.

With WordPress.org, YOU host your own blog or website. WordPress.org is where you'll find the free WordPress software that you can download and install on your own web server.

WordPress.com, on the other hand, takes care of all of the hosting for you. You don't have to download software, pay for hosting, or manage a web server.

Pros and Cons of WordPress.com vs WordPress.org

Both WordPress.org and WordPress.com have pros and cons, depending on your needs.

If you're not interested in paying for your own hosting, managing your own web server or paying someone else to handle that for you, you'll probably want to use WordPress.com. It's free and easy to set up and you have lots of options for customizing your site.

A few of the cons of using WordPress.com include that your domain will, by default, include "WordPress.com." You also can't upload any custom themes, plugins or modify the PHP code behind your site.

While WordPress.com is free to set up, they do offer several premium upgrades, including domain name registration (if you don't want WordPress.com in your domain name), the ability to upload videos and if you want to use their premium themes.

Using the downloaded version of WordPress from WordPress.org opens up more control and flexibility for your WordPress site, but it also means more responsibility. Using a self-hosted version of WordPress means you can use your own domain name, upload and install themes and plugins, edit the code behind your site and have access to your site's database (or files). Most of the showcase sites you see on the WordPress site showcase are the self-hosted version of WordPress, since many of them have unique functionality or a custom-made design.

# data[].attributes.attachment_link.description
If you're new to WordPress, you might be wondering about the difference between WordPress.org and WordPress.com. The one major difference between WordPress.com and WordPress.org is who's actually hosting your website. With WordPress.org, YOU host your own blog or website. WordPress.org is where you'll find the free WordPress software that you can download and install on your own web server.

# data[].attributes.attachment_link.readable_text
A new user has two options for starting a WordPress site: WordPress.com and WordPress.org. While both of these offer the popular WordPress site building and content management system , there is a difference-and knowing those differences can help you make the right choice for your new website and WordPress hosting needs.

What Are WordPress.com and WordPress.org?

You may be wondering, " What is WordPress? " WordPress is one of the world's most widely used site building software. It's free and open source so that it can be modified and shared by any user in the WordPress community. The core WordPress software package can be downloaded by anyone from WordPress.org, or it can be installed as part of a hosting package from a web hosting provider.

WordPress.com also supports WordPress. It's run by a commercial company called Automattic that was created by one of the founders of WordPress for hosting WordPress driven sites. Users don't have to download or install WordPress-it's part of the hosting services that WordPress.com provides.

The differences between WordPress.com and WordPress.org arise from the differences between hosted and self-hosted websites, so choosing between them largely depends on the level of control a user wants over the design and management of their site.

Self-Hosted and Hosted Sites

Self-hosting means that a user has full access to all the site files and code and can deploy them in any way they like. A self-hosted site has its own domain name and is hosted by one of a number of web hosting providers who make server space available for self-hosted sites of all kinds. Owners of self-hosted sites are free to make changes to the site files in order to customize the website and add any needed functions.

A hosted site uses web space provided by a hosting company, and it can be a full-service solution for those who want to publish a site easily and quickly, without dealing with design , ongoing site maintenance , or other technical issues . WordPress.com is a hosted platform that runs on the very popular WordPress software, but WordPress.org simply makes the WordPress site package available for download and use in self-hosting as the user chooses.

WordPress.com: A Hosted Alternative for Easy Use

WordPress.com provides all the tools for a hosted WordPress site. It offers users a WordPress platform for getting a site up and running with no coding expertise needed, and WordPress.com takes care of all the ongoing management of the site. At its simplest level, all users need to do is to sign up for a free account, pick a theme, and start publishing. This makes WordPress.com a popular choice for students, bloggers, and creatives who don't have a need-or have an interest in-the full range of customization options offered by WordPress.org.

WordPress.com offers multiple plans starting with the basic free account. For more services and options such as adding a custom theme, users can move up to paid plans that include Personal, Premium, and Business. Each of these paid plans allows for greater customization and control over the site's operations so that it more closely resembles a self-hosted WordPress site.

But the convenience and ease of use that makes a WordPress.com site so appealing also have their drawbacks. Unless a user upgrades to a paid plan that includes a custom domain name, a WordPress.com site will always have the extension "WordPress.com," in the site name-a sure sign that you're using a hosted site. A domain name that includes the host provider in that way can signal a personal site or blog, not a professional site dedicated to doing business or offering a service.

WordPress.org: Hands-On and Versatile

WordPress.org is the home of the WordPress software files, a collection of templates in the PHP programming language that can be modified by any user. With its vast collection of customizable templates, plugins for added functionality, and a visual text editor, WordPress can be used by both beginners and experienced site designers, who can work directly with its files and stylesheet for precise customization. But, with this self-hosted version of WordPress, it's up to the user to maintain the site aside from features offered by the hosting provider and to install the plugins and other elements for customizing the site.

Comparing Features on WordPress.com and WordPress.org

With those distinctions in mind, here's a look at how WordPress.com and WordPress.org stack up in terms of key WordPress features.

Themes

Themes are a defining feature of WordPress sites. With a WordPress.com site, you have the choice of a wide range of premade free WordPress themes -all that's needed is to add the content you want. But, unless you're paying for premium, you can't add a theme from an outside source.

The self-hosted version of WordPress allows users to install and change themes at will, and themes can come from any source. Both premium and free themes can be customized using tools on the site's admin dashboard, or more experienced designers can work directly with its files to fully customize the site. Generally speaking, premium themes have more capabilities and customization features compared to free themes.

Plugins

WordPress.com states that users don't need to worry about installing plugins since the functions of many plugins come preloaded with every site plan . These include social media sharing plugins to increase engagement , google analytics, contact forms, and more. But other plugins generally can't be installed on a WordPress.com site, which limits the range of available options for professional users with specific needs.

Self-hosted WordPress is famous for its long list of premium and free plugins-bits of code designed by developers in the WordPress community to add specific functions that aren't available in the basic WordPress install. Plugins can be used for things such as creating a contact form, building an online store, or adding a gallery to the site. Users can even fill the analytics gaps on their sites by installing Jetpack, an "all in one" social sharing plugin designed by WordPress.com.

Domain Names

When you choose a domain name , it becomes a site's online identity, and most business experts advocate owning your own domain. Self-hosted WordPress sites have custom domain names that clearly indicate the site isn't being hosted on a third-party platform. But, unless you're paying for premium to have a custom domain, a WordPress.com site always comes with the extension "WordPress.com" after your domain name.

WordPress.com and WordPress.org offer different ways to take advantage of the site building power of WordPress. For those who prefer to focus on creating content for a blog, WordPress.com takes care of everything else, with no need to be concerned with site maintenance and technical issues.

WordPress.org simply makes the WordPress platform available to as many users as possible-and the rest is up to them. Which should you choose? That depends on your plans for your site and the way you want to run it.

Bluehost

# data[].attributes.attachment_link.title
What is the difference between WordPress.com and WordPress.org?

# data[].attributes.attachment_link.description
A new user has two options for starting a WordPress site: WordPress.com and WordPress.org. While both of these offer the popular WordPress site building and content management system , there is a difference-and knowing those differences can help you make the right choice for your new website and WordPress hosting needs.

# data[].attributes.body
New stricter regulations have recently come into effect. These mainly cover 1. How you ask for information (you must not presume  consent to join mailing lists, you must be clear how you will use the data when you collect it) 2. Storage (you must ensure that data is stored securely  and must provide a copy of all data if a data subject asks for it)

# data[].attributes.body
Overview of Office 365 Information Protection for GDPR

# data[].attributes.attachment_link.readable_text
This solution demonstrates how to protect sensitive data that is stored in Office 365 services. It includes prescriptive recommendations for discovering, classifying, protecting, and monitoring personal data. This solution uses General Data Protection Regulation (GDPR) as an example, but you can apply the same process to achieve compliance with many other regulations.

GDPR regulates the collection, storage, processing, and sharing of personal data. Personal data is defined very broadly under the GDPR as any data that relates to an identified or identifiable natural person that is a resident of the European Union (EU).

Article 4 - Definitions

'personal data' means any information relating to an identified or identifiable natural person ('data subject'); an identifiable natural person is one who can be identified, directly or indirectly, in particular by reference to an identifier such as a name, an identification number, location data, an online identifier or to one or more factors specific to the physical, physiological, genetic, mental, economic, cultural or social identity of that natural person;

This solution is intended to help organizations discover and protect personal data in Office 365 that might be subject to the GDPR. It is not offered as a GDPR compliance attestation. Organizations are responsible for ensuring their own GDPR compliance and are advised to consult their legal and compliance teams or to seek guidance and advice from third parties that specialize in compliance.

GDPR Assessment is a quick, online self-evaluation tool available at no cost to help your organization review its overall level of readiness to comply with the GDPR.

Assess and manage your compliance risk

The first step towards GDPR compliance is to assess whether the GDPR applies to your organization, and, if so, to what extent. This analysis includes understanding the data your organization processes and where it resides.

Step 1 - Use Compliance Manager to view the regulation requirements and track your progress

Compliance Manager provides tools to track, implement, and manage the auditing controls to help your organization reach compliance against various standards, including GDPR.

For more information, see Use Compliance Manager in the Service Trust Portal.

Step 2 - Use Content Search and sensitive information types to find personal data

Discover personal data in your environment that is subject to the GDPR. Use Content Search together with sensitive information types to:

Sensitive information types define how the automated process recognizes specific information types such as health service numbers and credit card numbers. This article includes a set you can use as a starting point. Many more sensitive information types are coming soon for personal data in EU countries.

For more information, see Search for and find personal data.

Classify, protect, and monitor personal data in Office 365 and other SaaS apps

Some of the capabilities used for information protection in Office 365 can also be used to protect sensitive data in other SaaS applications.

This illustration is described by the rest this section (steps 3-5).

Step 3 - Decide if you want to use labels in addition to sensitive information types

Sensitive information types are a form of classification. See Architect a classification schema for personal data, to decide if you also want to implement labels. To apply labels, see Apply labels to personal data in Office 365.

In the illustration, sensitive information types and labels work across Office 365. Coming soon, you can use these with Cloud App Security to find sensitive data in other SaaS apps, such as Box and Salesforce.

Step 4 - Protect personal data in Office 365

Protection for personal data starts with Office 365 data loss prevention. There are several other capabilities recommended for protecting access to personal data, including Office 365 Message Encryption for email.

These protections can be targeted to specific data sets:

Site and library-level permissions

Site-level external sharing policies

Site-level device access policies

Protection for access to Office 365 and other cloud services include:

Identity and device access protection in Enterprise Mobility + Security (EMS)

Privileged access management

Windows 10 security capabilities

For more information about applying proteciton, see Apply protection to personal data in Office 365.

Step 5 - Monitor for leaks of personal data

Office 365 data loss prevention reports provide the greatest level of detail for monitoring sensitive data. You can setup automated alerts and investigate breaches by using the Office 365 audit log. Cloud App Security extends the ability to find and monitor sensitive data to other SaaS providers. For more information on these tools, see Monitor for breaches of personal data.

# data[].attributes.attachment_link.title
Overview of Office 365 Information Protection for GDPR

# data[].attributes.attachment_link.description
This solution demonstrates how to protect sensitive data that is stored in Office 365 services. It includes prescriptive recommendations for discovering, classifying, protecting, and monitoring personal data. This solution uses General Data Protection Regulation (GDPR) as an example, but you can apply the same process to achieve compliance with many other regulations.

# data[].attributes.body
"New stricter regulations have recently come into effect. These mainly cover 1. How you ask for information (you must not presume  consent to join mailing lists, you must be clear how you will use the data when you collect it) 2. Storage (you must ensure that data is stored securely  and must provide a copy of all data if a data subject asks for it)
"

# data[].attributes.headline
GDPR docs linked to participant database

# data[].attributes.subject
GDPR docs linked to participant database

# data[].attributes.body
note in particular their comment on Server security half way down.

# data[].attributes.attachment_link.readable_text
What I intend to provide here are some thoughts about how these regulations may affect users of the Participants Database WordPress plugin. Please note that you may also have site-wide issues that you will need to address: this article deals only with issues that affect the use of the Participants Database plugin within the context of the GDPR.

Complying with the new European General Data Protection Regulation is potentially a big deal for your website. If you have any users from the European Union or European Economic Area (even if they are not in Europe at the time) they and their personal information is protected by the GDPR. This would potentially include any site that offers an open registration form.

What is Personal Information?

I do not know what kinds of information can be considered personal and therefore protected by GDPR, and in many ways this is an open question that will eventually be decided in the courts. To be on the safe side, any information submitted by a user should be considered personal information, including meta values such as an IP address.

Key Points of the GDPR that May Affect Participants Database

Since Participants Database does (in most cases) store personal information, it is subject to the GDPR. Here are what I see are the key points to address:

clear statement of use - a form that obtains consent to use personal data must include a clear, honest and unambiguous statement of how the data will be used. This can possibly be on a separate page where you have published your privacy statement.

evidence of consent - you must have a record of the user's consent to use their personal data. This should probably include a date and an IP address so that you can show that the person submitted their consent on a specific occasion.

opt-in only - you cannot use an opt-out checkbox or an opt-in checkbox that defaults to being checked. The user must take the step of consenting to the use. This is critical.

means to see what information is stored - you need to be able to provide to your users, on request, all of the data you have stored for them.

ability to delete data - you need to provide a way for a user to have all of their personal information deleted from the database.

server security - you need to take care to protect the security of the data stored on the server. In most cases, this will be up to the hosting provider, but if you are managing your own server, you'll need to demonstrate that the server has been secured against data breaches. Installing a security plugin is a very good idea.

notice of data breach - if you do experience a hack or data breach, you are required to let your users know their data may have been compromised.

Let's go over each point where I offer some suggestions for addressing them.

Clear Statement of Use

What may be sufficient here is a brief statement on your registration or consent form that states how the data will be used. Include a link to your formal privacy statement where you can go into more detail. The privacy statement is an important feature where you can notify the user of their rights and options to manage their personal data. It is also a good place to explain how the data will be safeguarded.

I recommend you have a detailed privacy statement somewhere on your site, and then provide easy-to-find links to it.

Evidence of Consent

In my understanding, any registration form or consent form must contain a checkbox that is not checked by default where a clear statement of consent is agreed to...for example:
I agree to allow the use of this information as described in the Privacy Statement
When that form is submitted, it is important to also record the time of the submission and possibly the IP address in use at the time. The timestamp is automatic on registration forms, but on a consent form (that is, a form that is submitted after the initial registration has been taken) you will need to use a hidden field that records the time of the submission, and this is explained below. This information can be used to show that the user submitted their consent at a specific time and from a specific place.

Opt-In Only

If you are collecting any kind of personal information, you must provide an "Opt-In" checkbox (or other means of getting their consent) that does not default to being checked. You must show that your users have taken an explicit step to authorize your use of the data. It cannot be any kind of passive consent, such as "use of this site implies consent" statements or silent enrollment in marketing. The user must actively consent to give you the legal right to use the data under the GDPR.

Means to See What Information is Stored

You must provide a way for the people for whom you have personal information to see what exactly you have stored for them. I believe it is sufficient to provide a way for them to email you and ask for the information. If you have a huge site, you may want to consider having this handled automatically.

Ability to Delete Data

You should provide your members or participants a way to request to have their data deleted. Again, an email requesting the deletion may be sufficient. It is important you respond to this with a confirmation that is kept as a record of the deletion. Of course, you must actually delete the information. Whether this needs to also include backups, I don't know.

Server Security

There is no such thing as perfect server security. I mean, even the NSA can't keep hackers out...therefore, what is needed is a good-faith effort to keep your servers secure. You may be depending on your hosting provider for this. In that case, it may be a good idea to ask them to tell you what kind of security safeguards are in use. Keep their response as a record. It's also a good idea to install a security plugin. If you are managing your own server, you'll need to be able to demonstrate that reasonable precautions against a data breach have been taken.

Notice of Data Breach

If you become aware of a security breach on your server that could expose personal data, you must notify your users. It doesn't matter if the breach happened a long time ago, as soon as you become aware of it, you must notify your users. In some cases, you will be depending on your hosting provider to alert you that the server was compromised. If the breach happens on your site (as opposed to on the server) you may be depending on your security plugin to let you know this happened. It's a good idea to investigate any mysterious events (such as files appearing on your site with no explanation) you may notice.

If your registration forms do not include a checkbox giving consent to use the data, add a consent checkbox to your signup form. Make sure that there is an explanation of how the data will be used and protected: I think this can be stated briefly in the form while including a link to your formal privacy statement.

If you do not have a good privacy statement published, take care of that right away. It should include an honest, explicit explanation of how the data will be used, and what steps are taken to protect the data. I doubt you need to be too detailed about that last part.

Make sure that links to the privacy statement are easy to find, and certainly displayed on registration pages and any other page where Participants Database forms are displayed.

Re-Authorizing Your Consent to Use Personal Information

Re-Authorizing means sending out an email to everyone you have personal information for to get their explicit consent to use that information. This usually means sending them a link to your consent form. You should be prepared to delete the information for all persons who do not consent to its use.

I recommend you consider re-authorizing your use of personal data if any of these apply:

you do not have good evidence of consent

your privacy and/or terms-of-use statements were updated or changed

you were using an opt-out or default opt-in consent agreement when your data was collected

you did not obtain explicit consent from your users to use their personal data (silent opt-in)

you just want to be careful to be in compliance with GDPR

The Consent Form

In my understanding, a consent form needs to accomplish three things:

1. explanation of how the personal data will be handled and used (i.e., your privacy statement)

2. obtain explicit consent to use the data (like a checkbox)

3. record the time and IP used to submit the consent for evidence that consent was given

I suggest you set up a special form that is only for the purpose of getting consent. Here are some instructions for doing that:

Setting Up a Consent Form in Participants Database

First, you will need to create a page to hold the form. Use the [pdb_record] shortcode on that form. In that shortcode, specify only the fields you need. At least one consent checkbox (you many need to get consent for more than one thing) and the timestamp and IP address. Your shortcode will look something like this:

[pdb_record fields="consent,consent_timestamp,consent_ip"]

To create a timestamp field, create a new field (perhaps named "Consent Timestamp"), make it a hidden read-only field and put "SERVER:REQUEST_TIME" in as the default value. This will record the Unix timestamp of the submission.

To record the IP, set up a hidden field (perhaps named "Consent IP") with the default value of SERVER:REMOTE_ADDR. If your site uses some kind of firewall or service such as CloudFlare that does not place the user's originating IP in the REMOTE_ADDR field, you will need to use a different setup for this. Check the documentation for the service for the details.

Last, set up your consent checkbox (or checkboxes). Make sure the title and help text for the checkbox make it clear exactly what permission is begin given for. Do not set it up to default to being checked, the user must check the box themselves.

Setting Up the Re-Authorization Email in Participants Database

If you want to use Participants Database to send the email, you will need to use the Email Expansion Kit add-on. This is really only a viable option if you have a list smaller than a couple hundred records, because it's not set up to send thousands of emails. If you need that, use an email service such as MailChimp and check the next section for how to set that up.

To open the Participants Database re-authorization form, you will need to provide the user with a private link so the form knows which record to update with the consent. Normally, the private link goes to the Participant Record Page. You can use that page to show your re-authorization form, but if you want to set up a special page for the form, you will need to build the private link yourself.

Let's say your re-authorization page is called "reauthorize" If it was on my site, the URL for that page could be something like "https://xnau.com/participants/reauthorize" To include a reauthorization link in your Participants Database email, you can build the link like this: https://xnau.com/participants/reauthorize?pid=[private_id]

Reauthorizing by Mass Email

If you are using a mass-email service to ask for re-authorization, you probably can't use a Participants Database private link to send them to the reauthorization form. Instead, you can use a special signup form to do the job. The way this works is if their email can be used as a unique identifier, then you can use a signup form and have them enter their email as well as provide their consent. When submitted, the form will match an existing record's email address and update the record with the consent.

Make sure that you have the "duplicate record settings" (under the Signup Form" tab) set up to update a record with a matching email.

Set up the signup form shortcode the same as described above for the record shortcode, only you need to include the identifying email field...for example:

[pdb_signup field="email,consent,consent_timestamp,consent_ip"]

Do I Really Need to Do This?

Is what all site operators are asking themselves about this. I certainly can't answer that question, but there is a lot at stake. It remains to be seen whether small operators will see legal consequences, but having a European court judge against your site can't be good for business. For email marketers, this is an agonizing choice because the potential is to lose a large part of your mailing list. What we, as small site operators, are supposed to do is ask a lawyer for advice on how to proceed-there are legal technicalities involved-but of course nearly all of us can't afford that.

For myself, I am betting that my good-faith efforts to abide by these regulations will be enough to keep me out of legal trouble.

# data[].attributes.attachment_link.title
GDPR Compliance and Participants Database

# data[].attributes.attachment_link.description
What I intend to provide here are some thoughts about how these regulations may affect users of the Participants Database WordPress plugin. Please note that you may also have site-wide issues that you will need to address: this article deals only with issues that affect the use of the Participants Database plugin within the context of the GDPR.

# data[].attributes.body
Wordpress Database Management with PHPMyAdmin

# data[].attributes.body
Mozilla

# data[].attributes.attachment_link.readable_text
Part (a): Secure your WordPress website by protecting the login page and preventing brute force attacks

Everyone knows the standard WordPress login page URL. The backend of the website is accessed from there, and that is the reason why people try to brute force their way in. Just add /wp-login.php or /wp-admin/ at the end of your domain name and there you go.

What I recommend is to customize the login page URL and even the page's interaction. That's the first thing I do when I start securing my website.

Why? Because it's usually the user's fault that their site got hacked. There are some responsibilities that you have to take care of as a website owner. So the key question is, what are you doing to save your site from being hacked? Protecting the login page and preventing brute force attacks is one of the best things you can do.

Here are some suggestions for securing your WordPress website login page:

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.

3. Use your email to login

By default, you have to input your username to log into WordPress. Using an email ID instead of a username is a more secure approach. The reasons are quite obvious. Usernames are easy to predict, while email IDs are not. Also, any WordPress user account is created with a unique email address, making it a valid identifier for logging in.

Several WordPress security plugins allow you to set up login pages so that all users must use their email addresses to log in.

4. Rename your login URL to secure your WordPress website

Changing the login URL is an easy thing to do. By default, the WordPress login page can be accessed easily via wp-login.php or wp-admin added to the site's main URL.

When hackers know the direct URL of your login page, they can try to brute force their way in. They attempt to log in with their GWDb (Guess Work Database, i.e. a database of guessed usernames and passwords; e.g. username: admin and password: p@ssword ... with millions of such combinations).

At this point, we have already restricted the user login attempts and swapped usernames for email IDs. Now we can replace the login URL and get rid of 99% of direct brute force attacks.

This little trick restricts an unauthorized entity from accessing the login page. Only someone with the exact URL can do it. Again, the iThemes Security plugin can help you change your login URLs. Like so:

Change wp-login.php to something unique; e.g. my_new_login

Change /wp-admin/ to something unique; e.g. my_new_admin

Change /wp-login.php?action=register to something unique; e.g. my_new_registeration

5. Adjust your passwords

Play around with your passwords and change them regularly to secure your WordPress website. Improve their strength by adding uppercase and lowercase letters, numbers, and special characters. Many people opt for long passphrases since these are nearly impossible for hackers to predict but easier to remember than a bunch of random numbers and letters.

And, okay, we all know that the above is what we "should" do, but it's not always something we have time for. This is where some quality password managers come into play. They will not only generate safe passwords for you but then store them inside a secure vault, which will save you the hassle of having to remember them.

Here's an in-depth comparison of ours looking into the best password managers in the market.

6. Automatically log idle users out of your site

Users leaving wp-admin panel of your site open on their screens can pose a serious WordPress security threat. Any passerby can change information on your website, alter a person's user account, or even break your site altogether. You can avoid this by ensuring that your site logs people out after they have been idle for a certain period of time.

You can set this up by using a plugin like BulletProof Security. This plugin allows you to set a customized time limit for idle users, after which they will automatically be logged out.

Part (b): Secure your WordPress website through the admin dashboard

For a hacker, the most intriguing part of a website is the admin dashboard, which is indeed the most protected section of all. So, attacking the strongest part is the real challenge. If accomplished, it gives the hacker a moral victory and the access to do a lot of damage.

Here's what you can do to secure your WordPress website admin dashboard:

7. Protect the wp-admin directory

The wp-admin directory is the heart of any WordPress website. Therefore, if this part of your site gets breached, then the entire site can get damaged.

One possible way to prevent this is to password-protect the wp-admin directory. With such a WordPress security measure, the website owner may access the dashboard by submitting two passwords. One protects the login page, and the other secures the WordPress admin area.

Setting this up usually involves adjusting your hosting setup via cPanel. Still, this isn't too difficult to do if you follow the right steps.

8. Use SSL to encrypt data

Implementing an SSL (Secure Socket Layer) certificate is one smart move to secure the admin panel. SSL ensures secure data transfer between user browsers and the server, making it difficult for hackers to breach the connection or spoof your info.

Getting an SSL certificate for your WordPress website is simple. You can purchase one from a third-party company or check to see if your hosting company provides one for free.

I use the Let's Encrypt free open source SSL certificate on most of my sites. Any good hosting company like SiteGround offers a free Let's Encrypt SSL certificate with its hosting packages.

The SSL certificate also affects your website's Google rankings. Google tends to rank sites with SSL higher than those without it. That means more traffic. Now who doesn't want that?

9. Add user accounts with care

If you run a WordPress blog, or rather a multi-author blog, then you need to deal with multiple people accessing your admin panel. This could make your website more vulnerable to WordPress security threats.

You can use a plugin like Force Strong Passwords if you want to make sure that whatever passwords users make are secure. This is just a precautionary measure, but it's better than having several users with weak passwords.

10. Change the admin username

During your WordPress installation, you should never choose "admin" as the username for your main administrator account. Such an easy-to-guess username is approachable for hackers. All they need to figure out is the password, then your entire site gets into the wrong hands.

I can't tell you how many times I have scrolled through my website logs, and found login attempts with username "admin".

The iThemes Security plugin can stop such attempts by immediately banning any IP address that attempts to log in with that username.

11. Monitor your files

If you want some added WordPress security, monitor the changes to your website's files via plugins like Wordfence, or again, iThemes Security.

Part (c): Secure your WordPress website through the database

All of your site's data and information is stored in the database. Taking care of it is crucial. Here are a few things you can do to make it more secure:

12. Change the WordPress database table prefix

If you have ever installed WordPress then you are familiar with the wp- table prefix that is used by the WordPress database. I recommend you change it to something unique.

Using the default prefix makes your site database prone to SQL injection attacks. Such attacks can be prevented by changing wp- to some other term. For instance, you can make it mywp- or wpnew-.

If you have already installed your WordPress website with the default prefix, then you can use a few plugins to change it. Plugins like WP-DBManager or iThemes Security can help you do the job with just a click of a button. (Make sure you back up your site before doing anything to the database).

13. Make backups regularly to secure your WordPress website

No matter how secure your WordPress website is, there is always room for improvements. But at the end of the day, keeping an off-site backup somewhere is perhaps the best antidote no matter what happens.

If you have a backup, you can restore your WordPress website to a working state any time you want. There are some plugins that can help you in this respect. For instance, there are all of these.

If you are looking for a premium solution then I recommend VaultPress by Automattic, which is great. I have it set up so it creates backups every week. And should anything bad ever happen, I can easily restore the site with just one click.

I know some larger websites run backups every hour, but for most organizations that is complete overkill. Not to mention, you would need to ensure that most of those backups are being deleted after a new one is made since each backup file takes up space on your drive. That said, I'd recommend weekly or monthly backups for most organizations.

On top of the backups, VaultPress also checks my site for malware and alerts me if anything shady is going on.

14. Set strong passwords for your database

A strong password for the main database user is a must since this password is the one WordPress uses to access the database.

As always, use uppercase, lowercase, numbers, and special characters for the password. Passphrases are excellent as well. I once again recommend LastPass for random password generation and storing. A free, and quick, tool for making strong passwords is the Secure Password Generator.

15. Monitor your audit logs

When you're running WordPress multisite, or handling a multi-author website, it's essential to understand what type of user activity is going on. Your writers and contributors might be changing passwords, but there are other things you might not want to happen. For instance, theme and widget changes are obviously only reserved for the admins. When you check the audit log you're able to make sure that your admins and contributors are not trying to change something on your site without approval.

The WP Security Audit Log plugin provides a full list for this activity, along with email notifications and reports. At its simplest, the audit log could help you see that a writer is having trouble logging in. But the plugin might also reveal malicious activity from one of your users.

Part (d): Let the host handle your WordPress security

Almost all hosting companies claim to provide an optimized environment for WordPress, but we can still go a step further:

16. Protect the wp-config.php file

The wp-config.php file holds crucial information about your WordPress installation, and it's the most important file in your site's root directory. Protecting it means securing the core of your WordPress blog.

This tactic makes things difficult for hackers to breach the security of your site, since the wp-config.php file becomes inaccessible to them.

As a bonus, the protection process is really easy. Just take your wp-config.php file and move it to a higher level than your root directory.

Now, the question is, if you store it elsewhere, how does the server access it? In the current WordPress architecture, the configuration file settings are set to the highest on the priority list. So, even if it is stored one folder above the root directory, WordPress can still see it.

17. Disallow file editing

If a user has admin access to your WordPress dashboard they can edit any files that are part of your WordPress installation. This includes all plugins and themes.

If you disallow file editing, no one will be able to modify any of the files - even if a hacker obtains admin access to your WordPress dashboard.

To make this work, add the following to the wp-config.php file (at the very end):

define('DISALLOW_FILE_EDIT', true);

18. Set directory permissions carefully

Wrong directory permissions can be fatal, especially if you're working in a shared hosting environment.

In such a case, changing files and directory permissions is a good move to secure the website at the hosting level. Setting the directory permissions to "755" and files to "644" protects the whole file system - directories, subdirectories, and individual files.

This can be done either manually via the File Manager inside your hosting control panel, or through the terminal (connected with SSH) - use the "chmod" command.

For more, you can read about the correct permission scheme for WordPress or install the iThemes Security plugin to check your current permission settings.

19. Disable directory listing with .htaccess

If you create a new directory as part of your website and do not put an index.html file in it, you may be surprised to find that your visitors can get a full directory listing of everything that's in that directory.

For example, if you create a directory called "data", you can see everything in that directory simply by typing http://www.example.com/data/ in your browser. No password or anything is needed.

You can prevent this by adding the following line of code in your .htaccess file:

Options All -Indexes

20. Block all hotlinking

Let's say you locate an image online and would like to share it on your website. First of all, you need permission or to pay for that image, otherwise there's a good chance it's illegal to do so. But if you do get permission, you might directly pull the image's URL and use that to place the photo in your post. The main problem here is that the image is shown on your site, but being hosted on another site's server.

From this perspective, you don't have any control over whether or not the photo remains on the server. But it's also important to realize that people might do this to your website.

If you're trying to secure your WordPress website, hotlinking is basically another person taking your photo and stealing your server bandwidth to show the image on their own website. In the end, you'll see slower loading speeds and the potential for high server costs.

Although there are some manual techniques for preventing hotlinking, the easiest method is to find a WordPress security plugin for the job. For instance, the All in One WP Security and Firewall plugin includes built-in tools for blocking all hotlinking.

21. Understand, and protect, against DDoS attacks

A DDoS attack is a common type of strike against your server bandwidth, where the attacker uses multiple programs and systems to overload your server. Although an attack like this does not jeopardize your site files, it's meant to crash your site for a long period of time if not resolved. Usually, you only hear about DDoS attacks when it happens to large companies like GitHub or Target. They're conducted by what many refer to as cyber-terrorists, so the motive might simply be to wreak havoc.

That said, you don't need to be a Fortune 500 company to be at risk.

If this worries you, we recommend signing up for the Sucuri or Cloudflare premium plans. These solutions have web application firewalls to analyze the bandwidth being used and block out DDoS attacks entirely.

Part (e): Secure your WordPress website through themes and plugins

Themes and plugins are essential ingredients for any WordPress website. Unfortunately, they can also pose serious security threats. Let's find out how we can secure your WordPress themes and plugins the right way:

22. Update regularly for WordPress security

Every good software product is supported by its developers and gets updated now and then. These updates are meant to fix bugs and sometimes have vital security patches. WordPress, and its plugins, is no different.

Not updating your themes and plugins can mean trouble. Many hackers rely on the mere fact that people can't be bothered to update their plugins and themes. More often than not, those hackers exploit bugs that have already been fixed.

So, if you're using any WordPress product, update it regularly. Plugins, themes, everything. The good news is that WordPress automatically rolls out updates for its users, so you'll receive an email notifying you of the update and information on the fixes in your dashboard.

As for the plugins, these must be updated manually by going to Plugins in your dashboard. When a plugin has a new version, it notifies you and provides a link to update now.

As an alternative, you could opt for a managed WordPress hosting plan. Along with many other features and improvements to your WordPress security, quality managed hosting offers automatic updates for all elements of your WordPress site.

Some managed hosting providers include Kinsta, SiteGround, and Flywheel. You can learn more about the top managed WordPress hosting here.

23. Remove your WordPress version number

Your current WordPress version number can be found very easily. It's basically sitting right there in your site's source view. You can also see it on the bottom of your dashboard (but this doesn't matter when trying to secure your WordPress website).

Here's the thing: if hackers know which version of WordPress you use, it's easier for them to tailor-build the perfect attack.

You can hide your version number with almost every WordPress security plugin that I mentioned above.

For a more manual approach (and to also remove the version number from RSS feeds,) consider adding the following function to your functions.php file:

function wpbeginner_remove_version() {
return '';
}
add_filter('the_generator', 'wpbeginner_remove_version');

Final thoughts on how to secure your WordPress website

If you are a beginner then that was a lot to take in. However, everything that I mentioned in this article is a step in the right direction. The more you care about your WordPress security, the harder it gets for a hacker to break in.

However, with that being said, probably equally as important as security is website performance. Basically, without a website that loads quickly, your visitors will never get a chance to consume your content. The average website visitor will only wait for 2 seconds before getting frustrated and leaving.

Here are some resources that can help you win the performance game and make sure that your website loads lightning fast:
If you have any questions on how to secure your WordPress website, let us know in the comments and we'll answer them! So what are your WordPress security challenges?

# data[].attributes.attachment_link.title
23 Simple WordPress Security Tricks to Keep Your Website Safe in 2019

# data[].attributes.attachment_link.description
Everyone knows the standard WordPress login page URL. The backend of the website is accessed from there, and that is the reason why people try to brute force their way in. Just add /wp-login.php or /wp-admin/ at the end of your domain name and there you go.

# data[].attributes.attachment_link.readable_text
WordPress security is a topic of huge importance for every website owner. Google blacklists around 10,000+ websites every day for malware and around 50,000 for phishing every week.

If you are serious about your website, then you need to pay attention to the WordPress security best practices. In this guide, we will share all the top WordPress security tips to help you protect your website against hackers and malware.

While WordPress core software is very secure, and it's audited regularly by hundreds of developers, there is a lot that can be done to keep your site secure.

At WPBeginner, we believe that security is not just about risk elimination. It's also about risk reduction. As a website owner, there's a lot that you can do to improve your WordPress security (even if you're not tech savvy).

We have a number of actionable steps that you can take to protect your website against security vulnerabilities.

To make it easy, we have created a table of content to help you easily navigate through our ultimate WordPress security guide.

Table of Contents
Basics of WordPress Security WordPress Security in Easy Steps (No Coding) WordPress Security for DIY Users
Ready? Let's get started.

Why Website Security is Important?

A hacked WordPress site can cause serious damage to your business revenue and reputation. Hackers can steal user information, passwords, install malicious software, and can even distribute malware to your users.

Worst, you may find yourself paying ransomware to hackers just to regain access to your website.

In March 2016, Google reported that more than 50 million website users have been warned about a website they're visiting may contain malware or steal information.

Furthermore, Google blacklists around 20,000 websites for malware and around 50,000 for phishing each week.

If your website is a business, then you need to pay extra attention to your WordPress security.

Similar to how it's the business owners responsibility to protect their physical store building, as an online business owner it is your responsibility to protect your business website.

[ Back to Top ↑]

Keeping WordPress Updated

WordPress is an open source software which is regularly maintained and updated. By default, WordPress automatically installs minor updates. For major releases, you need to manually initiate the update.

WordPress also comes with thousands of plugins and themes that you can install on your website. These plugins and themes are maintained by third-party developers which regularly release updates as well.

These WordPress updates are crucial for the security and stability of your WordPress site. You need to make sure that your WordPress core, plugins, and theme are up to date.

[ Back to Top ↑]

Strong Passwords and User Permissions

The most common WordPress hacking attempts use stolen passwords. You can make that difficult by using stronger passwords that are unique for your website. Not just for WordPress admin area, but also for FTP accounts, database, WordPress hosting account, and your custom email addresses which use your site's domain name.

Many beginners don't like using strong passwords because they're hard to remember. The good thing is that you don't need to remember passwords anymore. You can use a password manager. See our guide on how to manage WordPress passwords.

Another way to reduce the risk is to not give anyone access to your WordPress admin account unless you absolutely have to. If you have a large team or guest authors, then make sure that you understand user roles and capabilities in WordPress before you add new user accounts and authors to your WordPress site.

[ Back to Top ↑]

The Role of WordPress Hosting

Your WordPress hosting service plays the most important role in the security of your WordPress site. A good shared hosting provider like Bluehost or Siteground take the extra measures to protect their servers against common threats.

Here is how a good web hosting company works in the background to protect your websites and data.

They continuously monitor their network for suspicious activity.

All good hosting companies have tools in place to prevent large scale DDOS attacks

They keep their server software and hardware up to date to prevent hackers from exploiting a known security vulnerability in an old version.

They have ready to deploy disaster recovery and accidents plans which allows them to protect your data in case of major accident.

On a shared hosting plan, you share the server resources with many other customers. This opens the risk of cross-site contamination where a hacker can use a neighboring site to attack your website.

Using a managed WordPress hosting service provides a more secure platform for your website. Managed WordPress hosting companies offer automatic backups, automatic WordPress updates, and more advanced security configurations to protect your website

We recommend WPEngine as our preferred managed WordPress hosting provider. They're also the most popular one in the industry. (See our special WPEngine coupon).

[ Back to Top ↑]

WordPress Security in Easy Steps (No Coding)

We know that improving WordPress security can be a terrifying thought for beginners. Especially if you're not techy. Guess what - you're not alone.

We have helped thousands of WordPress users in hardening their WordPress security.

We will show you how you can improve your WordPress security with just a few clicks (no coding required).

If you can point-and-click, you can do this!

Install a WordPress Backup Solution

Backups are your first defense against any WordPress attack. Remember, nothing is 100% secure. If government websites can be hacked, then so can yours.

Backups allow you to quickly restore your WordPress site in case something bad was to happen.

There are many free and paid WordPress backup plugins that you can use. The most important thing you need to know when it comes to backups is that you must regularly save full-site backups to a remote location (not your hosting account).

We recommend storing it on a cloud service like Amazon, Dropbox, or private clouds like Stash.

Based on how frequently you update your website, the ideal setting might be either once a day or real-time backups.

Thankfully this can be easily done by using plugins like VaultPress or UpdraftPlus. They are both reliable and most importantly easy to use (no coding needed).

[ Back to Top ↑]

Best WordPress Security Plugin

After backups, the next thing we need to do is setup an auditing and monitoring system that keeps track of everything that happens on your website.

This includes file integrity monitoring, failed login attempts, malware scanning, etc.

Thankfully, this can be all taken care by the best free WordPress security plugin, Sucuri Scanner.

You need to install and activate the free Sucuri Security plugin. For more details, please see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to go to the Sucuri menu in your WordPress admin. The first thing you will be asked to do is Generate a free API key. This enables audit logging, integrity checking, email alerts, and other important features.

The next thing, you need to do is click on the 'Hardening' tab from the settings menu. Go through every option and click on the "Apply Hardening" button.

These options help you lock down the key areas that hackers often use in their attacks. The only hardening option that's a paid upgrade is the Web Application Firewall which we will explain in the next step, so skip it for now.

We have also covered a lot of these "Hardening" options later in this article for those who want to do it without using a plugin or the ones that require additional steps such as "Database Prefix change" or "Changing the Admin Username".

After the hardening part, the default plugin settings are good enough for most websites and don't need any changes. The only thing we recommend customizing is 'Email Alerts'.

The default alert settings can clutter your inbox with emails. We recommend receiving alerts for key actions like changes in plugins, new user registration, etc. You can configure the alerts by going to Sucuri Settings " Alerts.

This WordPress security plugin is very powerful, so browse through all the tabs and settings to see all that it does such as Malware scanning, Audit logs, Failed Login Attempt tracking, etc.

Enable Web Application Firewall (WAF)

The easiest way to protect your site and be confident about your WordPress security is by using a web application firewall (WAF).

A website firewall blocks all malicious traffic before it even reaches your website.

DNS Level Website Firewall - These firewall route your website traffic through their cloud proxy servers. This allows them to only send genuine traffic to your web server.

Application Level Firewall - These firewall plugins examine the traffic once it reaches your server but before loading most WordPress scripts. This method is not as efficient as the DNS level firewall in reducing the server load.

To learn more, see our list of the best WordPress firewall plugins.

We use and recommend Sucuri as the best web-application firewall for WordPress. You can read about how Sucuri helped us block 450,000 WordPress attacks in a month.

The best part about Sucuri's firewall is that it also comes with a malware cleanup and blacklist removal guarantee. Basically if you were to be hacked under their watch, they guarantee that they will fix your website (no matter how many pages you have).

This is a pretty strong warranty because repairing hacked websites is expensive. Security experts normally charge $250 per hour. Whereas you can get the entire Sucuri security stack for $199 per year.
Improve your WordPress Security with the Sucuri Firewall "
Sucuri is not the only DNS level firewall provider out there. The other popular competitor is Cloudflare. See our comparison of Sucuri vs Cloudflare (Pros and Cons).

[ Back to Top ↑]

Move Your WordPress Site to SSL/HTTPS

SSL (Secure Sockets Layer) is a protocol which encrypts data transfer between your website and users browser. This encryption makes it harder for someone to sniff around and steal information.

Once you enable SSL, your website will use HTTPS instead of HTTP, you will also see a padlock sign next to your website address in the browser.

SSL certificates were typically issued by certificate authorities, and their prices start from $80 to hundreds of dollars each year. Due to added cost, most website owners opted to keep using the insecure protocol.

To fix this, a non-profit organization called Let's Encrypt decided to offer free SSL Certificates to website owners. Their project is supported by Google Chrome, Facebook, Mozilla, and many more companies.

Now, it is easier than ever to start using SSL for all your WordPress websites. Many hosting companies are now offering a free SSL certificate for your WordPress website.

If your hosting company does not offer one, then you can purchase one from Domain.com. They have the best and most reliable SSL deal in the market. It comes with a $10,000 security warranty and a TrustLogo security seal.

WordPress Security for DIY Users

If you do everything that we have mentioned thus far, then you're in a pretty good shape.

But as always, there's more that you can do to harden your WordPress security.

Some of these steps may require coding knowledge.

Change the Default "admin" username

In the old days, the default WordPress admin username was "admin". Since usernames make up half of login credentials, this made it easier for hackers to do brute-force attacks.

Thankfully, WordPress has since changed this and now requires you to select a custom username at the time of installing WordPress.

However, some 1-click WordPress installers, still set the default admin username to "admin". If you notice that to be the case, then it's probably a good idea to switch your web hosting.

Since WordPress doesn't allow you to change usernames by default, there are three methods you can use to change the username.

1. Create a new admin username and delete the old one.

2. Use the Username Changer plugin

3. Update username from phpMyAdmin

We have covered all three of these in our detailed guide on how to properly change your WordPress username (step by step).

Note: We're talking about the username called "admin", not the administrator role.

[ Back to Top ↑]

Disable File Editing

WordPress comes with a built-in code editor which allows you to edit your theme and plugin files right from your WordPress admin area. In the wrong hands, this feature can be a security risk which is why we recommend turning it off.

You can easily do this by adding the following code in your wp-config.php file.

// Disallow file edit
define( 'DISALLOW_FILE_EDIT', true );

Alternatively, you can do this with 1-click using the Hardening feature in the free Sucuri plugin that we mentioned above.

[ Back to Top ↑]

Disable PHP File Execution in Certain WordPress Directories

Another way to harden your WordPress security is by disabling PHP file execution in directories where it's not needed such as /wp-content/uploads/.

You can do this by opening a text editor like Notepad and paste this code:

<Files *.php>
deny from all
</Files>

Next, you need to save this file as .htaccess and upload it to /wp-content/uploads/ folders on your website using an FTP client.

For more detailed explanation, see our guide on how to disable PHP execution in certain WordPress directories

Alternatively, you can do this with 1-click using the Hardening feature in the free Sucuri plugin that we mentioned above.

[ Back to Top ↑]

Limit Login Attempts

By default, WordPress allows users to try to login as many time as they want. This leaves your WordPress site vulnerable to brute force attacks. Hackers try to crack passwords by trying to login with different combinations.

This can be easily fixed by limiting the failed login attempts a user can make. If you're using the web application firewall mentioned earlier, then this is automatically taken care of.

However, if you don't have the firewall setup, then proceed with the steps below.

First, you need to install and activate the Login LockDown plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, visit Settings " Login LockDown page to setup the plugin.

For detailed instructions, take a look at our guide on how and why you should limit login attempts in WordPress.

[ Back to Top ↑]

Add Two Factor Authentication

Two-factor authentication technique requires users to log in by using a two-step authentication method. The first one is the username and password, and the second step requires you to authenticate using a separate device or app.

Most top online websites like Google, Facebook, Twitter, allow you to enable it for your accounts. You can also add the same functionality to your WordPress site.

First, you need to install and activate the Two Factor Authentication plugin. Upon activation, you need to click on the 'Two Factor Auth' link in WordPress admin sidebar.

Next, you need to install and open an authenticator app on your phone. There are several of them available like Google Authenticator, Authy, and LastPass Authenticator.

We recommend using LastPass Authenticator or Authy because they both allow you to back up your accounts to the cloud. This is very useful in case your phone is lost, reset, or you buy a new phone. All your account logins will be easily restored.

We will be using the LastPass Authenticator for the tutorial. However, instructions are similar for all auth apps. Open your authenticator app, and then click on the Add button.

You will be asked if you'd like to scan a site manually or scan the bar code. Select the scan bar code option and then point your phone's camera on the QRcode shown on the plugin's settings page.

That's all, your authentication app will now save it. Next time you log in to your website, you will be asked for the two-factor auth code after you enter your password.

Simply open the authenticator app on your phone and enter the code you see on it.

[ Back to Top ↑]

Change WordPress Database Prefix

By default, WordPress uses wp_ as the prefix for all tables in your WordPress database. If your WordPress site is using the default database prefix, then it makes it easier for hackers to guess what your table name is. This is why we recommend changing it.

You can change your database prefix by following our step by step tutorial on how to change WordPress database prefix to improve security.

Note: This can break your site if it's not done properly. Only proceed, if you feel comfortable with your coding skills.

[ Back to Top ↑]

Password Protect WordPress Admin and Login Page

Normally, hackers can request your wp-admin folder and login page without any restriction. This allows them to try their hacking tricks or run DDoS attacks.

You can add additional password protection on a server-side level, which will effectively block those requests.

Follow our step-by-step instructions on how to password protect your WordPress admin (wp-admin) directory.

[ Back to Top ↑]

Disable Directory Indexing and Browsing

Directory browsing can be used by hackers to find out if you have any files with known vulnerabilities, so they can take advantage of these files to gain access.

Directory browsing can also be used by other people to look into your files, copy images, find out your directory structure, and other information. This is why it is highly recommended that you turn off directory indexing and browsing.

You need to connect to your website using FTP or cPanel's file manager. Next, locate the .htaccess file in your website's root directory. If you cannot see it there, then refer to our guide on why you can't see .htaccess file in WordPress.

After that, you need to add the following line at the end of the .htaccess file:
Options -Indexes
Don't forget to save and upload .htaccess file back to your site. For more on this topic, see our article on how to disable directory browsing in WordPress.

[ Back to Top ↑]

Disable XML-RPC in WordPress

XML-RPC was enabled by default in WordPress 3.5 because it helps connecting your WordPress site with web and mobile apps.

Because of its powerful nature, XML-RPC can significantly amplify the brute-force attacks.

For example, traditionally if a hacker wanted to try 500 different passwords on your website, they would have to make 500 separate login attempts which will be caught and blocked by the login lockdown plugin.

But with XML-RPC, a hacker can use the system.multicall function to try thousands of password with say 20 or 50 requests.

This is why if you're not using XML-RPC, then we recommend that you disable it.

There are 3 ways to disable XML-RPC in WordPress, and we have covered all of them in our step by step tutorial on how to disable XML-RPC in WordPress.

Tip: The .htaccess method is the best one because it's the least resource intensive.

If you're using the web-application firewall mentioned earlier, then this can be taken care of by the firewall.

[ Back to Top ↑]

Automatically log out Idle Users in WordPress

Logged in users can sometimes wander away from screen, and this poses a security risk. Someone can hijack their session, change passwords, or make changes to their account.

This is why many banking and financial sites automatically log out an inactive user. You can implement similar functionality on your WordPress site as well.

You will need to install and activate the Inactive Logout plugin. Upon activation, visit Settings " Inactive Logout page to configure plugin settings.

Simply set the time duration and add a logout message. Don't forget to click on the save changes button to store your settings.

[ Back to Top ↑]

Add Security Questions to WordPress Login Screen

Adding a security question to your WordPress login screen makes it even harder for someone to get unauthorized access.

You can add security questions by installing the WP Security Questions plugin. Upon activation, you need to visit Settings " Security Questions page to configure the plugin settings.

For more detailed instructions, see our tutorial on how to add security questions to WordPress login screen.

[ Back to Top ↑]

Scanning WordPress for Malware and Vulnerabilies

If you have a WordPress security plugin installed, then those plugins will routinely check for malware and signs of security breaches.

However, if you see a sudden drop in website traffic or search rankings, then you may want to manually run a scan. You can use your WordPress security plugin, or use one of these malware and security scanners.

Running these online scans is quite straight forward, you just enter your website URLs and their crawlers go through your website to look for known malware and malicious code.

Now keep in mind that most WordPress security scanners can just scan your website. They cannot remove the malware or clean a hacked WordPress site.

This brings us to the next section, cleaning up malware and hacked WordPress sites.

[ Back to Top ↑]

Fixing a Hacked WordPress Site

Many WordPress users don't realize the importance of backups and website security until their website is hacked.

Cleaning up a WordPress site can be very difficult and time consuming. Our first advice would be to let a professional take care of it.

Hackers install backdoors on affected sites, and if these backdoors are not fixed properly, then your website will likely get hacked again.

Allowing a professional security company like Sucuri to fix your website will ensure that your site is safe to use again. It will also protect you against any future attacks.

For the adventurous and DIY users, we have compiled a step by step guide on fixing a hacked WordPress site.

[ Back to Top ↑]

That's all, we hope this article helped you learn the top WordPress security best practices as well as discover the best WordPress security plugins for your website.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

# data[].attributes.attachment_link.title
The Ultimate WordPress Security Guide - Step by Step (2019)

# data[].attributes.attachment_link.description
WordPress security is a topic of huge importance for every website owner. Google blacklists around 10,000+ websites every day for malware and around 50,000 for phishing every week. If you are serious about your website, then you need to pay attention to the WordPress security best practices.

# data[].attributes.attachment_link.readable_text
Like the HTML Beginner Tutorial, the CSS Beginner Tutorial assumes that you know as much about CSS as you do about the cumulative effects of sea squirt discharge on the brain chemistry of Germanic ammonites. The purpose of this guide is to teach the bare essentials - just enough to get started. The CSS Intermediate Tutorial and CSS Advanced Tutorial go into more depth about CSS.

CSS, or Cascading Styles Sheets, is a way to style and present HTML. Whereas the HTML is the meaning or content, the style sheet is the presentation of that document.

Styles don't smell or taste anything like HTML, they have a format of ' property: value ' and most properties can be applied to most HTML tags.

Advertise Here! On a long-established, well-read, well-respected web development resource.

Contents

Related pages

# data[].attributes.attachment_link.description
Like the HTML Beginner Tutorial, the CSS Beginner Tutorial assumes that you know as much about CSS as you do about the cumulative effects of sea squirt discharge on the brain chemistry of Germanic ammonites. The purpose of this guide is to teach the bare essentials - just enough to get started.

# data[].attributes.attachment_link.title
CSS Tutorial: Learn CSS For Free | Codecademy

# data[].attributes.attachment_link.description
In this CSS tutorial, you'll set up file structures, beautify text and colors using CSS selectors to create the layouts and webpages you dream of without prototyping, hiring an engineer or sitting through a meeting to explain what you want..all in 11 hours.

# data[].attributes.attachment_link.readable_text
CSS is the language we use to style an HTML document.

CSS describes how HTML elements should be displayed.

This tutorial will teach you CSS from basic to advanced.

Start learning CSS now "

Examples in Each Chapter

This CSS tutorial contains hundreds of CSS examples.

With our online editor, you can edit the CSS, and click on a button to view the result.

CSS Example

body {
background-color: lightblue;
}

Try it Yourself "
Click on the "Try it Yourself" button to see how it works.
CSS Examples

Learn from over 300 examples! With our editor, you can edit the CSS, and click on a button to view the result.
Go to CSS Examples!
Use the Menu

We recommend reading this tutorial, in the sequence listed in the menu.

If you have a large screen, the menu will always be present on the left.

If you have a small screen, open the menu by clicking the top menu sign ☰.

CSS Templates

We have created some responsive W3.CSS templates for you to use.

You are free to modify, save, share, and use them in all your projects.
Free CSS Templates!
CSS Exercises

CSS Quiz

Test your CSS skills with a quiz.
Start CSS Quiz!
My Learning

Track your progress with the free "My Learning" program here at W3Schools.

Log in to your account, and start earning points!

This is an optional feature. You can study W3Schools without using My Learning.

CSS References

At W3Schools you will find complete CSS references of all properties and selectors with syntax, examples, browser support, and more.

Kickstart your career

Get certified by completing the course

# data[].attributes.attachment_link.description
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

# data[].attributes.attachment_link.readable_text
CSS is an acronym for "Cascading Style Sheet" and it is a style sheet or presentational language that is used to layout, format, and style documents that are written in HTML to make them look beautiful. CSS is generally used with HTML to change the style of web pages and user interfaces. You can use CSS to change the color, backgrounds, borders, paddings, margins, fonts, icons, position and various other properties of HTML elements in a web document.

This tutorial covers all the versions of CSS including CSS1,CSS2 and CSS3, and gives a complete understanding of CSS, starting from its basics to advanced concepts. This tutorial will teach you about CSS Box Model, Selectors, The cascade, Color, Sizing Units, Layout, Flexbox, Grid, Pseudo-elements and Pseudo-classes, Borders, Shadows, Focus, Functions, Gradients, Animations, Filters, Lists, Transitions, Overflow, Backgrounds, Text and typography.

CSS Examples

This tutorial teaches you every CSS concept with the help of suitable examples which you can execute in your browser itself without a need of any external HTML editor. Just to give you a little excitement about CSS, I'm going to give you a small CSS example which will change the look and feel of few HTML elements. Try to click the icon to see the output of the following code.

Below HTML & CSS code is editable where you can change the value of the code. Try to change the values of width, font-size and padding etc and then run it again to see the modified result.

<html>
<head>
   <style>
      div{ background-color: lightgrey; width:100%; padding:5px}

      h1{color: #40a944; text-align: center;}

      p{ font-family: verdana;font-size: 20px;}
   </style>
</head>
<body>
   <div>
      <h1>CSS Example</h1>
      <p>This is a paragraph.</p>
   </div>
</body>
</html>

How to learn CSS?

This is really easy to learn CSS. You can learn CSS by yourself, on your own schedule and anywhere where you have an Internet connection. We have provided this tutorial in Simple and Easy Steps alongwith appropriate examples which you can execute inline to see the result. You can make modifications in the given examples and check the result immediately. You can treat this tutorial as a full course for your CSS learning and you can complete it at your own pace, and when you're done, you'll be able to develop or customize any webpage.

Why to Learn CSS?

Cascading Style Sheets, fondly referred to as CSS, is a simple design language intended to simplify the process of making web pages presentable.

CSS is a MUST for students and working professionals to become a great Software Engineer specially when they are working in Web Development Domain. I will list down some of the key advantages of learning CSS:

Create Stunning Web site - CSS handles the look and feel part of a web page. Using CSS, you can control the color of the text, the style of fonts, the spacing between paragraphs, how columns are sized and laid out, what background images or colors are used, layout designs,variations in display for different devices and screen sizes as well as a variety of other effects.

Become a web designer - If you want to start a carrer as a professional web designer, HTML and CSS designing is a must skill.

Control web - CSS is easy to learn and understand but it provides powerful control over the presentation of an HTML document. Most commonly, CSS is combined with the markup languages HTML or XHTML.

Learn other languages - Once you understands the basic of HTML and CSS then other related technologies like javascript, php, or angular are become easier to understand.

Applications of CSS

As mentioned before, CSS is one of the most widely used style language over the web. I'm going to list few of the CSS applications here:

CSS saves time - You can write CSS once and then reuse same sheet in multiple HTML pages. You can define a style for each HTML element and apply it to as many Web pages as you want.

Pages load faster - If you are using CSS, you do not need to write HTML tag attributes every time. Just write one CSS rule of a tag and apply it to all the occurrences of that tag. So less code means faster download times.

Easy maintenance - To make a global change, simply change the style, and all elements in all the web pages will be updated automatically.

Superior styles to HTML - CSS has a much wider array of attributes than HTML, so you can give a far better look to your HTML page in comparison to HTML attributes.

Multiple Device Compatibility - Style sheets allow content to be optimized for more than one type of device. By using the same HTML document, different versions of a website can be presented for handheld devices such as PDAs and cell phones or for printing.

Global web standards - Now HTML attributes are being deprecated and it is being recommended to use CSS. So its a good idea to start using CSS in all the HTML pages to make them compatible to future browsers.

Audience

This CSS tutorial will help both students as well as professionals who want to make their websites or personal blogs more attractive. We recommend reading this tutorial, in the sequence listed in the left side menu.

Today, HTML and CSS are essential languages to learn for anyone involved in the web development process including Web Developers, Web Designers, Graphic Designers, Content Managers, and Project Managers etc.

Prerequisites

Don't worry, you really don't need to be a computer geek to learn CSS. It's very easy styling and presentational language which anyone can learn on the go. You simply needs to be familiar with:

Basic word processing using any text editor.

How to create directories and files.

How to navigate through different directories.

Internet browsing using popular browsers like Internet Explorer or Firefox.

Developing simple Web Pages using HTML or XHTML.

If you are new to HTML and XHTML, then we would suggest you to go through our HTML Tutorial or XHTML Tutorial first.

# data[].attributes.attachment_link.description
CSS Tutorial - CSS is an acronym for Cascading Style Sheet and it is a style sheet or presentational language that is used to layout, format, and style documents that are written in HTML to make them look beautiful. CSS is generally used with HTML to change the style of web pages and user interfaces.

# data[].attributes.attachment_link.readable_text
This article will recap some of the CSS layout features we've already touched upon in previous modules - such as different values - and introduce some of the concepts we'll be covering throughout this module.

Prerequisites:

The basics of HTML (study Introduction to HTML), and an idea of How CSS works (study Introduction to CSS.)

Objective:

To give you an overview of CSS page layout techniques. Each technique can be learned in greater detail in subsequent tutorials.

CSS page layout techniques allow us to take elements contained in a web page and control where they are positioned relative to their default position in normal layout flow, the other elements around them, their parent container, or the main viewport/window. The page layout techniques we'll be covering in more detail in this module are

Each technique has its uses, advantages, and disadvantages, and no technique is designed to be used in isolation. By understanding what each method is designed for you will be in a good place to understand which is the best layout tool for each task.

Normal flow

Normal flow is how the browser lays out HTML pages by default when you do nothing to control page layout. Let's look at a quick HTML example:

<p>I love my cat.</p>

<ul>
  <li>Buy cat food</li>
  <li>Exercise</li>
  <li>Cheer up friend</li>
</ul>

<p>The end!</p>

By default, the browser will display this code as follows:

Note here how the HTML is displayed in the exact order in which it appears in the source code, with elements stacked up on top of one another - the first paragraph, followed by the unordered list, followed by the second paragraph.

The elements that appear one below the other are described as block elements, in contrast to inline elements, which appear one beside the other, like the individual words in a paragraph.

Note: The direction in which block element contents are laid out is described as the Block Direction. The Block Direction runs vertically in a language such as English, which has a horizontal writing mode. It would run horizontally in any language with a Vertical Writing Mode, such as Japanese. The corresponding Inline Direction is the direction in which inline contents (such as a sentence) would run.

When you use CSS to create a layout, you are moving the elements away from the normal flow, but for many of the elements on your page the normal flow will create exactly the layout you need. This is why starting with a well-structured HTML document is so important, as you can then work with the way things are laid out by default rather than fighting against it.

The methods that can change how elements are laid out in CSS are as follows:

- Standard values such as block, inline or inline-block can change how elements behave in normal flow (see Types of CSS boxes for more information). We then have entire layout methods that are switched on via a value of display, for example CSS Grid and Flexbox.

Floats - Applying a value such as left can cause block level elements to wrap alongside one side of an element, like the way images sometimes have text floating around them in magazine layouts.

- Allows you to precisely control the placement of boxes inside other boxes. static positioning is the default in normal flow, but you can cause elements to be laid out differently using other values, for example always fixed to the top left of the browser viewport.

Table layout - features designed for styling the parts of an HTML table can be used on non-table elements using display: table and associated properties..

Multi-column layout - The Multi-column layout properties can cause the content of a block to layout in columns, as you might see in a newspaper.

The display property

The main methods of achieving page layout in CSS are all values of the display property. This property allows us to change the default way something displays. Everything in normal flow has a value of display, used as the default way that elements they are set on behave. For example, the fact that paragraphs in English display one below the other is due to the fact that they are styled with display: block. If you create a link around some text inside a paragraph, that link remains inline with the rest of the text, and doesn't break onto a new line. This is because the element is display: inline by default.

You can change this default display behaviour. For example, the element is display: block by default, meaning that list items display one below the other in our English document. If we change the display value to inline they now display next to each other, as words would do in a sentence. The fact that you can change the value of display for any element means that you can pick HTML elements for their semantic meaning, without being concerned about how they will look. The way they look is something that you can change.

In addition to being able to change the default presentation by turning an item from block to inline and vice versa, there are some bigger layout methods that start out as a value of display. However, when using these, you will generally need to invoke additional properties. The two values most important for our purposes when discussing layout are display: flex and display: grid.

Flexbox

Flexbox is the short name for the Flexible Box Layout Module, designed to make it easy for us to lay things out in one dimension - either as a row or as a column. To use flexbox, you apply display: flex to the parent element of the elements you want to lay out; all its direct children then become flex items. We can see this in a simple example.

The HTML markup below gives us a containing element, with a class of wrapper, inside which are three elements. By default these would display as block elements, below one another, in our English language document.

However, if we add display: flex to the parent, the three items now arrange themselves into columns. This is due to them becoming flex items and using some initial values that flexbox gives them. They are displayed as a row, because the initial value of flex-direction is row. They all appear to stretch to the height of the tallest item, because the initial value of the align-items property is stretch. This means that the items stretch to the height of the flex container, which in this case is defined by the tallest item. The items all line up at the start of the container, leaving any extra space at the end of the row.

In addition to the above properties that can be applied to the flex container, there are properties that can be applied to the flex items. These properties, among other things, can change the way that the items flex, enabling them to expand and contract to fit into the available space.

As a simple example of this, we can add the property to all of our child items, with a value of 1. This will cause all of the items to grow and fill the container, rather than leaving space at the end. If there is more space then the items will become wider; if there is less space they will become narrower. In addition, if you add another element to the markup the items will all become smaller to make space for it - they will adjust size to take up the same amount of space, whatever that is.

Note: This has been a very short introduction to what is possible in Flexbox, to find out more, see our Flexbox article.

Grid Layout

While flexbox is designed for one-dimensional layout, Grid Layout is designed for two dimensions - lining things up in rows and columns.

Once again, you can switch on Grid Layout with a specific value of display - display: grid. The below example uses similar markup to the flex example, with a container and some child elements. In addition to using display: grid, we are also defining some row and column tracks on the parent using the grid-template-rows and grid-template-columns properties respectively. We've defined three columns each of 1fr and two rows of 100px. I don't need to put any rules on the child elements; they are automatically placed into the cells our grid has created.

Once you have a grid, you can explicitly place your items on it, rather than relying on the auto-placement behavior seen above. In the second example below we have defined the same grid, but this time with three child items. We've set the start and end line of each item using the grid-column and properties. This causes the items to span multiple tracks.

Note: These two examples are just a small part of the power of Grid layout; to find out more see our Grid Layout article.

The rest of this guide covers other layout methods, which are less important for the main layout structures of your page but can still help you achieve specific tasks. By understanding the nature of each layout task, you will soon find that when you look at a particular component of your design the type of layout best suited to it will often be clear.

Floats

Floating an element changes the behavior of that element and the block level elements that follow it in normal flow. The element is moved to the left or right and removed from normal flow, and the surrounding content floats around the floated item.

The property has four possible values:

left - Floats the element to the left.

right - Floats the element to the right.

none - Specifies no floating at all. This is the default value.

inherit - Specifies that the value of the float property should be inherited from the element's parent element.

In the example below we float a <div> left, and give it a on the right to push the text away from the element. This gives us the effect of text wrapped around that box, and is most of what you need to know about floats as used in modern web design.

Note: Floats are fully explained in our lesson on the float and clear properties. Prior to techniques such as Flexbox and Grid Layout floats were used as a method of creating column layouts. You may still come across these methods on the web; we will cover these in the lesson on legacy layout methods.

Positioning techniques

Positioning allows you to move an element from where it would be placed when in normal flow to another location. Positioning isn't a method for creating your main page layouts, it is more about managing and fine-tuning the position of specific items on the page.

There are however useful techniques for certain layout patterns that rely on the property. Understanding positioning also helps in understanding normal flow, and what it is to move an item out of normal flow.

There are five types of positioning you should know about:

Static positioning is the default that every element gets - it just means "put the element into its normal position in the document layout flow - nothing special to see here".

Relative positioning allows you to modify an element's position on the page, moving it relative to its position in normal flow - including making it overlap other elements on the page.

Absolute positioning moves an element completely out of the page's normal layout flow, like it is sitting on its own separate layer. From there, you can fix it in a position relative to the edges of the page's <html> element (or its nearest positioned ancestor element). This is useful for creating complex layout effects such as tabbed boxes where different content panels sit on top of one another and are shown and hidden as desired, or information panels that sit off screen by default, but can be made to slide on screen using a control button.

Fixed positioning is very similar to absolute positioning, except that it fixes an element relative to the browser viewport, not another element. This is useful for creating effects such as a persistent navigation menu that always stays in the same place on the screen as the rest of the content scrolls.

Sticky positioning is a newer positioning method which makes an element act like position: static until it hits a defined offset from the viewport, at which point it acts like position: fixed.

Simple positioning example

To provide familiarity with these page layout techniques, we'll show you a couple of quick examples. Our examples will all feature the same HTML, which is as follows:

<h1>Positioning</h1>

<p>I am a basic block level element.</p>
<p class="positioned">I am a basic block level element.</p>
<p>I am a basic block level element.</p>

This HTML will be styled by default using the following CSS:

body {
  width: 500px;
  margin: 0 auto;
}

p {
    background-color: rgb(207,232,220);
    border: 2px solid rgb(79,185,227);
    padding: 10px;
    margin: 10px;
    border-radius: 5px;
}

The rendered output is as follows:

Relative positioning

Relative positioning allows you to offset an item from the position in normal flow it would have by default. This means you could achieve a task such as moving an icon down a bit so it lines up with a text label. To do this, we could add the following rule to add relative positioning:

.positioned {
  position: relative;
  top: 30px;
  left: 30px;
}

Here we give our middle paragraph a value of relative - this doesn't do anything on its own, so we also add and properties. These serve to move the affected element down and to the right - this might seem like the opposite of what you were expecting, but you need to think of it as the element being pushed on its left and top sides, which result in it moving right and down.

Adding this code will give the following result:

Absolute positioning

Absolute positioning is used to completely remove an element from normal flow, and place it using offsets from the edges of a containing block.

Going back to our original non-positioned example, we could add the following CSS rule to implement absolute positioning:

.positioned {
  position: absolute;
  top: 30px;
  left: 30px;
}

Here we give our middle paragraph a value of absolute, and the same and properties as before. Adding this code, however, will give the following result:

This is very different! The positioned element has now been completely separated from the rest of the page layout and sits over the top of it. The other two paragraphs now sit together as if their positioned sibling doesn't exist. The and properties have a different effect on absolutely positioned elements than they do on relatively positioned elements. In this case the offsets have been calculated from the top and left of the page. It is possible to change the parent element that becomes this container and we will take a look at that in the lesson on positioning.

Fixed positioning

Fixed positioning removes our element from document flow in the same way as absolute positioning. However, instead of the offsets being applied from the container, they are applied from the viewport. As the item remains fixed in relation to the viewport we can create effects such as a menu which remains fixed as the page scrolls beneath it.

For this example our HTML is three paragraphs of text, in order that we can cause the page to scroll, and a box to which we will give position: fixed.

<h1>Fixed positioning</h1>

<div class="positioned">Fixed</div>

<p>Paragraph 1.</p>
<p>Paragraph 2.</p>
<p>Paragraph 3.</p>

Sticky positioning

Sticky positioning is the final positioning method that we have at our disposal. It mixes the default static positioning with fixed positioning. When an item has position: sticky it will scroll in normal flow until it hits offsets from the viewport that we have defined. At that point it becomes "stuck" as if it had position: fixed applied.

Note: to find more out about positioning, see our Positioning article.

Table layout

HTML tables are fine for displaying tabular data, but many years ago - before even basic CSS was supported reliably across browsers - web developers used to also use tables for entire web page layouts - putting their headers, footers, different columns, etc. in various table rows and columns. This worked at the time, but it has many problems - table layouts are inflexible, very heavy on markup, difficult to debug, and semantically wrong (e.g., screen reader users have problems navigating table layouts).

The way that a table looks on a webpage when you use table markup is due to a set of CSS properties that define table layout. These properties can be used to lay out elements that are not tables, a use which is sometimes described as "using CSS tables".

The example below shows one such use; using CSS tables for layout should be considered a legacy method at this point, for those situations where you have very old browsers without support for Flexbox or Grid.

Let's look at an example. First, some simple markup that creates an HTML form. Each input element has a label, and we've also included a caption inside a paragraph. Each label/input pair is wrapped in a , for layout purposes.

<form>
  <p>First of all, tell us your name and age.</p>
  <div>
    <label for="fname">First name:</label>
    <input type="text" id="fname">
  </div>
  <div>
    <label for="lname">Last name:</label>
    <input type="text" id="lname">
  </div>
  <div>
    <label for="age">Age:</label>
    <input type="text" id="age">
  </div>
</form>

Now, the CSS for our example. Most of the CSS is fairly ordinary, except for the uses of the property. The , s, and s and s have been told to display like a table, table rows, and table cells respectively - basically, they'll act like HTML table markup, causing the labels and inputs to line up nicely by default. All we then have to do is add a bit of sizing, margin, etc. to make everything look a bit nicer and we're done.

You'll notice that the caption paragraph has been given display: table-caption; - which makes it act like a table - and caption-side: bottom; to tell the caption to sit on the bottom of the table for styling purposes, even though the markup is before the <input> elements in the source. This allows for a nice bit of flexibility.

html {
  font-family: sans-serif;
}

form {
  display: table;
  margin: 0 auto;
}

form div {
  display: table-row;
}

form label, form input {
  display: table-cell;
  margin-bottom: 10px;
}

form label {
  width: 200px;
  padding-right: 5%;
  text-align: right;
}

form input {
  width: 300px;
}

form p {
  display: table-caption;
  caption-side: bottom;
  width: 300px;
  color: #999;
  font-style: italic;
}

This gives us the following result:

You can also see this example live at css-tables-example.html (see the source code too.)

Multi-column layout

The multi-column layout module gives us a way to lay out content in columns, similar to how text flows in a newspaper. While reading up and down columns is less useful in a web context as you don't want to force users to scroll up and down, arranging content into columns can be a useful technique.

To turn a block into a multicol container we use either the column-count property, which tells the browser how many columns we would like to have, or the column-width property, which tells the browser to fill the container with as many columns of at least that width.

In the below example we start with a block of HTML inside a containing <div> element with a class of container.

<div class="container">
    <h1>Multi-column layout</h1>

    <p>Paragraph 1.</p>
    <p>Paragraph 2.</p>

</div>

We are using a column-width of 200 pixels on that container, causing the browser to create as many 200-pixel columns as will fit in the container and then share the remaining space between the created columns.

Summary

This article has provided a brief summary of all the layout technologies you should know about. Read on for more information on each individual technology!

In this module

# data[].attributes.attachment_link.description
This article will recap some of the CSS layout features we've already touched upon in previous modules - such as different values - and introduce some of the concepts we'll be covering throughout this module. Prerequisites: The basics of HTML (study Introduction to HTML), and an idea of How CSS works (study Introduction to CSS.)

# data[].attributes.body
If you do this, you will get a subdomain..that means it will have the company name in the domain name siobhan.weebly.com, butternut.wordpress.com etc

Once you have played with a few hosts, and looked at the pricing, you can upgrade the content to a paid site if you need to.

# data[].attributes.attachment_link.readable_text
We're the preferred web hosting provider for thousands of happy cloud family members because of the high level of support that our clients receive from our dedicated and knowledgeable support team. Read our client testimonials.

# data[].attributes.attachment_link.title
Joomla & WordPress Hosting, Support and Tutorials

# data[].attributes.attachment_link.description
We're the preferred web hosting provider for thousands of happy cloud family members because of the high level of support that our clients receive from our dedicated and knowledgeable support team. Read our client testimonials.

# data[].attributes.body
Learn CSS Flexbox

# data[].attributes.attachment_link.title
Weebly is the easiest way to create a website, store or blog

# data[].attributes.attachment_link.description
Weebly's free website builder makes it easy to build a website, blog, or online store. Find customizable designs, domains, and eCommerce tools for any type of business using our website builder.

# data[].attributes.body
You can often export the content from one company to another. You export and download the content, and then in hte new company you can 'upload' the content file with the words and pictures. Although it is easier to just start the site in your prefered host.

# data[].attributes.headline
Wait. My company has a website, but someone else has run it for years. How do I get it back?

# data[].attributes.subject
Wait. My company has a website, but someone else has run it for years. How do I get it back?

# data[].attributes.headline
These sites can help you get control of your site:

# data[].attributes.subject
These sites can help you get control of your site:

# data[].attributes.attachment_link.title
How to Regain Control of Your Website | T&S Online Marketing

# data[].attributes.attachment_link.description
If you've lost control of your website, you're not alone. Frequently people come to us at T&S whose webmaster has disappeared, volunteer has run out

# data[].attributes.attachment_link.readable_text
This subject is probably the most important thing I cover in my seminars and after what I just went through this morning with one of my own clients, it bears repeating again.

Just so we're all on the same page - a domain name is the address of your website. This site's domain is beckydavisdesign.com. You can tell because at the top of your browser in the address bar, that's what comes after the http://. The Domain is just the address. Hosting is the service you paid for to hold the files of your website. A domain name and hosting are often bought together, but don't need to be and can be purchased separately. They will often have separate login information, so it's important to know the difference.

Every website starts with the domain name, without that you do not have a site. More importantly, if you as the business owner do not have control over this name, then you do not have control over your site. If you had your designer "take care of" the purchasing of your domain name and hosting at the beginning and the billing goes to their email address, you have left yourself open to a lot of damage.

Beyond malicious things, without the login information for the domain and the hosting, you can never have someone else take care of your site for you. I do a lot of maintenance work for my clients on sites I didn't design and without the basic login information, I can't get to the hosted files to make changes. I have unfortunately heard many horror stories about designers who left town, got sick, didn't pay renewal bills, or were holding the owner in some way hostage. If the owners had had their own information and the bills had been sent to them, a lot of grief would have been avoided.

Take Control

Here are the steps every site owner should take to ensure that they have control of their site.

1. Go to networksolutions.com/whois, type in your domain name and see who comes up as the owner. Not you?! Now you know who is being listed as owner and that tells you where to go next. This listing also tells you something extremely valuable - when the domain expires. This date should go on your calendar. If you haven't gotten a bill at least a month in advance of this, then something is wrong. Paying attention to it a month early gives you time to correct the issue.

2. Go to my Login Information page and download a blank form. Print it out and as you do your investigating, (you did keep all the emails from the registrar and hosting company right?) write down the important information. Then store that file somewhere safe and fireproof. That means get it off the top of your desk!

3. If the owner that was listed was your designer and you're on good terms with them, you're in luck. Contact them and ask them to send you all the information on the login sheet. If this person gives you any grief about this request or hesitates in any way, that is a warning sign. Once you have it, test it to make sure it works. A good designer will give you instructions on how to do this. If you're still not sure, contact the registrar/host company and get help from them. If you change the password - be sure and document it!!

4. If the owner listed is someone you don't know and/or are not in good contact with, you may have more of a pain on your hands. Start with the registrar company (listed at the bottom of that whois page) and find out what your options are. Changing control can be very difficult, registrars do that on purpose to avoid fraud. They may want faxed and notarized documents proving your ownership.

(Clarification - Domain names are like postage meters, you never OWN them. You lease them for a year or more at a time.)

Keep Track

This is what happened to my client this morning. She never got a bill, so never paid the $9.95 for her yearly domain name renewal and it expired. With the domain name expired, the site disappeared and was replaced by a placeholder page. She panicked and I got a call way too early in the morning. I made sure a year ago that the billing information was in her name and her email address. Then she changed providers and got a new email address. No bill, no pay, site goes bye bye. Fortunately in this case, the registrar kept control of the name instead of releasing it back to the public. With a few phone calls, she was able to get the bill paid. Once that was done, I was able to re-direct the DNS (domain name server) to the correct host and voila the site was back up. I also updated her billing email address.

Lesson learned? She now has a reminder in her calendar a month ahead of the bill due date to make sure she got the bill and it was paid. And I made sure that she has all the login information she may need. Do you?

Further Resources

http://support.hostgator.com/articles/getting-started/what-is-the-difference-between-domains-vs-hosting-vs-website

http://www.keytlaw.com/urls/whocontrols.htm

# data[].attributes.attachment_link.title
Domain Names - Who controls yours? - Becky Davis Development

# data[].attributes.attachment_link.description
This subject is probably the most important thing I cover in my seminars and after what I just went through this morning with one of my own clients, it bears repeating again. Just so we're all on the same page - a domain name is the address of your website.