19 Best Mobile Apps to Manage Your WordPress Site

Are you looking for mobile apps to manage your WordPress site on the go? Running a successful website requires a lot of time, and its hard to sit in front of a computer all day. In this article, we will share the best mobile apps… Read More »

The post 19 Best Mobile Apps to Manage Your WordPress Site appeared first on WPBeginner.

Are you looking for mobile apps to manage your WordPress site on the go? Running a successful website requires a lot of time, and its hard to sit in front of a computer all day. In this article, we will share the best mobile apps to manage your WordPress site using your phone.

Best Mobile Apps to Manage Your WordPress Site

1. WordPress.com Apps

WordPress.com Apps

WordPress.com offers apps that connect to your self-hosted WordPress site. You can create posts, upload photos, and moderate comments from your Android or iOS devices.

Certain features of the app require you to create a WordPress.com account. It also comes with a built-in reader that shows the blogs you have followed on WordPress.com.

For detailed instructions, see our guide on how to use WordPress app on your mobile devices.

2. WooCommerce

WooCommerce iOS app

If you run an online store using WooCommerce, then you can use the WooCommerce app for iOS to manage your store on the go.

The app offers a beautiful interface to view your store performance such as orders and sales.

It is not the replacement for the Desktop version as it lacks in terms of features. However, it is pretty useful to look at orders even when you are away from a computer.

3. Google Analytics

Google Analytics app

Google Analytics is the most powerful and free analytics tool available for website owners. It allows you to answer questions like

– How many people visit your website?
– Where they come from?
– What they do while visiting your website?

If you are not already using it, then see our step by step guide on how to install Google Analytics in WordPress.

Google Analytics app allows you to view your site reports using your mobile device. It allows you to create and view custom reports. You can select date ranges and view real time reports.

4. Evernote

Evernote

Ideas for great blog posts, products, or strategies can appear out of no where. Evernote allows you to take notes using your mobile device, and it syncs across all your devices.

You can create to-do lists, draw doodles, take notes, save pictures, bookmarks, and videos. Evernote works on all mobile platforms, PCs, and Mac.

Alternatives: Google Keep | OneNote

5. Pingdom

Pingdom app

Pingdom is a popular website uptime monitoring service. You can set it up to monitor one site’s uptime for free.

Pingdom’s mobile apps alert you when your site is down. It also shows you the status of your website and the services you are monitoring.

6. Buffer

Buffer

Buffer allows you to schedule posts for your social media profiles. Their mobile apps allow you to do that from anywhere using your mobile device.

You can view the posts you have queued, posts you have shared, analytics, and add new content on the go. It helps you keep your followers engaged even when you are away from your desk.

7. IFTTT

IFTTT

IFTTT allows you make internet work for you. The IFTTT mobile app brings that power to your mobile devices.

You can use it as a monitoring tool, automate your workflow, and get instant notifications. Aside from WordPress, it also works with many other online services and tools. It even allows you to automate your smart home and office.

Take a look at our tutorial on how to automate WordPress and social media with IFTTT for more details.

8. Feedly

feedly

Feedly is a smart and modern feed reader. Using the Feedly app on your mobile phone, you can stay in touch with your favorite news sources, blogs, and websites.

You can also organize your favorite websites into different topics as collections. Feedly also makes it easy to share your articles directly from the app.

9. Facebook Pages Manager

Facebook Pages Manager

The easiest way to boost activity on your Facebook pages is by engaging with your audience. Facebook Pages Manager allows you to do manage your pages more efficiently.

It shows you notifications and activities from your Facebook Pages. You can also view reports on how well your posts are doing. Most importantly you can publish posts, upload photos, and respond to comments.

Need more Facebook tips? See our list of best Facebook tips and tutorials for WordPress users

10. Facebook Ads Manager

Facebook Ads Manager

Facebook Ads allow you to retarget website visitors on Facebook. If you are using them right, then you can easily boost your page likes several times over.

Facebook Ads Manager app allows you to view reports, create ads, and manage your ads from mobile devices.

11. Inbox by Google

Inbox by Gmail

As a WordPress site owner, you will get a lot of email notifications for comments, updates, and contact form notifications.

Inbox by Google allows you to clean up your inbox quickly. This smart email client automatically bundles your emails into groups and allows you to easily mark them as done.

It also reduces notifications by only notifying you for important emails, and it is pretty good at guessing which emails are important.

12. Google Drive

Google Drive

Google Drive offers you free storage for all your files. More importantly, it allows you to access those files from anywhere on any device.

Alternatives: Dropbox | OneDrive

13. Google Authenticator

Google Authenticator

Passwords can be easily cracked by hackers, and it makes your WordPress site vulnerable. Adding two step verification protects your WordPress site against hacking attempts.

Google Authenticator app helps you add two step verification to many applications including your WordPress site. See our guide on how to add two step verification with Google Authenticator in WordPress.

See our ultimate WordPress security guide to further improve your website security.

14. Google Adsense

Google Adsense

Google Adsense provides an easy way to make money for small websites and blogs. If you are already using Google Adsense to serve ads on your WordPress site, then Google Adsense app is a great companion for you.

The app provides you with an overview of your Adsense account. It gives you instant access to detailed earning reports on all key metrics.

15. PayPal

PayPal

If you run an online store, then PayPal mobile app is a must have app. You can see all your PayPal activity from your mobile devices.

You can also make payments, transfer balance from PayPal to your bank account, and much more.

16. LastPass

LastPass

You should always use strong passwords for all your accounts including your WordPress site. However, it is not possible to remember all those difficult passwords.

LastPass makes it easier to manage all your passwords, so that you don’t have to remember passwords anymore. It works on desktop, browsers, and even on your mobile.

For more details, see our guide on how to manage passwords for WordPress beginners.

17. Pomodoro Timer

Pomodoro Timer

As a business owner, you may find it difficult to concentrate on one task at a time. This is where Pomodoro Timer comes in.

The Pomodoro Technique is a time management method. It uses a timer to break down work into intervals, separated by small breaks.

Our CEO, Syed Balkhi, has written a great post on how to use time-blocking.

Alternate versions: Pomodoro Timer for iOS | Pomodoro Timer for Google Chrome

18. IA Writer

IA Writer

Writing on mobile devices is particularly difficult. The screen size is too small, and its painful to slide up and down.

IA Writer makes it easier to write on mobile devices and makes it a pleasant experience. It comes with a clean clutter free and intuitive UI which helps you work on long articles from your mobile devices.

Most importantly you can connect the app to your WordPress site and publish or save drafts directly.

19. Trello

Trello

Whether you are an individual blogger or a team, getting things done requires discipline and organization. Trello helps you collaborate, manage, and organize your workflow.

Trello is a productivity app for individuals as well as teams. It uses boards, lists, and cards to organize tasks in a fun and rewarding way.

That’s all for now.

We hope this list helped you find some new apps to manage your WordPress site on the go. You may also want to see our list of 24 must have WordPress plugins for business websites

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.

The post 19 Best Mobile Apps to Manage Your WordPress Site appeared first on WPBeginner.

19 Best Mobile Apps to Manage Your WordPress Site

Are you looking for mobile apps to manage your WordPress site on the go? Running a successful website requires a lot of time, and its hard to sit in front of a computer all day. In this article, we will share the best mobile apps… Read More »

The post 19 Best Mobile Apps to Manage Your WordPress Site appeared first on WPBeginner.

Are you looking for mobile apps to manage your WordPress site on the go? Running a successful website requires a lot of time, and its hard to sit in front of a computer all day. In this article, we will share the best mobile apps to manage your WordPress site using your phone.

Best Mobile Apps to Manage Your WordPress Site

1. WordPress.com Apps

WordPress.com Apps

WordPress.com offers apps that connect to your self-hosted WordPress site. You can create posts, upload photos, and moderate comments from your Android or iOS devices.

Certain features of the app require you to create a WordPress.com account. It also comes with a built-in reader that shows the blogs you have followed on WordPress.com.

For detailed instructions, see our guide on how to use WordPress app on your mobile devices.

2. WooCommerce

WooCommerce iOS app

If you run an online store using WooCommerce, then you can use the WooCommerce app for iOS to manage your store on the go.

The app offers a beautiful interface to view your store performance such as orders and sales.

It is not the replacement for the Desktop version as it lacks in terms of features. However, it is pretty useful to look at orders even when you are away from a computer.

3. Google Analytics

Google Analytics app

Google Analytics is the most powerful and free analytics tool available for website owners. It allows you to answer questions like

– How many people visit your website?
– Where they come from?
– What they do while visiting your website?

If you are not already using it, then see our step by step guide on how to install Google Analytics in WordPress.

Google Analytics app allows you to view your site reports using your mobile device. It allows you to create and view custom reports. You can select date ranges and view real time reports.

4. Evernote

Evernote

Ideas for great blog posts, products, or strategies can appear out of no where. Evernote allows you to take notes using your mobile device, and it syncs across all your devices.

You can create to-do lists, draw doodles, take notes, save pictures, bookmarks, and videos. Evernote works on all mobile platforms, PCs, and Mac.

Alternatives: Google Keep | OneNote

5. Pingdom

Pingdom app

Pingdom is a popular website uptime monitoring service. You can set it up to monitor one site’s uptime for free.

Pingdom’s mobile apps alert you when your site is down. It also shows you the status of your website and the services you are monitoring.

6. Buffer

Buffer

Buffer allows you to schedule posts for your social media profiles. Their mobile apps allow you to do that from anywhere using your mobile device.

You can view the posts you have queued, posts you have shared, analytics, and add new content on the go. It helps you keep your followers engaged even when you are away from your desk.

7. IFTTT

IFTTT

IFTTT allows you make internet work for you. The IFTTT mobile app brings that power to your mobile devices.

You can use it as a monitoring tool, automate your workflow, and get instant notifications. Aside from WordPress, it also works with many other online services and tools. It even allows you to automate your smart home and office.

Take a look at our tutorial on how to automate WordPress and social media with IFTTT for more details.

8. Feedly

feedly

Feedly is a smart and modern feed reader. Using the Feedly app on your mobile phone, you can stay in touch with your favorite news sources, blogs, and websites.

You can also organize your favorite websites into different topics as collections. Feedly also makes it easy to share your articles directly from the app.

9. Facebook Pages Manager

Facebook Pages Manager

The easiest way to boost activity on your Facebook pages is by engaging with your audience. Facebook Pages Manager allows you to do manage your pages more efficiently.

It shows you notifications and activities from your Facebook Pages. You can also view reports on how well your posts are doing. Most importantly you can publish posts, upload photos, and respond to comments.

Need more Facebook tips? See our list of best Facebook tips and tutorials for WordPress users

10. Facebook Ads Manager

Facebook Ads Manager

Facebook Ads allow you to retarget website visitors on Facebook. If you are using them right, then you can easily boost your page likes several times over.

Facebook Ads Manager app allows you to view reports, create ads, and manage your ads from mobile devices.

11. Inbox by Google

Inbox by Gmail

As a WordPress site owner, you will get a lot of email notifications for comments, updates, and contact form notifications.

Inbox by Google allows you to clean up your inbox quickly. This smart email client automatically bundles your emails into groups and allows you to easily mark them as done.

It also reduces notifications by only notifying you for important emails, and it is pretty good at guessing which emails are important.

12. Google Drive

Google Drive

Google Drive offers you free storage for all your files. More importantly, it allows you to access those files from anywhere on any device.

Alternatives: Dropbox | OneDrive

13. Google Authenticator

Google Authenticator

Passwords can be easily cracked by hackers, and it makes your WordPress site vulnerable. Adding two step verification protects your WordPress site against hacking attempts.

Google Authenticator app helps you add two step verification to many applications including your WordPress site. See our guide on how to add two step verification with Google Authenticator in WordPress.

See our ultimate WordPress security guide to further improve your website security.

14. Google Adsense

Google Adsense

Google Adsense provides an easy way to make money for small websites and blogs. If you are already using Google Adsense to serve ads on your WordPress site, then Google Adsense app is a great companion for you.

The app provides you with an overview of your Adsense account. It gives you instant access to detailed earning reports on all key metrics.

15. PayPal

PayPal

If you run an online store, then PayPal mobile app is a must have app. You can see all your PayPal activity from your mobile devices.

You can also make payments, transfer balance from PayPal to your bank account, and much more.

16. LastPass

LastPass

You should always use strong passwords for all your accounts including your WordPress site. However, it is not possible to remember all those difficult passwords.

LastPass makes it easier to manage all your passwords, so that you don’t have to remember passwords anymore. It works on desktop, browsers, and even on your mobile.

For more details, see our guide on how to manage passwords for WordPress beginners.

17. Pomodoro Timer

Pomodoro Timer

As a business owner, you may find it difficult to concentrate on one task at a time. This is where Pomodoro Timer comes in.

The Pomodoro Technique is a time management method. It uses a timer to break down work into intervals, separated by small breaks.

Our CEO, Syed Balkhi, has written a great post on how to use time-blocking.

Alternate versions: Pomodoro Timer for iOS | Pomodoro Timer for Google Chrome

18. IA Writer

IA Writer

Writing on mobile devices is particularly difficult. The screen size is too small, and its painful to slide up and down.

IA Writer makes it easier to write on mobile devices and makes it a pleasant experience. It comes with a clean clutter free and intuitive UI which helps you work on long articles from your mobile devices.

Most importantly you can connect the app to your WordPress site and publish or save drafts directly.

19. Trello

Trello

Whether you are an individual blogger or a team, getting things done requires discipline and organization. Trello helps you collaborate, manage, and organize your workflow.

Trello is a productivity app for individuals as well as teams. It uses boards, lists, and cards to organize tasks in a fun and rewarding way.

That’s all for now.

We hope this list helped you find some new apps to manage your WordPress site on the go. You may also want to see our list of 24 must have WordPress plugins for business websites

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.

The post 19 Best Mobile Apps to Manage Your WordPress Site appeared first on WPBeginner.

Using dotnet watch test for continuous testing with .NET Core and XUnit.net

When teaching .NET Core I do a lot of “dotnet new” Hello World demos to folks who’ve never seen it before. That has it’s place, but I also wanted to show how easy it is to get setup with Unit Testing on .NET Core.

For this blog post I’m going to use the command line so you know there’s nothing hidden, but you can also use Visual Studio or Visual Studio Code, of course. I’ll start the command prompt then briefly move to Code.

Starting from an empty folder, I’ll make a SomeApp folder and a SomeTests folder.

C:\example\someapp> dotnet new
C:\example\someapp> md ..\sometests && cd ..\sometests
C:\example\sometests> dotnet new -t xunittest

At this point I’ve got a HelloWorld app and a basic test but the two aren’t related – They aren’t attached and nothing real is being tested.

Tests are run with dotnet test, not dotnet run. Tests are libraries and don’t have an entry point, so dotnet run isn’t what you want.

c:\example>dotnet test SomeTests
Project SomeTests (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
xUnit.net .NET CLI test runner (64-bit win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 0.197s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.

I’ll open my test project’s project.json and add a reference to my other project.

{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-*"
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"SomeApp": "1.0.0-*"
},
"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}

I’ll make a little thing to test in my App.

public class Calc {
public int Add(int x, int y) => x + y;
}

And add some tests.

public class Tests
{
[Fact]
public void TwoAndTwoIsFour()
{
var c = new Calc();
Assert.Equal(4, c.Add(2, 2));
}

[Fact]
public void TwoAndThreeIsFive()
{
var c = new Calc();
Assert.Equal(4, c.Add(2, 3));
}
}

Because the Test app references the other app/library, I can just make changes and run “dotnet test” from the command line. It will build both dependencies and run the tests all at once.

Here’s the full output inclding both build and test.

c:\example> dotnet test SomeTests
Project SomeApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling SomeApp for .NETCoreApp,Version=v1.0

Compilation succeeded.
0 Warning(s)
0 Error(s)

Time elapsed 00:00:00.9814887
Project SomeTests (.NETCoreApp,Version=v1.0) will be compiled because dependencies changed
Compiling SomeTests for .NETCoreApp,Version=v1.0

Compilation succeeded.
0 Warning(s)
0 Error(s)

Time elapsed 00:00:01.0266293


xUnit.net .NET CLI test runner (64-bit win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Tests.Tests.TwoAndThreeIsFive [FAIL]
Assert.Equal() Failure
Expected: 4
Actual: 5
Stack Trace:
c:\Users\scott\Desktop\testtest\SomeTests\Tests.cs(20,0): at Tests.Tests.TwoAndThreeIsFive()
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 2, Errors: 0, Failed: 1, Skipped: 0, Time: 0.177s
SUMMARY: Total: 1 targets, Passed: 0, Failed: 1.

Oops, I made a mistake. I’ll fix that test and run “dotnet test” again.

c:\example> dotnet test SomeTests
xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.145s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.

I can keep changing code and running “dotnet test” but that’s tedious. I’ll add dotnet watch as a tool in my Test project’s project.json.

{
"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-*"
},
"tools": {
"Microsoft.DotNet.Watcher.Tools": "1.0.0-preview2-final"
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"SomeApp": "1.0.0-*"
},

"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}

Then I’ll go back and rather than typing  “dotnet test” I’ll type “dotnet watch test.”

c:\example> dotnet watch test
[DotNetWatcher] info: Running dotnet with the following arguments: test
[DotNetWatcher] info: dotnet process id: 14064
Project SomeApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Project SomeTests (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling SomeTests for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:01.1479348

xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.146s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.
[DotNetWatcher] info: dotnet exit code: 0
[DotNetWatcher] info: Waiting for a file to change before restarting dotnet...

Now if I make a change to either the Tests or the projects under test it will automatically recompile and run the tests!

[DotNetWatcher] info: File changed: c:\example\SomeApp\Program.cs
[DotNetWatcher] info: Running dotnet with the following arguments: test
[DotNetWatcher] info: dotnet process id: 5492
Project SomeApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling SomeApp for .NETCoreApp,Version=v1.0

I’m able to do all of this with any text editor and a command prompt.

How do YOU test?


Sponsor: Do you deploy the same application multiple times for each of your end customers? The team at Octopus have taken the pain out of multi-tenant deployments. Check out their latest 3.4 release!


© 2016 Scott Hanselman. All rights reserved.
     

When teaching .NET Core I do a lot of "dotnet new" Hello World demos to folks who've never seen it before. That has it's place, but I also wanted to show how easy it is to get setup with Unit Testing on .NET Core.

For this blog post I'm going to use the command line so you know there's nothing hidden, but you can also use Visual Studio or Visual Studio Code, of course. I'll start the command prompt then briefly move to Code.

Starting from an empty folder, I'll make a SomeApp folder and a SomeTests folder.

C:\example\someapp> dotnet new

C:\example\someapp> md ..\sometests && cd ..\sometests
C:\example\sometests> dotnet new -t xunittest

At this point I've got a HelloWorld app and a basic test but the two aren't related - They aren't attached and nothing real is being tested.

Tests are run with dotnet test, not dotnet run. Tests are libraries and don't have an entry point, so dotnet run isn't what you want.

c:\example>dotnet test SomeTests

Project SomeTests (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
xUnit.net .NET CLI test runner (64-bit win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 1, Errors: 0, Failed: 0, Skipped: 0, Time: 0.197s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.

I'll open my test project's project.json and add a reference to my other project.

{

"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-*"
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"SomeApp": "1.0.0-*"
},
"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}

I'll make a little thing to test in my App.

public class Calc {

public int Add(int x, int y) => x + y;
}

And add some tests.

public class Tests

{
[Fact]
public void TwoAndTwoIsFour()
{
var c = new Calc();
Assert.Equal(4, c.Add(2, 2));
}

[Fact]
public void TwoAndThreeIsFive()
{
var c = new Calc();
Assert.Equal(4, c.Add(2, 3));
}
}

Because the Test app references the other app/library, I can just make changes and run "dotnet test" from the command line. It will build both dependencies and run the tests all at once.

Here's the full output inclding both build and test.

c:\example> dotnet test SomeTests

Project SomeApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling SomeApp for .NETCoreApp,Version=v1.0

Compilation succeeded.
0 Warning(s)
0 Error(s)

Time elapsed 00:00:00.9814887
Project SomeTests (.NETCoreApp,Version=v1.0) will be compiled because dependencies changed
Compiling SomeTests for .NETCoreApp,Version=v1.0

Compilation succeeded.
0 Warning(s)
0 Error(s)

Time elapsed 00:00:01.0266293


xUnit.net .NET CLI test runner (64-bit win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Tests.Tests.TwoAndThreeIsFive [FAIL]
Assert.Equal() Failure
Expected: 4
Actual: 5
Stack Trace:
c:\Users\scott\Desktop\testtest\SomeTests\Tests.cs(20,0): at Tests.Tests.TwoAndThreeIsFive()
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 2, Errors: 0, Failed: 1, Skipped: 0, Time: 0.177s
SUMMARY: Total: 1 targets, Passed: 0, Failed: 1.

Oops, I made a mistake. I'll fix that test and run "dotnet test" again.

c:\example> dotnet test SomeTests

xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.145s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.

I can keep changing code and running "dotnet test" but that's tedious. I'll add dotnet watch as a tool in my Test project's project.json.

{

"version": "1.0.0-*",
"buildOptions": {
"debugType": "portable"
},
"dependencies": {
"System.Runtime.Serialization.Primitives": "4.1.1",
"xunit": "2.1.0",
"dotnet-test-xunit": "1.0.0-rc2-*"
},
"tools": {
"Microsoft.DotNet.Watcher.Tools": "1.0.0-preview2-final"
},
"testRunner": "xunit",
"frameworks": {
"netcoreapp1.0": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.0.1"
},
"SomeApp": "1.0.0-*"
},

"imports": [
"dotnet5.4",
"portable-net451+win8"
]
}
}
}

Then I'll go back and rather than typing  "dotnet test" I'll type "dotnet watch test."

c:\example> dotnet watch test

[DotNetWatcher] info: Running dotnet with the following arguments: test
[DotNetWatcher] info: dotnet process id: 14064
Project SomeApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Project SomeTests (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling SomeTests for .NETCoreApp,Version=v1.0
Compilation succeeded.
0 Warning(s)
0 Error(s)
Time elapsed 00:00:01.1479348

xUnit.net .NET CLI test runner (64-bit .NET Core win10-x64)
Discovering: SomeTests
Discovered: SomeTests
Starting: SomeTests
Finished: SomeTests
=== TEST EXECUTION SUMMARY ===
SomeTests Total: 2, Errors: 0, Failed: 0, Skipped: 0, Time: 0.146s
SUMMARY: Total: 1 targets, Passed: 1, Failed: 0.
[DotNetWatcher] info: dotnet exit code: 0
[DotNetWatcher] info: Waiting for a file to change before restarting dotnet...

Now if I make a change to either the Tests or the projects under test it will automatically recompile and run the tests!

[DotNetWatcher] info: File changed: c:\example\SomeApp\Program.cs

[DotNetWatcher] info: Running dotnet with the following arguments: test
[DotNetWatcher] info: dotnet process id: 5492
Project SomeApp (.NETCoreApp,Version=v1.0) will be compiled because inputs were modified
Compiling SomeApp for .NETCoreApp,Version=v1.0

I'm able to do all of this with any text editor and a command prompt.

How do YOU test?


Sponsor: Do you deploy the same application multiple times for each of your end customers? The team at Octopus have taken the pain out of multi-tenant deployments. Check out their latest 3.4 release!



© 2016 Scott Hanselman. All rights reserved.
     

Ultimate WordPress SEO Guide for Beginners (Step by Step)

Improving your WordPress SEO is crucial for getting more traffic to your website. Sadly most WordPress SEO guides are too technical for new users to get started. If you are serious about increasing your website traffic, then you need to pay attention to the WordPress… Read More »

The post Ultimate WordPress SEO Guide for Beginners (Step by Step) appeared first on WPBeginner.

Improving your WordPress SEO is crucial for getting more traffic to your website. Sadly most WordPress SEO guides are too technical for new users to get started. If you are serious about increasing your website traffic, then you need to pay attention to the WordPress SEO best practices. In this guide, we will share the top WordPress SEO tips to help you improve your WordPress SEO and get more organic traffic.

WordPress SEO for Beginners

You might have heard experts saying that WordPress is SEO friendly. This is actually why a lot of people choose WordPress to start a blog or website.

While WordPress makes sure that the code it generates follows the SEO best practices, there is a lot more you need to do if you want to maximize your SEO efforts.

We have a number of actionable steps that you need to take to properly optimize your WordPress SEO.

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

Table of Contents

Introduction

The Basics of WordPress SEO

The Best WordPress SEO Plugin

WordPress SEO Best Practices

Speed and Security for WordPress SEO

Finally, see more SEO tools and resources to take your WordPress SEO even farther.

Introduction

We know the idea of optimizing for WordPress SEO can be intimidating for beginners, especially if you’re not not a tech geek.

But don’t worry — it doesn’t have to be complicated. Start here to learn the basics, and then you can start applying them to your own website.

What is SEO?

What is SEO?

SEO is an acronym that stands for Search Engine Optimization. It’s a strategy used by website owners to get more traffic by ranking higher in search engines.

Search engine optimization isn’t about tricking Google or gaming the system. It’s simply about creating a website that has optimized code and formatting which makes it easy for search engines to find your website.

When people search the web for the topics you write about, your search-engine-optimized content will appear higher in the search results, and you’ll get more people clicking through to your website.

[Back to top ↑]

Why SEO is important

Search engines are often the biggest source of traffic for most websites.

Google and other search engines use advanced algorithms to understand and rank pages appropriately in search results. But those algorithms aren’t perfect — they still need your help to understand what your content is about.

If your content isn’t optimized, then search engines won’t know how to rank it. When people search for the topics you write about, your website won’t appear in the search results, and you’ll miss out on all that traffic.

It is really important for all business owners to make their website search engine friendly, so that they can maximize their search traffic.

[Back to top ↑]

Basics of WordPress SEO

SEO can get technical, but it doesn’t have to be. Just learning a few basic SEO tips to optimize your site can give you a noticeable boost in your website traffic.

You don’t have to be a tech genius to use the techniques below. If you’re already using WordPress, then you’ve got what it takes!

Let’s get started optimizing your website.

Check Your Site’s Visibility Settings

WordPress comes with a built-in option to hide your website from search engines. The purpose of this option is to give you time to work on your website before it’s ready to go public.

However, sometimes this option can get checked accidentally and it makes your website unavailable to search engines.

If your website is not appearing in search results, then the first thing you need to do is to make sure that this option is unchecked.

Simply log in to the admin area of your WordPress site and visit Settings » Reading page.

Search engine visibility settings in WordPress

You need to scroll down to the ‘Search Engine Visibility’ section and make sure that the box next to ‘Discourage search engines from indexing this site’ is unchecked.

Don’t forget to click on the ‘Save Changes’ button to store your changes.

[Back to top ↑]

SEO friendly URLs contain words that clearly explain the content of the page, and they’re easy to read by both humans and search engines.

Some examples of SEO friendly URLs are:

http://www.wpbeginner.com/how-to-install-wordpress/
http://www.wpbeginner.com/common-wordpress-errors-and-how-to-fix-them/

Notice that these URLs are readable and a user can guess what they will see on the page just by looking at the URL text.

So what does a non-SEO friendly URL look like?

http://www.wpbeginner.com/?p=10467
http://example.com/archives/123

Notice that these URLs use numbers unrelated to the content, and a user cannot guess what they will find on the page by looking at the URL.

Using SEO friendly permalink structure improves your chances of getting better positions in search results.

Here is how you can check and update your WordPress site’s permalink structure.

You need to visit the Settings » Permalinks page. Select the post name option and then click on the ‘Save Changes’ button to store your settings.

SEO friendly URL structure in WordPress

For more detailed instructions take a look at our guide on what is a SEO friendly URL structure in WordPress.

Note: If your website has been running for more than 6 months, then please don’t change your permalink structure unless you’re using the numbers option. If you’re using Day and Name or Month and Name, continue using that.

By changing your permalink structure on an established site, you will lose all of your social media share count and run the risk of losing your existing SEO ranking.

If you must change your permalink structure, then hire a professional, so they can setup proper redirects. You’ll still lose your social share counts on the pages.

[Back to top ↑]

WWW vs non-WWW

If you are just starting out with your website, then you need to choose whether you want to use www (http://www.example.com) or non-www (http://example.com) in your site’s URL.

Search engines consider these to be two different websites, so this means you need to choose one and stick to it.

You can set your preference by visiting the Settings » General page. Add your preferred URL in both the ‘WordPress Address’ and ‘Site Address’ fields.

Non-www or www in WordPress URLs

Despite what someone else might say, from a SEO standpoint there’s no advantage to using one or another.

For more detailed information on this topic, take a look at our guide on www vs non-www – which is better for WordPress SEO.

[Back to top ↑]

The Best WordPress SEO plugin

One of the best part about WordPress is that there’s a plugin for everything, and SEO is no exception. There are thousands of WordPress SEO plugins which makes it harder for beginners to choose the best WordPress SEO plugin.

Instead of installing separate plugins for individual SEO tasks, we will help you choose the best WordPress SEO plugin that does it all, and it’s 100% free.

Choosing the Best WordPress SEO Plugin

Choosing the best WordPress SEO plugin

When it comes to choosing the best WordPress SEO plugin, you will most likely narrow your choices down to the two most popular solutions: Yoast SEO or All in One SEO Pack.

They are both effective solutions, and we’ve done a pros and cons comparison of Yoast SEO vs All in One SEO Pack.

At WPBeginner, we use Yoast SEO, so in this tutorial we’ll be using Yoast SEO for screenshots and examples.

Regardless, we have a step by step guide on properly setting up each of these plugins:

[Back to top ↑]

Add XML Sitemaps in WordPress

xml sitemap

An XML Sitemap is a specially formatted file that lists every single page on your website. This makes it easy for search engines to find all of your content.

While adding an XML sitemap does not boost your site’s search rankings, it does help search engines find the pages quickly and start ranking them.

If you’re using the Yoast SEO plugin, then it will automatically create an XML sitemap for you. To find your sitemap, just go to this URL (don’t forget to replace example.com with your own domain name):

http://example.com/sitemap_index.xml

We will show you how to submit your XML sitemap to Google in the next step.

[Back to top ↑]

Add Your Site to Google Search Console

Google Search Console

Google Search Console also known as Webmaster Tools is a set of tools offered by Google to give website owners a look at how their content is seen by the search engine.

It provides reports and data to help you understand how your pages appear in search results. You also get to see the actual search terms people are using to find your website, how each page appears in the search results, and how often your pages are clicked.

All this information helps you understand what’s working on your site and what’s not. You can then plan your content strategy accordingly.

Google Search Console also alerts you when there is something wrong with your website, like when search crawlers are unable to access it, find duplicate content, or restricted resources.

We have a step by step guide on how to add your WordPress site to Google Search Console.

If you’re using Yoast SEO, then follow step 11 in our Yoast SEO setup guide.

If you’re not using Yoast SEO, then you can watch our video that shows an alternative way:

Once you have added your website to Google Search Console, click on the Crawl menu and then select Sitemaps.

Crawl section in Google Search Console

After that you need to click on the Add Sitemap button.

Adding your wordpress xml sitemap in Google webmaster tools

Your main sitemap is sitemap_index.xml so go ahead and submit that.

Once you have successfully added your sitemap, it will appear as pending. It does take Google some time to crawl your website. After a few hours, you would be able to see some stats about your sitemap. It will show you the number of links it found in your sitemap, how many of them got indexed, a ratio of images and web pages, etc.

We recommend that you check your Search Console at least on a monthly basis for gathering insights and see your website’s SEO progress.

[Back to top ↑]

Optimizing Your Blog Posts for SEO

Often beginners make the mistake of thinking that installing and activating a WordPress SEO plugin is all what’s needed. SEO is an ongoing process that you must keep up with if you want to see maximum results.

Yoast SEO allows you to add a title, description, and focus keyword to to every blog post and page. It also shows you a preview of what users will see when they Google your website.

We recommend that you optimize your title and description to get maximum clicks.

When writing your blog post, simply scroll down to the Yoast SEO section and take full advantage of it.

Yoast SEO meta box

If you’re wondering how to choose a focus keyword, what is a good title, or what is a good meta description, then we have covered it in details in our beginners guide to optimize your blog posts for SEO.

We highly recommend that you read it because on-page SEO is crucial for your success.

[Back to top ↑]

WordPress SEO Best Practices

If you follow the basics of WordPress SEO and use the best WordPress SEO plugin, you will already be ahead of most websites.

However if you want even better results, then you need to follow the WordPress SEO best practices below.

These aren’t too technical and most won’t even require you to touch any code. But they will make a big difference if you follow them.

Properly Using Categories and Tags in WordPress

Category and tags

WordPress allows you to sort your blog posts into categories and tags. This makes it easy for you to manage your content by topics, and for your users to find the content they’re looking for.

Categories and tags also help search engines understand your website structure and content.

Often beginners get confused on how to best use categories and tags. After explaining this to thousands of readers, here’s how we approach categories and tags.

Categories are meant for broad grouping of your posts. If your blog was a book, then categories will be the table of content.

For example, on a personal blog you can have categories like music, food, travel, etc. Categories are hierarchical, so you can add child categories to them.

On the other hand, tags are more specific keywords that describe the contents of an individual post. For example, a blog post filed under food category can have tags like salad, breakfast, pancakes, etc. Think of these as indexes section in a text book.

For more on this topic, see our guide on categories vs tags and SEO best practices for sorting your content.

By using categories and tags properly, you make it easy for your users to browse your website. Since it’s easy for users, it also makes it easier for search engines to browse your website.

[Back to top ↑]

Make Internal Linking a Habit

Internal linking in WordPress

Search engines assign each page on your website a score (page authority). The recipe of this score is kept secret so that people cannot game the results. However, the most common signals of authority are links.

This is why it’s important that you link to your own content from your other blog posts and pages.

You should make it a habit to interlink your own posts whenever possible. If you have multiple authors, then create a pre-publish blog post checklist that requires them to interlink at least 3 other blog posts.

This will help you boost your pageviews, increases the time users spend on your site, and ultimately will improve the SEO score of your individual blog posts and pages.

[Back to top ↑]

Optimize WordPress Comments

Optimize WordPress comments

Comments can be a strong indication of user engagement on your website. Engaged users means more links back to your site, more traffic, and improved SEO.

But you need to make sure that your comments are real and not spam. Spammers submit comments with bad links which could affect and even ruin your search rankings.

This is why we recommend everyone to start using Akismet. It is one of the two plugins that come pre-installed with every WordPress site, and it helps you combat comment spam.

If Akismet alone is unable to handle comment spam, then see these tips and tools to combat comment spam in WordPress.

If your blog posts attract a lot of genuine, spam-free comments, then you should pat yourself on the shoulder for building such an engaging website!

However, too many comments on a post can make it load slower which also affects your search engine rankings. (Keep reading below to find out more about how speed affects SEO.)

To prepare your website so that it can handle the burden your comments put on your server and speed, you can split comments into multiple pages. See our tutorial on how to paginate comments in WordPress.

(If you’d like to get more comments on your site, check out these 11 ways to get more comments on your WordPress blog posts.)

[Back to top ↑]

NoFollow External Links in WordPress

NoFollow external links

As mentioned above, links help search engines decide which pages are important. When you link to a website, you are passing some of your site’s SEO score to that link. This SEO score is called “link juice.”

For good search rankings you need to make sure that you are getting more link juice from other websites than you are giving away.

Adding the “nofollow” attribute to external links (links to websites that you don’t own) instructs search engines not to follow those links. This helps you save link juice.

A normal external link looks like this in HTML:

<a href="http://example.com">Example Website</a>

An external link with the nofollow attribute looks like this:

<a href="http://example.com" rel="nofollow">Example Website</a>

You can also add rel=”nofollow” checkbox to the insert link popup. This will allow you to easily add nofollow to external links.

[Back to top ↑]

Full Posts vs Summaries or Excerpts

Full posts vs summary or excerpts

WordPress displays and links to your posts from a number of pages like home page, category archive, tags archive, date archive, author pages, etc.

By default, it shows the full article content on all these pages. This affects your site’s SEO, as search engines may find it to be duplicate content. Full articles also make your archive pages load slower.

Showing full articles everywhere also affects your page views. For example, users who subscribe to your RSS feed will be able to read the full article in their feed reader without ever visiting your website.

The easiest way to solve this is by showing summaries or excerpts instead of full articles.

You can do this by going to Settings » Reading and select summary.

For detailed instructions, see our guide on how to customize WordPress excerpts without coding.

[Back to top ↑]

Speed and Security for WordPress SEO

Even if you follow all the WordPress SEO tips and best practices above, if your site is slow or gets taken down by a hacker, your search engine rankings will take a big hit.

Here’s how to prevent your site from losing search engine traffic due to slow performance or lax security.

Optimize Your Site’s Speed and Performance

Optimize your WordPress site's speed and performance

Research shows that in the internet age, the average human attention span is shorter than that of a goldfish.

Web usability experts believe that users decide whether they want to stay or leave within few seconds of visiting a website.

That means that as a website owner, you only have a few seconds to present your content and engage users. You don’t want to waste this precious time making your visitor wait for your website to load. Search engines like Google admit that they rank faster websites higher than slow loading websites.

If you need to improve your site’s speed, check out this expert advice on 18 useful tricks to speed up WordPress and boost performance.

[Back to top ↑]

Optimizing Images in WordPress for SEO

Images are more engaging than text but they also take more time to load. If you are not careful with image sizes and quality, then they can slow down your website.

You need to make sure that you use images that are optimized to load faster. See our guide on how to speed up WordPress by optimizing images for the web.

Another trick you can use to optimize your images for search engines is to use descriptive title and alt tags. These tags help search engines understand what your image is about. They also help users with visual impairment as their screen readers can read the alt and title tags to them.

WordPress allows you to add title and alt tags when you upload an image.

Add alt and title tags to your images in WordPress

If you are a photographer or add a lot of images to your WordPress site, then you need to use a gallery plugin.

We recommend using Envira Gallery. In our speed tests, we found it to be the fastest WordPress gallery plugin. It’s also fully responsive and SEO friendly out of the box.

[Back to top ↑]

Security and Safety of Your WordPress Site

WordPress security

Each week, Google blacklists around 20,000 websites for malware and around 50,000 for phishing. When a site is blacklisted, it doesn’t show up in any search results at all.

This means that the security of your WordPress site is crucial for good rankings. You don’t want all your hard work on SEO to go to waste if your site is compromised by a hacker.

The good news is that it’s not that difficult to keep your WordPress site safe — see the step by step instructions in our ultimate WordPress security guide.

At WPBeginner, we use Sucuri to protect our website against attacks. To see why we recommend this service, check out our case study of how Sucuri helped us block 450,000 WordPress attacks in 3 months.

[Back to top ↑]

Start Using SSL/HTTPS

A site secured by SSL and HTTPS

SSL (Secure Sockets Layer) is a technology that encrypts the connection between a user’s browser and the server they are connecting to. This adds an additional security layer to your WordPress site.

Websites secured with SSL are indicated by a padlock sign in the browser’s address bar. This makes your website more trustworthy, and it is required if you are running an online store with WordPress and processing sensitive payment information.

If you are using Bluehost, then you can purchase a SSL certificate. If you’re going to purchase your SSL certificate through your web hosting company, see our guide on how to add SSL and HTTPS in WordPress.

You can also get free SSL with Let’s Encrypt. Several WordPress hosting companies like Siteground, Dreamhost, and WPEngine have already started offering easy Let’s Encrypt integrations.

For step by step instructions, see our guide on how to add free SSL in WordPress with Let’s Encrypt.

[Back to top ↑]

More SEO Tools and Resources

Once you get the hang of WordPress SEO best practices, you’ll want to take your skills even further to get ahead of your competition.

We have compiled a list of best WordPress SEO plugins and tools that you should use to boost your SEO. If you’re ready to try some more advanced techniques, you can also check out our archive of WordPress SEO articles.

[Back to top ↑]

We hope this article helped you learn how to properly optimize your WordPress site for SEO. Go ahead and implement a few of these WordPress SEO tips, and you should see an increase in your traffic within a few months as the search engines process your changes.

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.

The post Ultimate WordPress SEO Guide for Beginners (Step by Step) appeared first on WPBeginner.

Ultimate WordPress SEO Guide for Beginners (Step by Step)

Improving your WordPress SEO is crucial for getting more traffic to your website. Sadly most WordPress SEO guides are too technical for new users to get started. If you are serious about increasing your website traffic, then you need to pay attention to the WordPress… Read More »

The post Ultimate WordPress SEO Guide for Beginners (Step by Step) appeared first on WPBeginner.

Improving your WordPress SEO is crucial for getting more traffic to your website. Sadly most WordPress SEO guides are too technical for new users to get started. If you are serious about increasing your website traffic, then you need to pay attention to the WordPress SEO best practices. In this guide, we will share the top WordPress SEO tips to help you improve your WordPress SEO and get more organic traffic.

WordPress SEO for Beginners

You might have heard experts saying that WordPress is SEO friendly. This is actually why a lot of people choose WordPress to start a blog or website.

While WordPress makes sure that the code it generates follows the SEO best practices, there is a lot more you need to do if you want to maximize your SEO efforts.

We have a number of actionable steps that you need to take to properly optimize your WordPress SEO.

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

Table of Contents

Introduction

The Basics of WordPress SEO

The Best WordPress SEO Plugin

WordPress SEO Best Practices

Speed and Security for WordPress SEO

Finally, see more SEO tools and resources to take your WordPress SEO even farther.

Introduction

We know the idea of optimizing for WordPress SEO can be intimidating for beginners, especially if you’re not not a tech geek.

But don’t worry — it doesn’t have to be complicated. Start here to learn the basics, and then you can start applying them to your own website.

What is SEO?

What is SEO?

SEO is an acronym that stands for Search Engine Optimization. It’s a strategy used by website owners to get more traffic by ranking higher in search engines.

Search engine optimization isn’t about tricking Google or gaming the system. It’s simply about creating a website that has optimized code and formatting which makes it easy for search engines to find your website.

When people search the web for the topics you write about, your search-engine-optimized content will appear higher in the search results, and you’ll get more people clicking through to your website.

[Back to top ↑]

Why SEO is important

Search engines are often the biggest source of traffic for most websites.

Google and other search engines use advanced algorithms to understand and rank pages appropriately in search results. But those algorithms aren’t perfect — they still need your help to understand what your content is about.

If your content isn’t optimized, then search engines won’t know how to rank it. When people search for the topics you write about, your website won’t appear in the search results, and you’ll miss out on all that traffic.

It is really important for all business owners to make their website search engine friendly, so that they can maximize their search traffic.

[Back to top ↑]

Basics of WordPress SEO

SEO can get technical, but it doesn’t have to be. Just learning a few basic SEO tips to optimize your site can give you a noticeable boost in your website traffic.

You don’t have to be a tech genius to use the techniques below. If you’re already using WordPress, then you’ve got what it takes!

Let’s get started optimizing your website.

Check Your Site’s Visibility Settings

WordPress comes with a built-in option to hide your website from search engines. The purpose of this option is to give you time to work on your website before it’s ready to go public.

However, sometimes this option can get checked accidentally and it makes your website unavailable to search engines.

If your website is not appearing in search results, then the first thing you need to do is to make sure that this option is unchecked.

Simply log in to the admin area of your WordPress site and visit Settings » Reading page.

Search engine visibility settings in WordPress

You need to scroll down to the ‘Search Engine Visibility’ section and make sure that the box next to ‘Discourage search engines from indexing this site’ is unchecked.

Don’t forget to click on the ‘Save Changes’ button to store your changes.

[Back to top ↑]

SEO friendly URLs contain words that clearly explain the content of the page, and they’re easy to read by both humans and search engines.

Some examples of SEO friendly URLs are:

http://www.wpbeginner.com/how-to-install-wordpress/
http://www.wpbeginner.com/common-wordpress-errors-and-how-to-fix-them/

Notice that these URLs are readable and a user can guess what they will see on the page just by looking at the URL text.

So what does a non-SEO friendly URL look like?

http://www.wpbeginner.com/?p=10467
http://example.com/archives/123

Notice that these URLs use numbers unrelated to the content, and a user cannot guess what they will find on the page by looking at the URL.

Using SEO friendly permalink structure improves your chances of getting better positions in search results.

Here is how you can check and update your WordPress site’s permalink structure.

You need to visit the Settings » Permalinks page. Select the post name option and then click on the ‘Save Changes’ button to store your settings.

SEO friendly URL structure in WordPress

For more detailed instructions take a look at our guide on what is a SEO friendly URL structure in WordPress.

Note: If your website has been running for more than 6 months, then please don’t change your permalink structure unless you’re using the numbers option. If you’re using Day and Name or Month and Name, continue using that.

By changing your permalink structure on an established site, you will lose all of your social media share count and run the risk of losing your existing SEO ranking.

If you must change your permalink structure, then hire a professional, so they can setup proper redirects. You’ll still lose your social share counts on the pages.

[Back to top ↑]

WWW vs non-WWW

If you are just starting out with your website, then you need to choose whether you want to use www (http://www.example.com) or non-www (http://example.com) in your site’s URL.

Search engines consider these to be two different websites, so this means you need to choose one and stick to it.

You can set your preference by visiting the Settings » General page. Add your preferred URL in both the ‘WordPress Address’ and ‘Site Address’ fields.

Non-www or www in WordPress URLs

Despite what someone else might say, from a SEO standpoint there’s no advantage to using one or another.

For more detailed information on this topic, take a look at our guide on www vs non-www – which is better for WordPress SEO.

[Back to top ↑]

The Best WordPress SEO plugin

One of the best part about WordPress is that there’s a plugin for everything, and SEO is no exception. There are thousands of WordPress SEO plugins which makes it harder for beginners to choose the best WordPress SEO plugin.

Instead of installing separate plugins for individual SEO tasks, we will help you choose the best WordPress SEO plugin that does it all, and it’s 100% free.

Choosing the Best WordPress SEO Plugin

Choosing the best WordPress SEO plugin

When it comes to choosing the best WordPress SEO plugin, you will most likely narrow your choices down to the two most popular solutions: Yoast SEO or All in One SEO Pack.

They are both effective solutions, and we’ve done a pros and cons comparison of Yoast SEO vs All in One SEO Pack.

At WPBeginner, we use Yoast SEO, so in this tutorial we’ll be using Yoast SEO for screenshots and examples.

Regardless, we have a step by step guide on properly setting up each of these plugins:

[Back to top ↑]

Add XML Sitemaps in WordPress

xml sitemap

An XML Sitemap is a specially formatted file that lists every single page on your website. This makes it easy for search engines to find all of your content.

While adding an XML sitemap does not boost your site’s search rankings, it does help search engines find the pages quickly and start ranking them.

If you’re using the Yoast SEO plugin, then it will automatically create an XML sitemap for you. To find your sitemap, just go to this URL (don’t forget to replace example.com with your own domain name):

http://example.com/sitemap_index.xml

We will show you how to submit your XML sitemap to Google in the next step.

[Back to top ↑]

Add Your Site to Google Search Console

Google Search Console

Google Search Console also known as Webmaster Tools is a set of tools offered by Google to give website owners a look at how their content is seen by the search engine.

It provides reports and data to help you understand how your pages appear in search results. You also get to see the actual search terms people are using to find your website, how each page appears in the search results, and how often your pages are clicked.

All this information helps you understand what’s working on your site and what’s not. You can then plan your content strategy accordingly.

Google Search Console also alerts you when there is something wrong with your website, like when search crawlers are unable to access it, find duplicate content, or restricted resources.

We have a step by step guide on how to add your WordPress site to Google Search Console.

If you’re using Yoast SEO, then follow step 11 in our Yoast SEO setup guide.

If you’re not using Yoast SEO, then you can watch our video that shows an alternative way:

Once you have added your website to Google Search Console, click on the Crawl menu and then select Sitemaps.

Crawl section in Google Search Console

After that you need to click on the Add Sitemap button.

Adding your wordpress xml sitemap in Google webmaster tools

Your main sitemap is sitemap_index.xml so go ahead and submit that.

Once you have successfully added your sitemap, it will appear as pending. It does take Google some time to crawl your website. After a few hours, you would be able to see some stats about your sitemap. It will show you the number of links it found in your sitemap, how many of them got indexed, a ratio of images and web pages, etc.

We recommend that you check your Search Console at least on a monthly basis for gathering insights and see your website’s SEO progress.

[Back to top ↑]

Optimizing Your Blog Posts for SEO

Often beginners make the mistake of thinking that installing and activating a WordPress SEO plugin is all what’s needed. SEO is an ongoing process that you must keep up with if you want to see maximum results.

Yoast SEO allows you to add a title, description, and focus keyword to to every blog post and page. It also shows you a preview of what users will see when they Google your website.

We recommend that you optimize your title and description to get maximum clicks.

When writing your blog post, simply scroll down to the Yoast SEO section and take full advantage of it.

Yoast SEO meta box

If you’re wondering how to choose a focus keyword, what is a good title, or what is a good meta description, then we have covered it in details in our beginners guide to optimize your blog posts for SEO.

We highly recommend that you read it because on-page SEO is crucial for your success.

[Back to top ↑]

WordPress SEO Best Practices

If you follow the basics of WordPress SEO and use the best WordPress SEO plugin, you will already be ahead of most websites.

However if you want even better results, then you need to follow the WordPress SEO best practices below.

These aren’t too technical and most won’t even require you to touch any code. But they will make a big difference if you follow them.

Properly Using Categories and Tags in WordPress

Category and tags

WordPress allows you to sort your blog posts into categories and tags. This makes it easy for you to manage your content by topics, and for your users to find the content they’re looking for.

Categories and tags also help search engines understand your website structure and content.

Often beginners get confused on how to best use categories and tags. After explaining this to thousands of readers, here’s how we approach categories and tags.

Categories are meant for broad grouping of your posts. If your blog was a book, then categories will be the table of content.

For example, on a personal blog you can have categories like music, food, travel, etc. Categories are hierarchical, so you can add child categories to them.

On the other hand, tags are more specific keywords that describe the contents of an individual post. For example, a blog post filed under food category can have tags like salad, breakfast, pancakes, etc. Think of these as indexes section in a text book.

For more on this topic, see our guide on categories vs tags and SEO best practices for sorting your content.

By using categories and tags properly, you make it easy for your users to browse your website. Since it’s easy for users, it also makes it easier for search engines to browse your website.

[Back to top ↑]

Make Internal Linking a Habit

Internal linking in WordPress

Search engines assign each page on your website a score (page authority). The recipe of this score is kept secret so that people cannot game the results. However, the most common signals of authority are links.

This is why it’s important that you link to your own content from your other blog posts and pages.

You should make it a habit to interlink your own posts whenever possible. If you have multiple authors, then create a pre-publish blog post checklist that requires them to interlink at least 3 other blog posts.

This will help you boost your pageviews, increases the time users spend on your site, and ultimately will improve the SEO score of your individual blog posts and pages.

[Back to top ↑]

Optimize WordPress Comments

Optimize WordPress comments

Comments can be a strong indication of user engagement on your website. Engaged users means more links back to your site, more traffic, and improved SEO.

But you need to make sure that your comments are real and not spam. Spammers submit comments with bad links which could affect and even ruin your search rankings.

This is why we recommend everyone to start using Akismet. It is one of the two plugins that come pre-installed with every WordPress site, and it helps you combat comment spam.

If Akismet alone is unable to handle comment spam, then see these tips and tools to combat comment spam in WordPress.

If your blog posts attract a lot of genuine, spam-free comments, then you should pat yourself on the shoulder for building such an engaging website!

However, too many comments on a post can make it load slower which also affects your search engine rankings. (Keep reading below to find out more about how speed affects SEO.)

To prepare your website so that it can handle the burden your comments put on your server and speed, you can split comments into multiple pages. See our tutorial on how to paginate comments in WordPress.

(If you’d like to get more comments on your site, check out these 11 ways to get more comments on your WordPress blog posts.)

[Back to top ↑]

NoFollow External Links in WordPress

NoFollow external links

As mentioned above, links help search engines decide which pages are important. When you link to a website, you are passing some of your site’s SEO score to that link. This SEO score is called “link juice.”

For good search rankings you need to make sure that you are getting more link juice from other websites than you are giving away.

Adding the “nofollow” attribute to external links (links to websites that you don’t own) instructs search engines not to follow those links. This helps you save link juice.

A normal external link looks like this in HTML:

<a href="http://example.com">Example Website</a>

An external link with the nofollow attribute looks like this:

<a href="http://example.com" rel="nofollow">Example Website</a>

You can also add rel=”nofollow” checkbox to the insert link popup. This will allow you to easily add nofollow to external links.

[Back to top ↑]

Full Posts vs Summaries or Excerpts

Full posts vs summary or excerpts

WordPress displays and links to your posts from a number of pages like home page, category archive, tags archive, date archive, author pages, etc.

By default, it shows the full article content on all these pages. This affects your site’s SEO, as search engines may find it to be duplicate content. Full articles also make your archive pages load slower.

Showing full articles everywhere also affects your page views. For example, users who subscribe to your RSS feed will be able to read the full article in their feed reader without ever visiting your website.

The easiest way to solve this is by showing summaries or excerpts instead of full articles.

You can do this by going to Settings » Reading and select summary.

For detailed instructions, see our guide on how to customize WordPress excerpts without coding.

[Back to top ↑]

Speed and Security for WordPress SEO

Even if you follow all the WordPress SEO tips and best practices above, if your site is slow or gets taken down by a hacker, your search engine rankings will take a big hit.

Here’s how to prevent your site from losing search engine traffic due to slow performance or lax security.

Optimize Your Site’s Speed and Performance

Optimize your WordPress site's speed and performance

Research shows that in the internet age, the average human attention span is shorter than that of a goldfish.

Web usability experts believe that users decide whether they want to stay or leave within few seconds of visiting a website.

That means that as a website owner, you only have a few seconds to present your content and engage users. You don’t want to waste this precious time making your visitor wait for your website to load. Search engines like Google admit that they rank faster websites higher than slow loading websites.

If you need to improve your site’s speed, check out this expert advice on 18 useful tricks to speed up WordPress and boost performance.

[Back to top ↑]

Optimizing Images in WordPress for SEO

Images are more engaging than text but they also take more time to load. If you are not careful with image sizes and quality, then they can slow down your website.

You need to make sure that you use images that are optimized to load faster. See our guide on how to speed up WordPress by optimizing images for the web.

Another trick you can use to optimize your images for search engines is to use descriptive title and alt tags. These tags help search engines understand what your image is about. They also help users with visual impairment as their screen readers can read the alt and title tags to them.

WordPress allows you to add title and alt tags when you upload an image.

Add alt and title tags to your images in WordPress

If you are a photographer or add a lot of images to your WordPress site, then you need to use a gallery plugin.

We recommend using Envira Gallery. In our speed tests, we found it to be the fastest WordPress gallery plugin. It’s also fully responsive and SEO friendly out of the box.

[Back to top ↑]

Security and Safety of Your WordPress Site

WordPress security

Each week, Google blacklists around 20,000 websites for malware and around 50,000 for phishing. When a site is blacklisted, it doesn’t show up in any search results at all.

This means that the security of your WordPress site is crucial for good rankings. You don’t want all your hard work on SEO to go to waste if your site is compromised by a hacker.

The good news is that it’s not that difficult to keep your WordPress site safe — see the step by step instructions in our ultimate WordPress security guide.

At WPBeginner, we use Sucuri to protect our website against attacks. To see why we recommend this service, check out our case study of how Sucuri helped us block 450,000 WordPress attacks in 3 months.

[Back to top ↑]

Start Using SSL/HTTPS

A site secured by SSL and HTTPS

SSL (Secure Sockets Layer) is a technology that encrypts the connection between a user’s browser and the server they are connecting to. This adds an additional security layer to your WordPress site.

Websites secured with SSL are indicated by a padlock sign in the browser’s address bar. This makes your website more trustworthy, and it is required if you are running an online store with WordPress and processing sensitive payment information.

If you are using Bluehost, then you can purchase a SSL certificate. If you’re going to purchase your SSL certificate through your web hosting company, see our guide on how to add SSL and HTTPS in WordPress.

You can also get free SSL with Let’s Encrypt. Several WordPress hosting companies like Siteground, Dreamhost, and WPEngine have already started offering easy Let’s Encrypt integrations.

For step by step instructions, see our guide on how to add free SSL in WordPress with Let’s Encrypt.

[Back to top ↑]

More SEO Tools and Resources

Once you get the hang of WordPress SEO best practices, you’ll want to take your skills even further to get ahead of your competition.

We have compiled a list of best WordPress SEO plugins and tools that you should use to boost your SEO. If you’re ready to try some more advanced techniques, you can also check out our archive of WordPress SEO articles.

[Back to top ↑]

We hope this article helped you learn how to properly optimize your WordPress site for SEO. Go ahead and implement a few of these WordPress SEO tips, and you should see an increase in your traffic within a few months as the search engines process your changes.

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.

The post Ultimate WordPress SEO Guide for Beginners (Step by Step) appeared first on WPBeginner.

How to Disable Automatic Update Email Notification in WordPress

Do you want to disable automatic update email notification in WordPress? By default, WordPress sends an email notification to inform you that your WordPress site is updated after security updates. Recently one of our readers asked if there is an easy way to disable that.… Read More »

The post How to Disable Automatic Update Email Notification in WordPress appeared first on WPBeginner.

Do you want to disable automatic update email notification in WordPress? By default, WordPress sends an email notification to inform you that your WordPress site is updated after security updates. Recently one of our readers asked if there is an easy way to disable that. In this article, we will show you how to easily disable automatic update email notification in WordPress.

How to Disable Automatic Update Email Notification in WordPress

About Automatic Updates in WordPress

WordPress is an open source software which is maintained by a community of developers. It is regularly updated to fix security issues, bugs, and to add new features.

WordPress updates

This is why you should always use the latest version of WordPress to make sure that your website is safe and up to date.

WordPress automatically installs minor updates as soon as they are available. After the update, your WordPress site sends a notification to the WordPress admin email address.

The purpose of this email notification is just to inform you that your WordPress site is updated.

If you maintain multiple WordPress sites, then you will get an email from each website. This can be a bit annoying.

Let’s see how to easily turn off the automatic update email notification in WordPress.

Method 1: Disable Automatic Update Email Notification Using Plugin

This method is simpler and does not require you to add any code to your WordPress site.

First thing you need to do is install and activate the Disable WordPress Core Update Email. For more details, see our step by step guide on how to install a WordPress plugin.

The plugin works out of the box, and there are no settings for you to configure.

Upon activation, it simply disables email notification sent after WordPress automatic update.

Method 2: Disable Automatic Update Email Notification Using Code

This method requires you to add code to your WordPress files. If you haven’t done this before, then take a look at our beginner’s guide on pasting snippets from web into WordPress.

You will need to add this code to your theme’s functions.php file or a site-specific plugin.

add_filter( 'auto_core_update_send_email', 'wpb_stop_auto_update_emails', 10, 4 );
 
function wpb_stop_update_emails( $send, $type, $core_update, $result ) {
if ( ! empty( $type ) && $type == 'success' ) {
return false;
}
return true;
}

This code simply adds a filter to disable email notification after automatic core update.

Managing Notifications and Updates in WordPress

By default, WordPress does not allow you to automatically install updates. Many site owners find it a bit annoying to update themes and plugins, especially if they maintain multiple WordPress sites.

Managing WordPress updates

Luckily, there are plugins that allow you to more efficiently manage WordPress updates. For detailed instructions see our guide on how to better manage automatic WordPress updates.

Similarly, WordPress by default has no unified interface to manage notification emails. It may not even send email notifications and you wouldn’t notice it.

There are plugins that allow you to manage and control emails sent by WordPress. You can even customize default WordPress emails. For detailed instructions take a look at our guide on how to add better custom notifications in WordPress.

That’s all, we hope this article helped you learn how to disable automatic update email notification in WordPress. You may also want to see our guide on 24 must have WordPress plugins for business websites.

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.

The post How to Disable Automatic Update Email Notification in WordPress appeared first on WPBeginner.

Free ASP.NET Core 1.0 Training on Microsoft Virtual Academy

This time last year we did a Microsoft Virtual Academy class on what was then called “ASP.NET 5.” It made sense to call it 5 since 5 > 4.6, right? But since then ASP.NET 5 has become .NET Core 1.0 and ASP.NET Core 1.0. It’s 1.0 because it’s smaller, newer, and different. As the .NET “full” framework marches on, on Windows, .NET Core is cross-platform and for the cloud.

Command line concepts like dnx, dnu, and dnvm have been unified into a single “dotnet” driver. You can download .NET Core at http://dot.net and along with http://code.visualstudio.com you can get a web site up and running in 10 minutes on Windows, Mac, or many flavors of Linux.

So, we’ve decided to update and refresh our Microsoft Virtual Academy. In fact, we’ve done three days of training. Introduction, Intermediate, and Cross-Platform. The introduction day is out and it’s free! We’ll be releasing the new two days of training very soon.

NOTE: There’s a LOT of quality free courseware for learning .NET Core and ASP.NET Core. We’ve put the best at http://asp.net/free-courses and I encourage you to check them out!

Head over to Microsoft Virtual Academy and watch our new, free “Introduction to ASP.NET Core 1.0.” It’s a great relaxed pace if you’ve been out of the game for a bit, or you’re a seasoned .NET “Full” developer who has avoided learning .NET Core thus far. If you don’t know the C# language yet, check out our online C# tutorial first, then watch the video.

image

And help me out by adding a few stars there under Ratings. We’re new. 😉


Sponsor: Do you deploy the same application multiple times for each of your end customers? The team at Octopus have taken the pain out of multi-tenant deployments. Check out their latest 3.4 release!


© 2016 Scott Hanselman. All rights reserved.
     

This time last year we did a Microsoft Virtual Academy class on what was then called "ASP.NET 5." It made sense to call it 5 since 5 > 4.6, right? But since then ASP.NET 5 has become .NET Core 1.0 and ASP.NET Core 1.0. It's 1.0 because it's smaller, newer, and different. As the .NET "full" framework marches on, on Windows, .NET Core is cross-platform and for the cloud.

Command line concepts like dnx, dnu, and dnvm have been unified into a single "dotnet" driver. You can download .NET Core at http://dot.net and along with http://code.visualstudio.com you can get a web site up and running in 10 minutes on Windows, Mac, or many flavors of Linux.

So, we've decided to update and refresh our Microsoft Virtual Academy. In fact, we've done three days of training. Introduction, Intermediate, and Cross-Platform. The introduction day is out and it's free! We'll be releasing the new two days of training very soon.

NOTE: There's a LOT of quality free courseware for learning .NET Core and ASP.NET Core. We've put the best at http://asp.net/free-courses and I encourage you to check them out!

Head over to Microsoft Virtual Academy and watch our new, free "Introduction to ASP.NET Core 1.0." It's a great relaxed pace if you've been out of the game for a bit, or you're a seasoned .NET "Full" developer who has avoided learning .NET Core thus far. If you don't know the C# language yet, check out our online C# tutorial first, then watch the video.

image

And help me out by adding a few stars there under Ratings. We're new. ;)


Sponsor: Do you deploy the same application multiple times for each of your end customers? The team at Octopus have taken the pain out of multi-tenant deployments. Check out their latest 3.4 release!



© 2016 Scott Hanselman. All rights reserved.
     

How to Add Custom Admin Notices in WordPress

Do you want to add admin notices in WordPress? Admin notices are used by WordPress core, themes, and plugins to display warnings, notices, and important on screen information to users. In this article, we will show you how you can add admin notices in WordPress.… Read More »

The post How to Add Custom Admin Notices in WordPress appeared first on WPBeginner.

Do you want to add admin notices in WordPress? Admin notices are used by WordPress core, themes, and plugins to display warnings, notices, and important on screen information to users. In this article, we will show you how you can add admin notices in WordPress.

How to Add Admin Notices in WordPress

Why and When to Use Admin Notices in WordPress?

WordPress uses admin notices to alert users about errors, warnings, and success messages.

Example of a default WordPress admin notice

Individual site owners, plugin authors, and theme developers can also use admin notices.

If you are working on a website for clients who are not familiar with WordPress, then you can add admin notices to display helpful information across their WordPress admin area.

Custom admin notices can also be helpful if you run a multi-author WordPress site. You can add notices to guide new authors and help them find their way around.

However, we recommend using admin notices carefully. They can be really annoying and may ruin the WordPress experience for your users.

Having said that, let’s take a look at how you can add your own custom admin notices in WordPress.

Method 1: Add Custom Notices in WordPress Manually

This method requires you to add code to your WordPress site. If you have never added code before, then take a look at our guide on pasting snippets from the web into WordPress.

Let’s get started.

First you need to add this code to your theme’s functions.php file or a site-specific plugin.

function general_admin_notice(){
    global $pagenow;
    if ( $pagenow == 'options-general.php' ) {
         echo '<div class="notice notice-warning is-dismissible">
             <p>This notice appears on the settings page.</p>
         </div>';
    }
}
add_action('admin_notices', 'general_admin_notice');

This code displays a notice on the settings page with a yellow border and a button to close the notice. This is how it will appear on your site:

Custom admin notice example

If you study the code, you will notice that we have used $pagenow variable to detect the current page.

After that we added the condition that checks if the current page meets the page where we want to display the notice.

If it does, then we show the notice wrapped in a <div> element. This div element uses CSS classes already defined in the WordPress admin stylesheet for different type of notices.

You need to use notice class and then you can add notice-error, notice-warning, notice-success, or notice-info.

Optionally, you can use is-dismissible class which adds a button to close the notice.

Apart from checking the current page, you can add all kind of conditions to show notices matching different scenarios.

For example, you want to display a notice only to users with the author user role.

Here is how you will do that:

function author_admin_notice(){
    global $pagenow;
    if ( $pagenow == 'index.php' ) {
    $user = wp_get_current_user();
    if ( in_array( 'author', (array) $user->roles ) ) {
    echo '<div class="notice notice-info is-dismissible">
          <p>Click on <a href="edit.php">Posts</a> to start writing.</p>
         </div>';
    }
}
}
add_action('admin_notices', 'author_admin_notice');

As you can see that we have added an extra check to detect the user role in our function.

This is how it will appear on your site.

Custom notice by user role

Feel free to practice with different conditions, filters, and hooks to play with admin notices.

Method 2: Add Admin Notices Using a WordPress Plugin

This method is simpler as it does not require you to add code. However, it is not as flexible as the custom code method.

First thing you need to do is install and activate the KJM Admin Notices plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Settings » KJM Admin Notices page to configure plugin settings.

KJM Admin Notices settings

First, you need to check the option to enable KJM Admin Notices. The second option adds a custom post type where you can add and edit your custom admin notices.

The plugin also allows you to send an email to registered users when you publish a new notice. You can check the box next to ‘Send Email’ option if you want to use this feature.

You can also enable comments for your notices which will allow users to respond to notices by adding comments. To enable this feature, check the box next to ‘Allow Comments’ option.

Don’t forget to click on the save changes button to store your settings.

You will now see a new menu item labeled notices in your WordPress admin bar. This is where you can add and edit your custom admin notices.

Let’s create your first admin notice.

Visit Notices » Add Notice page. You will see a screen much like the WordPress post edit screen.

Add new custom notice

Start by adding a title for your notice, then add the actual notice in the post editor. You can select the notice category from the box on your right hand.

Next you need to select the user roles which will see this notice.

Select user roles that will see the notice

You can optionally show or hide title, author and date, and the button to dismiss notice.

Once you are finished, click on the publish button and your custom admin notice will go live.

KJM admin notices

KJM Admin Notices allows you to manage your custom admin notices without writing any code. You can delete or unpublish notices that you don’t want to display any more.

Using the email feature, you can also use it to alert all your users even if they don’t log in to check notices.

Having problems sending emails? See our guide on how to fix WordPress not sending email issue.

You may also want to take a look at WP Notification Center plugin. It adds a Facebook-like notification center in WordPress. Users can click on the notification icon to see their notifications.

Notification center

That’s all. We hope this article helped you learn how to add custom admin notices in WordPress. You may also want to see our guide on how to create a custom user registration form in WordPress.

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.

The post How to Add Custom Admin Notices in WordPress appeared first on WPBeginner.

How to Bulk Delete WordPress Users with Specific Roles

Do you want to delete WordPress users with specific roles? While you can go to the users page and delete each user one by one, it’s not a feasible option if you have a lot of users. In this article, we will show you how… Read More »

The post How to Bulk Delete WordPress Users with Specific Roles appeared first on WPBeginner.

Do you want to delete WordPress users with specific roles? While you can go to the users page and delete each user one by one, it’s not a feasible option if you have a lot of users. In this article, we will show you how to bulk delete WordPress users with specific roles.

Bulk Delete WordPress Users

Method 1: Manually Deleting WordPress Users with Specific Roles

This method is simpler and does not require you to install any plugin.

Simply go to the Users page on in your WordPress admin area. You will notice the list of users registered on your WordPress site.

Users page in WordPress

On top of the list, you will see the links to different user roles. When you click on a user role, it will show you the list of users with that specific user role.

This page only displays 20 users at a time. If you have more user accounts that you want to delete, then click on the Screen Options tab on the top right corner of the screen.

This will bring a fly-down menu where you can set the ‘Number of items per page’.

Show more items on the users page

For example, we want to delete users with subscriber user role, and there are 144 users with that role. We will enter 144 in the number of items per page field.

Click on the ‘Apply’ button, and the page will reload showing all user accounts with the subscriber user role.

Now you need to click on the select all checkbox next to the Username column to select all items displayed on the page.

Bulk select users you want to delete

If you don’t want to delete some users, then you can uncheck them now.

Once you are ready, click on the ‘Bulk Actions’ menu and then select ‘Delete’. After that click on the Apply button and WordPress will delete all selected user accounts.

If the user accounts you are trying to delete have created posts, then you will be asked what you want to do with those posts.

Delete or attribute content

You can select to delete all content created by those users or attribute it to an existing user account.

Click on the confirm deletion button to continue.

WordPress will now delete all selected users accounts from your site.

This method will work for a few hundred users, but if you have thousands of users, then you don’t want to adjust the screen options because it can potentially overload your server.

Instead you need to use Method #2.

Method 2: Bulk Delete WordPress Users with Specific Roles Using Plugin

The default way to bulk delete users with specific roles is quite simple. However, sometimes you may need to select users based on other criteria as well.

For example, you may want to delete users that haven’t logged in for a while, or users who signed up during a specific period of time.

In such a situation, the default user management tools will not be enough. Luckily, there are plugins that allow you to efficiently perform bulk tasks.

Let’s see how to delete users with specific roles using a plugin.

First thing you need to do is install and activate the Bulk Delete plugin. For more details, see our step by step guide on how to install a WordPress plugin.

Upon activation, you need to visit Bulk WP » Bulk Delete Users page.

Bulk delete users

Here you can select Bulk Delete options for deleting users. First, you can select the specific user roles. After that you can select the filtering options.

You can restrict bulk delete to users…

  • Who have registered in a given number of days.
  • Users who haven’t logged in the last __ of days.
  • Only if user doesn’t have any post.
  • Only delete first __ users.

You can also select users by meta data.

Scroll down a little to the ‘By User Meta’ box. In this box, you can select meta fields and use conditional operators to compare their values.

Bulk delete users by user meta data

Click on the Bulk Delete button and the users matching the specific criteria will be deleted.

That’s all we hope this article helped you learn how to bulk delete WordPress users with specific roles. You may also want to see our list of 13 free user management plugins for WordPress.

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.

The post How to Bulk Delete WordPress Users with Specific Roles appeared first on WPBeginner.

Exploring ServiceStack’s simple and fast web services on .NET Core

Northwind - ServiceStack styleI’ve been doing .NET Open Source since the beginning. Trying to get patches into log4net was hard without things like GitHub and Twitter. We emailed .patch files around and hoped for the best. It was a good time.

There’s been a lot of feelings around .NET Open Source over the last decade or so – some positive, some negative. There’s been some shining lights though and I’m going to do a few blog posts to call them out. I think having .NET Core be cross platform and open source will be a boon for the .NET Community. However, the community needs to also help out by using non-Microsoft OSS, supporting it, doing PRs, helping with docs, giving talks on new tech and spreading the word.

While some OSS projects are purely volunteer projects, ServiceStack has found some balance with a per-developer pricing model. They also support free usage for small projects. They’ve got deep integration with all major IDEs and support everything from VS, Xcode, INtelliJ, and the commandline.

ServiceStack Logo

One major announcement in the least few days as been ServiceStack 4.5.2 on .NET Core! Effectively one year to the day from the feature request and they did it! Their announcement paragraph says it best, emphasis mine.

Whilst the development and tooling experience is still in a transitionary period we believe .NET Core puts .NET Web and Server App development on the cusp of an exciting future – the kind .NET hasn’t seen before. The existing Windows hosting and VS.NET restraints have been freed, now anyone can develop using .NET’s productive expertly-designed and statically-typed mainstream C#/F# languages in their preferred editor and host it on the most popular server Operating Systems, in either an all-Linux, all-Windows or mixed ecosystem. Not only does this flexibility increase the value of existing .NET investments but it also makes .NET appeal to the wider and highly productive developer ecosystem who’ve previously disregarded .NET as an option.

Many folks ran (and run) ServiceStack on Mono, but it’s time to move forward. While Mono is still a fantastic stack on many platforms that .NET Core doesn’t support, for mainstream Linux, .NET Core is likely the better choice.

If you’re currently running ServiceStack on Mono, we strongly recommend upgrading to .NET Core to take advantage of its superior performance, stability and its top-to-bottom supported Technology Stack.

I also want to call out ServiceStack’s amazing Release Notes. Frankly, we could all learn from Release Note this good – Microsoft absolutely included. These release notes are the now Gold Standard as far as I’m concerned. Additionally, ServiceStack’s Live Demos are unmatched.

Enough gushing. What IS ServiceStack? It’s a different .NET way for creating web services. I say you should give it a hard look if you’re making Web Services today. They say this:

Service Stack provides an alternate, cleaner POCO-driven way of creating web services.

  • Simplicity
  • Speed
  • Best Practices
  • Model-driven, code-first, friction-free development
  • No XML config, no code-gen, conventional defaults
  • Smart – Infers intelligence from strongly typed DTOs
  • .NET and Mono
  • Highly testable – services are completely decoupled from HTTP
  • Mature – over 5+ years of development
  • Commercially supported and Continually Improved

They’ve plugged into .NET Core and ASP.NET Core exactly as it was design. They’ve got sophisticated middleware and fits in cleanly and feels natural. Even more, if you have existing ServiceStack code running on .NET 4.x, they’ve designed their “AppHost” such that moving over the .NET Core is extremely simple.

ServiceStack has the standard “Todo” application running in both .NET Full Framework and .NET Core. Here’s two sites, both .NET and both ServiceStack, but look what’s underneath them:

Getting Started with Service Stack

There’s a million great demos as I mentioned above with source at https://github.com/NetCoreApps, but I love that ServiceStack has a Northwind Database demo here https://github.com/NetCoreApps/Northwind. It even includes a Dockerfile. Let’s check it out. I was able to get it running in Docker in seconds.

>git clone https://github.com/NetCoreApps/Northwind
>cd Northwind
>docker build -t "northwindss/latest" .
>docker run northwindss/latest
Project Northwind.ServiceModel (.NETStandard,Version=v1.6) was previously compiled. Skipping compilation.
Project Northwind.ServiceInterface (.NETStandard,Version=v1.6) was previously compiled. Skipping compilation.
Project Northwind (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Production
Content root path: /app/Northwind
Now listening on: https://*:5000
Application started. Press Ctrl+C to shut down.

Let’s briefly look at the code, though. It is a great sample and showcases a couple cool features and also is nicely RESTful.

There’s some cool techniques in here. It uses SqLITE for the database and the database itself is created with this Unit Test. Here’s the ServiceStack AppHost (AppHost is their concept)

public class AppHost : AppHostBase
{
public AppHost() : base("Northwind Web Services", typeof(CustomersService).GetAssembly()) { }

public override void Configure(Container container)
{
container.Register<IDbConnectionFactory>(
new OrmLiteConnectionFactory(MapProjectPath("~/App_Data/Northwind.sqlite"), SqliteDialect.Provider));

//Use Redis Cache
//container.Register<ICacheClient>(new PooledRedisClientManager());

VCardFormat.Register(this);

Plugins.Add(new AutoQueryFeature { MaxLimit = 100 });
Plugins.Add(new AdminFeature());

Plugins.Add(new CorsFeature());
}
}

Note host the AppHost base references the Assembly that contains the CustomersService type. That’s the assembly that is the ServiceInterface. There’s a number of Services in there – CustomersService just happens to be a simple one:

public class CustomersService : Service
{
public object Get(Customers request) =>
new CustomersResponse { Customers = Db.Select<Customer>() };
}

The response for /customers is just the response and a list of Customers:

[DataContract]
[Route("/customers")]
public class Customers : IReturn<CustomersResponse> {}

[DataContract]
public class CustomersResponse : IHasResponseStatus
{
public CustomersResponse()
{
this.ResponseStatus = new ResponseStatus();
this.Customers = new List<Customer>();
}

[DataMember]
public List<Customer> Customers { get; set; }

[DataMember]
public ResponseStatus ResponseStatus { get; set; }
}

Customers has a lovely clean GET that you can see live here: http://northwind.netcore.io/customers. Compare its timestamp to the cached one at http://northwind.netcore.io/cached/customers.

[CacheResponse(Duration = 60 * 60, MaxAge = 30 * 60)]
public class CachedServices : Service
{
public object Get(CachedCustomers request) =>
Gateway.Send(new Customers());

public object Get(CachedCustomerDetails request) =>
Gateway.Send(new CustomerDetails { Id = request.Id });

public object Get(CachedOrders request) =>
Gateway.Send(new Orders { CustomerId = request.CustomerId, Page = request.Page });
}

You may find yourself looking at the source for the Northwind sample and wondering “where’s the rest?” (no pun intended!) Turns out ServiceStack will do a LOT for you if you just let it!

The Northwind project is also an example of how much can be achieved with a minimal amount of effort and code. This entire website literally just consists of these three classes . Everything else seen here is automatically provided by ServiceStack using a code-first, convention-based approach. ServiceStack can infer a richer intelligence about your services to better able to provide more generic and re-usable functionality for free!

ServiceStack is an alternative to ASP.NET’s Web API. It’s a different perspective and a different architecture than what Microsoft provides out of the box. It’s important and useful to explore other points of view when designing your systems. It’s especially nice when the systems are so thoughtfully factored, well-documented and designed as ServiceStack. In fact, years ago I wrote their tagline: “Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all.”

Have you used ServiceStack? Have you used other open source .NET Web Service/API frameworks? Share your experience in the comments!


Sponsor: Big thanks to Telerik! 60+ ASP.NET Core controls for every need. The most complete UI toolset for x-platform responsive web and cloud development. Try now 30 days for free!


© 2016 Scott Hanselman. All rights reserved.
     

Northwind - ServiceStack styleI've been doing .NET Open Source since the beginning. Trying to get patches into log4net was hard without things like GitHub and Twitter. We emailed .patch files around and hoped for the best. It was a good time.

There's been a lot of feelings around .NET Open Source over the last decade or so - some positive, some negative. There's been some shining lights though and I'm going to do a few blog posts to call them out. I think having .NET Core be cross platform and open source will be a boon for the .NET Community. However, the community needs to also help out by using non-Microsoft OSS, supporting it, doing PRs, helping with docs, giving talks on new tech and spreading the word.

While some OSS projects are purely volunteer projects, ServiceStack has found some balance with a per-developer pricing model. They also support free usage for small projects. They've got deep integration with all major IDEs and support everything from VS, Xcode, INtelliJ, and the commandline.

ServiceStack Logo

One major announcement in the least few days as been ServiceStack 4.5.2 on .NET Core! Effectively one year to the day from the feature request and they did it! Their announcement paragraph says it best, emphasis mine.

Whilst the development and tooling experience is still in a transitionary period we believe .NET Core puts .NET Web and Server App development on the cusp of an exciting future - the kind .NET hasn’t seen before. The existing Windows hosting and VS.NET restraints have been freed, now anyone can develop using .NET’s productive expertly-designed and statically-typed mainstream C#/F# languages in their preferred editor and host it on the most popular server Operating Systems, in either an all-Linux, all-Windows or mixed ecosystem. Not only does this flexibility increase the value of existing .NET investments but it also makes .NET appeal to the wider and highly productive developer ecosystem who’ve previously disregarded .NET as an option.

Many folks ran (and run) ServiceStack on Mono, but it's time to move forward. While Mono is still a fantastic stack on many platforms that .NET Core doesn't support, for mainstream Linux, .NET Core is likely the better choice.

If you’re currently running ServiceStack on Mono, we strongly recommend upgrading to .NET Core to take advantage of its superior performance, stability and its top-to-bottom supported Technology Stack.

I also want to call out ServiceStack's amazing Release Notes. Frankly, we could all learn from Release Note this good - Microsoft absolutely included. These release notes are the now Gold Standard as far as I'm concerned. Additionally, ServiceStack's Live Demos are unmatched.

Enough gushing. What IS ServiceStack? It's a different .NET way for creating web services. I say you should give it a hard look if you're making Web Services today. They say this:

Service Stack provides an alternate, cleaner POCO-driven way of creating web services.

  • Simplicity
  • Speed
  • Best Practices
  • Model-driven, code-first, friction-free development
  • No XML config, no code-gen, conventional defaults
  • Smart - Infers intelligence from strongly typed DTOs
  • .NET and Mono
  • Highly testable - services are completely decoupled from HTTP
  • Mature - over 5+ years of development
  • Commercially supported and Continually Improved

They've plugged into .NET Core and ASP.NET Core exactly as it was design. They've got sophisticated middleware and fits in cleanly and feels natural. Even more, if you have existing ServiceStack code running on .NET 4.x, they've designed their "AppHost" such that moving over the .NET Core is extremely simple.

ServiceStack has the standard "Todo" application running in both .NET Full Framework and .NET Core. Here's two sites, both .NET and both ServiceStack, but look what's underneath them:

Getting Started with Service Stack

There's a million great demos as I mentioned above with source at https://github.com/NetCoreApps, but I love that ServiceStack has a Northwind Database demo here https://github.com/NetCoreApps/Northwind. It even includes a Dockerfile. Let's check it out. I was able to get it running in Docker in seconds.

>git clone https://github.com/NetCoreApps/Northwind

>cd Northwind
>docker build -t "northwindss/latest" .
>docker run northwindss/latest
Project Northwind.ServiceModel (.NETStandard,Version=v1.6) was previously compiled. Skipping compilation.
Project Northwind.ServiceInterface (.NETStandard,Version=v1.6) was previously compiled. Skipping compilation.
Project Northwind (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.
Hosting environment: Production
Content root path: /app/Northwind
Now listening on: https://*:5000
Application started. Press Ctrl+C to shut down.

Let's briefly look at the code, though. It is a great sample and showcases a couple cool features and also is nicely RESTful.

There's some cool techniques in here. It uses SqLITE for the database and the database itself is created with this Unit Test. Here's the ServiceStack AppHost (AppHost is their concept)

public class AppHost : AppHostBase

{
public AppHost() : base("Northwind Web Services", typeof(CustomersService).GetAssembly()) { }

public override void Configure(Container container)
{
container.Register<IDbConnectionFactory>(
new OrmLiteConnectionFactory(MapProjectPath("~/App_Data/Northwind.sqlite"), SqliteDialect.Provider));

//Use Redis Cache
//container.Register<ICacheClient>(new PooledRedisClientManager());

VCardFormat.Register(this);

Plugins.Add(new AutoQueryFeature { MaxLimit = 100 });
Plugins.Add(new AdminFeature());

Plugins.Add(new CorsFeature());
}
}

Note host the AppHost base references the Assembly that contains the CustomersService type. That's the assembly that is the ServiceInterface. There's a number of Services in there - CustomersService just happens to be a simple one:

public class CustomersService : Service

{
public object Get(Customers request) =>
new CustomersResponse { Customers = Db.Select<Customer>() };
}

The response for /customers is just the response and a list of Customers:

[DataContract]

[Route("/customers")]
public class Customers : IReturn<CustomersResponse> {}

[DataContract]
public class CustomersResponse : IHasResponseStatus
{
public CustomersResponse()
{
this.ResponseStatus = new ResponseStatus();
this.Customers = new List<Customer>();
}

[DataMember]
public List<Customer> Customers { get; set; }

[DataMember]
public ResponseStatus ResponseStatus { get; set; }
}

Customers has a lovely clean GET that you can see live here: http://northwind.netcore.io/customers. Compare its timestamp to the cached one at http://northwind.netcore.io/cached/customers.

[CacheResponse(Duration = 60 * 60, MaxAge = 30 * 60)]

public class CachedServices : Service
{
public object Get(CachedCustomers request) =>
Gateway.Send(new Customers());

public object Get(CachedCustomerDetails request) =>
Gateway.Send(new CustomerDetails { Id = request.Id });

public object Get(CachedOrders request) =>
Gateway.Send(new Orders { CustomerId = request.CustomerId, Page = request.Page });
}

You may find yourself looking at the source for the Northwind sample and wondering "where's the rest?" (no pun intended!) Turns out ServiceStack will do a LOT for you if you just let it!

The Northwind project is also an example of how much can be achieved with a minimal amount of effort and code. This entire website literally just consists of these three classes . Everything else seen here is automatically provided by ServiceStack using a code-first, convention-based approach. ServiceStack can infer a richer intelligence about your services to better able to provide more generic and re-usable functionality for free!

ServiceStack is an alternative to ASP.NET's Web API. It's a different perspective and a different architecture than what Microsoft provides out of the box. It's important and useful to explore other points of view when designing your systems. It's especially nice when the systems are so thoughtfully factored, well-documented and designed as ServiceStack. In fact, years ago I wrote their tagline: "Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all."

Have you used ServiceStack? Have you used other open source .NET Web Service/API frameworks? Share your experience in the comments!


Sponsor: Big thanks to Telerik! 60+ ASP.NET Core controls for every need. The most complete UI toolset for x-platform responsive web and cloud development. Try now 30 days for free!



© 2016 Scott Hanselman. All rights reserved.