CheapWindowsHosting.com | In this post I will show you some tips for writing SEO friendly content. Before we delve into the tips, let us begin with what it means to have SEO friendly content. Simply put, it is producing content that is written with attention given to how search engines might view your content. Sadly though, there are a lot of marketers as well as bloggers who put too much emphasis on their SEO and tend to forget about putting their readers front and center. Think of your audience and write something that will be beneficial to them. You are writing for people, not for the search engines.
If you are new to blogging or you have a new website, it is only natural to want to be searchable and improve in page rank.
Here are eight tips for writing effective SEO friendly content.
When asked what my formula is for writing good content my answer is always write content that is useful and/or entertaining. Most search engines rewards sites that share relevant content with their readers. The more original and fresh the content you share, the better visibility you will gain in search results. The more people who find your content helpful or entertaining, the more share worthy it becomes. Remember that a well written article trumps quantity at all times. Some site owners think the more articles they churn out, the more ranking they acquire. This couldn’t be more wrong. If you just vomit words out for the sake of having new content, you will be disappointed.
You need to be considerate your reader’s time. Keep it short and make your point right away. Some articles longer articles can be boring. In my experience, if a person can read your article and benefit from it in under 5 to 10 minutes, you’ll get more people engaging with your content. I also like using lists. Try to break up your copy for easy reading.
Even before you start writing an article, you should have already chosen which keywords to use. Include them in your title, in your meta-tags and within the body of your post. Be careful not to over use them. Most readers are wise enough to see what you are doing and will get turned off and never go back to your site again. Don’t be lazy. Tag your content. This will help search engines categorize your content more accurately and that will help your search positioning. Don’t know which keywords or tags to use, try WordTracker or Google Trends.
What will set your work apart from others is your point of view. Everyone can write an article on the same topics as yours but adding your own story and experience will make your content unique. Offering your own spin or twist will make your content much more interesting to your readers. If they can better relate to you, the more shareable and engaging your article will be.
When you add links to your article, it is important to make it part of your copy instead of just saying “check it here”. Adding back links from credible websites that you used as a source is important as it builds trust and credibility with your readers about the information you are sharing.
Use relevant images not just all text. Not only does it makes your article more interesting, but you’re able to optimize your images with relevant keywords to name your image files or graphics. Make sure to name the image properly and to optimize the size of the image as load time can have an impact on your SEO. Make the image as small as possible without sacrificing quality. You can try the Image Optimizer tool for this task.
This is a must for all writers. Proof read your work. Make sure you check your spelling. Imagine if you are relying on keywords to help you be more searchable and you misspell those keywords, then all your hard work becomes futile. Besides, you also don’t want to annoy your readers with misspelled words and bad grammar.
Okay, you have followed all the tips above. You wrote a killer article and have published it. The next important step is to make it shaerable. Make sure you have all the leading social share buttons on your website. All the popular social networking sites offer plugins readily available for anyone to install and most are free. Search ranking tends to increase when content is shared frequently. Don’t under-estimate the power of social media.
There you go, the eight tips that I use as a checklist before publishing any article. Did I miss any? Please share your tips by leaving a comment. We would love to hear from you.
CheapWindowsHosting.com | Cheap and reliable ASP.NET hosting. A Content Management System makes it easy to manage your website content and design your own website. CMS allows you to manage every aspect of your website such as content, functionality and navigation, design, SEO and more. CMS enables you to easily create and update content without programming skills. The appearance of all content in CMS website is controlled by a set of templates that will make managing your website easier than you can imagine.
Kentico CMS for ASP.NET – Kentico CMS is powerful ASP.NET based Content Management platform to build web sites and web applications. Kentico CMS utilizes ASP.NET and Microsoft SQL Server. It is full-featured CMS with e-commerce, intranet, social networking, online marketing tools, Ajax support, Mobile websites support, Sharepoint support, Supports Visual Studio .NET and ASP.NET, Ready-to-use website templates (Corporate Site, E-commerce Site) and more.
Kentico CMS hosting requires: Windows Server 2008,.NET Framework 3.5 SP1 or 4.0 or higher, IIS 7.0, 7.5, 8.0 , Microsoft SQL Server 2005, 2008, 2008 R2, 2012. If you want to edit source, you need Visual Studio/Visual Web Developer 2008/2010/2012.
DotNetNuke (DNN)
DNN is the leading open source web content management platform. The Community Edition is open source. The functionality can be extensible through a large number of third-party modules.
MojoPortal CMS
mojoPortal is an open source, cross-platform, content management system for ASP.NET which is written in the C# programming language. MojoPortal content management system requires ASP.NET 3.5 or ASP.NET 4.0/4.5, IIS 6 or higher, any of the following 5 Databases( MSSQL/SQLExpress/SQL-CE/SQL-Azure, MySql, PostgreSQl, Firebird Sql, and SQLite). Features includes Blogs, Forums, Calendar, Google/Bing Maps, Contact Form, Newsletter, Polls, Surveys, ecommerce & more. MojoPortal is an extensible and mobile friendly.
Orchard
Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform. Orchard content management system requires: Windows Server 2003 or Windows 2008 Server, ASP.NET 4 or above, IIS Express 8, 7.5 or IIS 7.x, Up to 12 GB ofhard drive space for a full Orchard installation, Full Trust mode for applications to perform better.
Umbraco
Umbraco is an open source content management system built on Microsoft’s .NET technology stack. It is simple, flexible and friendly. Umbraco content management system requires: IIS6+ (IIS 7 Preferred),SQL CE or SQL Server 2008 , ASP.NET 4, Medium-Trust/Full-Trust and ability to set file permissions to include create/read/write (or better) for the user that “owns” the Application Pool for your site.
Sitefinity CMS
Sitefinity is a web content management and collaboration platform designed to help organizations pursue their online goals. Sitefinity content management system requires: Windows Server 2003/ 2008/2008 R2/2012, 32-bit or 64-bit operating system, IIS 6+, .NET Framework 4.0 and 4.5, ASP.NET MVC 4.
ASP.NET CMS Hosting features
Best and Recommended ASP.NET CMS Hosting:
CheapWindowsHosting.com | Search engine optimization (SEO) is a complicated process, especially for e-commerce sites. But getting the basics in place, if you don’t already have them, will provide a big boost right off the bat. And on-page SEO is often much easier and has faster results than off-page tasks such as link building. If you’re just launching or you’ve not yet applied any SEO best practices to your store, the following list will help you get started.
Get a Google Webmaster Tools account, add and verify your site. This free set of tools from Google provides a ton of information about your website, and we’ll use some of this in the next steps. To get started, go to https://www.google.com/webmasters/tools/ and click the Add Your Site button. Follow the steps to add your site and then verify it.
Make sure each page has a useful, unique title. The title tag is not only one of ways a site ranks for a given term, but it is also displayed in Google’s search results (aka SERPs, for “search engine results pages”) and helps a searcher determine whether they want to click through to your website. The title tag should contain the keywords that you want the site to rank for, but it should be written for a human. Don’t just stuff it full of keywords; use the main keyword/phrase in a readable way that entices people to click through.
You also want to make sure the page titles are unique, so that no two pages on your site have the same title. Google Webmaster Tools has an easy way to do this: Just log into your GWT account and go to Search Appearance > HTML Improvements. You should see “Duplicate Title Tags” on the right side of the page. If you have duplicate title tags, this will be a link that you can click to see a report of pages that have the same title tag. Additionally, in GWT you can see any title tags that Google reports as either too short or too long.
Write great meta descriptions. Just like the title tag, the description tag often (but not always) appears in the SERPs, and searchers use it as an indicator for whether to click through to your site from Google. The meta description should be 156 characters or less, but long enough to fully describe the page. Again, include the keyword phrase if possible, but make it sound natural. The HTML Improvements section in GWT (as mentioned above) will also show you pages with duplicate, too-short, and too-long meta tags.
Write unique product descriptions. It’s oh-so-easy to use the descriptions provided by your vendors; the problem is, that’s what every other retailer who sells the same item is doing. If, instead, you write unique product descriptions, using your keywords, and making sure the length is a minimum of 300 words, you’ll get an instant boost in value for your product pages. The descriptions should be scan-able, because when reading online, people tend to steer clear of long, dense paragraphs. Use bullet points to identify key features and benefits, headings to separate sections, and bold or italics to highlight short key phrases.
Use HTML heading tags such as <h1>, <h2>, etc. in meaningful ways, including keywords in them whenever possible. Any given page should have exactly one H1 tag, but can have multiple H2, and H3 tags. You can use CSS to style these to fit with your site’s design and aesthetics.
Images are an often-overlooked area for SEO. The alt text for the image should contain your keyword phrase, but the actual image filename should include keywords as well. If you want to rank well in Google Image search, which can be a great source of traffic, it helps to have unique images not used by other sites. For this purpose, consider taking your own product photos. Finally, optimize the images for as small a file size as possible without visibly reducing the quality. I like to use Photoshop’s “Save for web and devices” option for this. For more information on optimizing images, read this post by Dave Davies over on Search Engine Watch.
Typically, the URL for your homepage is going to be the domain itself, such as http://www.domain.com. However, depending on your content and e-commerce platforms, you may also be able to reach the homepage through other URLs, such as :
If possible, use just the domain name, but whatever you use, make sure it’s consistent. Don’t use one URL to link your logo and another URL to link the word “home” in your navigation bar! You can also learn about canonical URLs to tell Google that all versions of the homepage are really the same.
Just like humans, Googlebot (and other search engine spiders) need to easily be able to reach your pages. They also consider how far (in numbers of clicks or links) a page is from your homepage in determining its relative importance. So navigation is quite important for these purposes. Optimize navigation areas such as your menu (and submenus, if applicable), your list of categories, and breadcrumbs, to make sure you’re not introducing roadblocks to getting your content crawled. And while search engines have gotten better about following JavaScript links, it’s still good practice to have plain HTML menus.
It can be useful to link between products, especially when there is some relation between them – such as similar items or a main item and its accessories. Most e-commerce software offers internal linking features such as related products. But, when it makes sense, you may also want to link contextually from one product to another, typically within the description. For example, if you’re selling a 120-piece art kit but you also offer a 175-piece kit, you may wish to add that information to each product’s descriptions, and link between the two product’s pages. The context of the link – in other words, the text that surrounds it – can give your site a boost.
It’s been long known that one of Google’s ranking factors is how long it takes a page to load. So improving your load times not only makes for a better user experience, it helps your SEO efforts too. The time a page takes to load can be divided into back-end items such as how long it takes to load information from the database; and front-end items like how long it takes to transmit the images on the page to the visitor’s browser. The back-end processing greatly affects something called TTFB, or time to first byte – the amount of time it takes before the first byte is received by the browser. Lowering your TTFB is one of the most important aspects of page load as it relates to SEO. We use WebpageTest.org to get data on load times, including TTFB.
There are two types of site maps to cover in this section. The first is for the human visitor, and is an overall view of your website and links to all pages or at least to key sections, depending on the size of your site. The second is an XML sitemap that is used to send a list of URLs and their relative importance to Google and other search engines to help them better crawl your website. There are a number of tools, free and paid, that help you build either kind of sitemap.
Customer reviews help convert other buyers because they are considered an unbiased opinion about the product you’re selling. But they have significant SEO value, too. First of all, the content of each review is likely unique and will only appear on your site. Pages with higher word count rank better than shorter pages, generally, so the increased number of words is helpful. And, if you get reviews often enough, Google will see that your page content changes regularly, a factor that increases the likelihood of the page being crawled more often.
It has been long thought that social signals, like Twitter tweets and Facebook likes, are a ranking factor when it comes to Google. Matt Cutt’s recently stated otherwise. But getting customers to share products has a less direct SEO benefit, too. The more ways someone has to find your site and your products, the more likely they are to spread the word – and that includes writing about you and linking to your site. Natural, unsolicited links to your website are still one of the most important factors Google uses to rank a website. (Note, “natural” and “unsolicited”; those are important words!)
Make it easy for customers to share your pages on their favorite social networks, by adding a services like AddThis, or by implementing share/like/tweet buttons right individually on your website.
There are many other ways to improve your chance of ranking well on Google. SEO is a science and an art, and a field of study all to itself. But these basics will help you get started. You may not have the time or capability to address them all at once, but pick a couple and get started, and see how it improves your website’s placement on Google.
CheapWindowsHosting.com | Best and cheap ASP.NET Core hosting. In this post we will show you how to running ASP.NET Core with IIS on Nano server.
First you need to install IIS on Nano.
Currently, both HttpPlatformHandler and Asp.Net Core Kestrel host requires Reverse Forwarders package to be installed on the Nano machine. Reverse Fowarders can be installed offline (machine turned off) or online (machine running).
Offline, Reverse Forwarders can be installed by passing –ReverseForwarders parameters when calling New-NanoServerImage cmdlet.
e.g. New-NanoServerImage -MediaPath f:\ -BasePath .\Base -TargetPath .\Nano1.vhd -GuestDrivers -Packages Microsoft-NanoServer-IIS-Package -ReverseForwarders
Online, Reverse Forwarders can be installed by calling dism on the relevant package:
In this case, C:\packages is a local directory that I created where I copied the Packages folder from the Nano Server media installation location.
After installing Reverse Forwarders package (whether offline or online), verify that IIS and Reverse Forwarders are correctly installed by running ‘dism /online /get-packages’.
You should see the Feature and Language packs for Microsoft-NanoServer-IIS-Package and Microsoft-OneCore-ReverseForwarders-Package.
At this time, the install for HttpPlatformHandler on Nano is manual.
Nano is 64 bit only (no WOW), so you’ll need to install the latest x64 version of HttpPlatformHandler (http://www.iis.net/downloads/microsoft/httpplatformhandler) on a regular (not Nano) machine.
Once you have x64 bit version of HttpPlatformHandler installed on your regular (not Nano) machine, there are 2 files which we’ll need to copy to the Nano machine:
On the Nano machine you’ll need to copy those 2 files to the respective locations (dll->inetsrv, schema file->inetsrv\config\schema)
You can execute the steps below in a remote PowerShell session to the Nano machine.
Note that the below steps works on a clean system, but is not meant to be idempotent. If you run this multiple times it will add multiple entries and you will run into problems!
If you end up in a bad state, you can find backups of the applicationHost.config file at %systemdrive%\inetpub\history.
Import-Module IISAdministration
$sm = Get-IISServerManager
# Add AppSettings section (for Asp.Net Core)
$sm.GetApplicationHostConfiguration().RootSectionGroup.Sections.Add("appSettings")
# Unlock handlers section
$appHostconfig = $sm.GetApplicationHostConfiguration()
$section = $appHostconfig.GetSection("system.webServer/handlers")
$section.OverrideMode="Allow"
# Add httpPlatform section to system.webServer
$sectionHttpPlatform = $appHostConfig.RootSectionGroup.SectionGroups["system.webServer"].Sections.Add("httpPlatform")
$sectionHttpPlatform.OverrideModeDefault = "Allow"
# Add to globalModules
$globalModules = Get-IISConfigSection "system.webServer/globalModules" | Get-IISConfigCollection
New-IISConfigCollectionElement $globalModules -ConfigAttribute @{"name"="httpPlatformHandler";"image"="%SystemRoot%\system32\inetsrv\httpPlatformHandler.dll"}
# Add to modules
$modules = Get-IISConfigSection "system.webServer/modules" | Get-IISConfigCollection
New-IISConfigCollectionElement $modules -ConfigAttribute @{"name"="httpPlatformHandler"}
$sm.CommitChanges()
You can skip this section if you already did the PowerShell steps above.
I recommend following the PowerShell steps, although if you absolutely must edit the IIS applicationHost.config file to enable HttpPlatformHandler then these are the steps.
Open up c:\windows\system32\inetsrv\applicationHost.config
(if you are using Powershell ISE v5 you can do this using ‘psedit c:\windows\system32\inetsrv\applicationHost.config’)
Under <configSections> add
<configSections>
<section name="appSettings" />
In system.webServer section, unlock handlers from Deny to Allow
<section name="handlers" overrideModeDefault="Allow" />
In system.webServer section, add new httpPlatform section
<section name="httpPlatform" overrideModeDefault="Allow" />
</sectionGroup>
Add the following to globalModules
<add name="httpPlatformHandler" image="%SystemRoot%\system32\inetsrv\httpPlatformHandler.dll" />
</globalModules>
Add the following to Modules
<add name="httpPlatformHandler" />
</modules>
First, make sure that your Asp.Net Core application is built targeting coreclr and x64.
This is very important as any other combination will not work on Nano.
After building for coreclr/x64 you will need to copy the whole application to the Nano machine – in this example I’m using c:\HelloAspNetCore.
Next I will setup a new Site pointing to c:\HelloAspNetCore\wwwroot using port 8000 (for simplicity we will go with Default App Pool)
There are no problems running the Asp.Net Core site on default port 80, though in a testing environment I like to separate the Asp.Net Core app from the default website, so that it’s easier to troubleshoot when something goes wrong (e.g. so you can verify that the default IIS site still works fine).
Using IIS PowerShell:
Import-module IISAdministration
New-IISSite -Name "AspNetCoreSite" -PhysicalPath c:\HelloAspNetcore\wwwroot -BindingInformation "*:8000:"
Creating the site manually (omit if you already created using PowerShell above) by editing c:\windows\system32\inetsrv\applicationHost.config:
<sites>
<site name="Default Web Site" id="1">
<application path="/">
<virtualDirectory path="/" physicalPath="%SystemDrive%\inetpub\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:80:" />
</bindings>
</site>
<site name="AspNetCoreSite" id="2">
<application path="/">
<virtualDirectory path="/" physicalPath="C:\HelloAspNetCore\wwwroot" />
</application>
<bindings>
<binding protocol="http" bindingInformation="*:8000:" />
</bindings>
</site>
… rest of xml…
</sites>
The next step is to open up port 8000 in the firewall.
New-NetFirewallRule -Name "AspNetCore" -DisplayName "HTTP on TCP/8000" -Protocol tcp -LocalPort 8000 -Action Allow -Enabled True
I have followed the steps, but it doesn't work 🙁
It gets a PERMISSION DENIED; I found it in the app /logs directory (included below).
Does it need an additional ICACL somewhere? I don't know under what security context it runs...
I think I saw somewhere it could need permission for the port it runs on. If so, how do we grant permissions on that port?
Microsoft.AspNet.Server.Kestrel.Networking.UvException: Error -4092 EACCES permission denied
at Microsoft.AspNet.Server.Kestrel.Networking.Libuv.Check(Int32 statusCode)
at Microsoft.AspNet.Server.Kestrel.Networking.UvTcpHandle.Bind(ServerAddress address)
at Microsoft.AspNet.Server.Kestrel.Http.TcpListener.CreateListenSocket()
at Microsoft.AspNet.Server.Kestrel.Http.Listener.<>c__DisplayClass5_0.<StartAsync>b__0(Object _)
CheapWindowsHosting.com | Best and cheap PrestaShop hosting. It’s been a long and frustrating time for all those that have had a terrible time making an attempt to figure out and get help with the errors occurring when enabling Friendly URL’s in Prestashop. i actually had an equivalent problem for quite a while before finding solutions. The problem at hand is usually the .htaccess file settings preventing Prestashop from exercise various permissions once handling the files it needs on a web host.
Another common problem is obtaining an error 500 message. This could be caused by a global setting configured by your host in which sometimes they’re unwilling to change due to their security protocols used. Assuming your hosting provider uses a Linux based system(nearly always the case for standard hosting needs), you should be able to test the below modification to your .htaccess file in your website’s main directory.
# URL rewriting module activation
RewriteEngine on
RewriteCond %{REQUEST_METHOD} !^(TRACE|TRACK|GET|POST|HEAD)$
RewriteRule .* - [F]
RewriteBase /
Options +FollowSymLinks
# URL rewriting rules
RewriteRule ^([a-zA-Z0-9-]*)/([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$2$4 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)\.html(.*)$ product.php?id_product=$1$3 [L,E]
RewriteRule ^([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ category.php?id_category=$1 [QSA,L,E]
RewriteRule ^content/([0-9]+)\-([a-zA-Z0-9-]*)(.*)$ cms.php?id_cms=$1 [QSA,L,E]
RewriteRule ^([0-9]+)__([a-zA-Z0-9-]*)(.*)$ supplier.php?id_supplier=$1$3 [QSA,L,E]
RewriteRule ^([0-9]+)_([a-zA-Z0-9-]*)(.*)$ manufacturer.php?id_manufacturer=$1$3 [QSA,L,E]
# Catch 404 errors
ErrorDocument 404 /404.php
If you are experiencing a 500 error with Prestashop, you may have issues with your web hosting php.ini settings. Some web hosting allow you to make modifications to this file and some don’t. ASPHostPortal.com prides itself in providing Full Trust web hosting with a rare combination of unmatched reliability, quality and affordability.
ASPHostPortal.com’s edge is derived through unparalleled company management and a culture of employee driven initiatives. With their fully support on Microsoft Windows and PrestaShop in their Windows Server, ASPHostPortal.com is the best choice to host your Prestashop 1.6.1.1 hosting. They are so confident in their hosting services they will not only provide you with a 30 days money back guarantee, but also they give you a 99.9% uptime guarantee. Their Prestashop 1.6.1.1 hosting plan is starting from $5.00 /mo.
Normally you would never need to override any php.ini settings. Your exact issue may vary and you should contact your host for troubleshooting. Make sure you clear your browser’s cookies if you don’t notice any change. Also go to the sitemap module and update it just to be safe.
The Results should take place as soon as your website says that your settings have been saved. Check your product pages and everything should be alright. With one exception. Some people can’t get the proper URL to show up under “Recently Viewed” viewed items. I’m pretty sure you can just add another line in the
CheapWindowsHosting.com | Run external app directly from RAM. You can load the specific file into a Byte [] Array with a StreamReader () or even download it from WEB via a direct link provided.
The point of this technique is to maintain anonymity to a fragile file, thus leaving no chance to a reverse engineer to crack the details.
Also note, to keep the variables such as the one referencing the MethodInfo()
on a Class
basis. You then should Dispose()
or set to Nothing
these variables at the FormClosing()
Event to prevent memory leak.
Dim method As System.Reflection.MethodInfo
Sub Run
Dim bb() As Byte = IO.File.ReadAllBytes("file.exe")
Try
Dim a As System.Reflection.Assembly = System.Reflection.Assembly.Load(bb)
'or a = Reflection.Assembly.Load(New WebClient().DownloadData("https://...."))
method = a.EntryPoint
If (Not method Is Nothing) Then
Dim o As Object = a.CreateInstance(method.Name)
method.Invoke(o, Nothing)
'if your app receives parameters
'method.Invoke(o, New Object() {New String(){"Hello}})
Else
Throw New NullReferenceException("method is null.")
End If
Catch ex As Exception
MsgBox(ex.Message & vbCrLf & "File length: = " & bb.Length.ToString)
End Try
End Sub
If your app is WinForms and not ConsoleApplication, then follow the steps below:
Your external application needs to start from a Main() Sub
to be compatible with this. Otherwise, change the solution property of your external app:
ApplicationFramework
Module1
)Module1
Module1
Public Sub Main()
Application.Run(New Form1)
'Form1 is your first WinForm that your app displays
End Sub
or if your app receives parameters:
Public Sub Main(ByVal args As String())
Application.Run(New Form1)
'Form1 is your first WinForm that your app displays
End Sub
I hope this post helpful for you 🙂
WordPress is a great platform. One weakness that it suffers from, however, is it can be quite slow.
CheapWindowsHosting.com | In this quick post, I’ll cover all of the best ways that I’ve found to consistently speed up WordPress.
When a person lands on your site for the first time, you only have a few seconds to capture their attention to convince them to hang around.
Get ready to lose sleep at night: according to a report by the Microsoft Bing search team, a 2-second longer delay in page responsiveness reduced user satisfaction by 3.8%, increased lost revenue per user by 4.3%, and a reduced clicks by 4.3%.
If your site takes too long to load, most people are gone, lost before you even had a chance.
Not only that, but Google now includes site speed in it’s ranking algorithm. That means that your site’s speed effects SEO, so if your site is slow, you’re now losing visitors from impatience and reduced rankings in search engines. Yikes.
Let’s fix that.
As a side note, these are not ordered by importance or any criteria, I’ve just gathered everything I’ve learned about speeding up page loads on WordPress and compiled them here.
I guarantee that using even a few will help speed up your site.
When starting out, a shared host might seem like a bargain (“Unlimited page views!”). It comes at another cost: incredibly slow site speed and frequent down time during high traffic periods.
If you plan on publishing popular stuff, you’re killing yourself by running your WordPress site on shared hosting.
The stress of your site going down after getting a big feature is enough to create a few early gray hairs: don’t be a victim, invest in proper hosting.
The only WordPress host I continually recommend is…
ASPHostPortal is a rising star in ASP.NET hosting field. Since its establishment, the company has gained more and more attention from users and authorities in hosting industry because of its cost-effectiveness, high-performance and excellent technical support.
The company has four cheap and reliable WordPress hosting plans. Host One, Host Two, Host Three and Host Four, in total The original prices of the plans are $1.00/mo , $5.00/mo, $9.00/mo and $14.00/mo severally. It is clear that ASPHostPortal does provide competitive pricing.
You might be surprised to here this, but the Twenty Fifteen “framework” (aka the default WP theme) is lightweight and quite speedy.
That’s because they keep the “guts” simple; compare that to bloated frameworks which have tons of features that you will never use, slowing your site to a crawl.
From my experience, the fastest loading premium framework is definitely the Thesis Theme Framework. It surpasses the basic WordPress themes by being far easier to customize.
It’s an incredibly solid framework that won’t slow you down with excess plugins or custom edits. Make the changes right from the theme and avoid bloat, hoorah!
WordPress plugins are obviously quite useful, but some of the best fall under the caching category, as they drastically improve page loads time, and best of all, all of them on WP.org are free and easy to use.
By far my favorite, bar none, is W3 Total Cache, I wouldn’t recommend or use any other caching plugin, it has all of the features you need and is extremely easy to install and use.
Simply install and activate, and what your page load faster as elements are cached.
All of your favorite big blogs are making use of this, and if you are into online marketing using WordPress (as I’m sure many of my readers are) you won’t be surprised to here that some of your favorite blogs like Copyblogger are making use of CDN’s.
Essentially, a CDN, or content delivery network, takes all your static files you’ve got on your site (CSS, Javascript and images etc) and lets visitors download them as fast as possible by serving the files on servers as close to them as possible.
I personally use the Max CDN Content Delivery Network on my WordPress sites, as I’ve found that they have the most reasonable prices and their dashboard is very simple to use (and comes with video tutorials for setting it up, takes only a few minutes).
There is a plugin called Free-CDN that promises to do the same, although I haven’t tested it.
Yahoo! has an image optimizer called Smush.it that will drastically reduce the file size of an image, while not reducing quality.
However, if you are like me, doing this to every image would be beyond a pain, and incredibly time consuming.
Fortunately, there is an amazing, free plugin called WP-SmushIt which will do this process to all of your images automatically, as you are uploading them. No reason not to install this one.
This isn’t one thing but really a few easy things that you can do to ensure that your homepage loads quickly, which probably is the most important part of your site because people will be landing there the most often.
Things that you can do include:
I’m certainly getting a lot of use out of the word “optimize” in this post!
This can be done the very tedious, extremly boring manual fashion, or…
You can simply use the WP-Optimize plugin, which I run on all of my sites.
This plugin lets you do just one simple task: optimize the your database (spam, post revisions, drafts, tables, etc.) to reduce their overhead.
I would also recommend the WP-DB Manager plugin, which can schedule dates for database optimization.
Hotlinking is a form of bandwidth “theft.” It occurs when other sites direct link to the images on your site from their articles making your server load increasingly high.
This can add up as more and more people “scrape” your posts or your site (and especially images) become more popular, as must do if you create custom images for your site on a regular basis.
Place this code in your root .htaccess file:
disable hotlinking of images with forbidden or custom image option RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?sparringmind.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?feeds2.feedburner.com/sparringmind [NC] RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
You’ll notice I included my feed (from FeedBurner), you’ll need to replace it with your feed’s name, otherwise your images won’t appear correctly there.
An Expires header is a way to specify a time far enough in the future so that the clients (browsers) don’t have to re-fetch any static content (such as css file, javascript, images etc).
This way can cut your load time significantly for your regular users.
You need to copy and paste the following code in your root .htaccess file:
ExpiresActive On ExpiresByType image/gif A2592000 ExpiresByType image/png A2592000 ExpiresByType image/jpg A2592000 ExpiresByType image/jpeg A259200
The above numbers are set for a month (in seconds), you can change them as you wish.
You’ll notice on this site that the default Gravatar image is set to… well, nothing.
This is not an aesthetic choice, I did it because it improves page loads by simply having nothing where there would normally be a goofy looking Gravatar logo or some other nonsense.
Some blogs go as far to disable them throughout the site, and for everyone.
You can do either, just know that it will at least benefit your site speed if you set the default image (found in “Discussion”, under the settings tab in the WordPress dashboard) to a blank space rather than a default image.
LazyLoad is the process of having only only the images above the fold load (i.e. only the images visible in the visitor’s browser window), then, when reader scrolls down, the other images begin to load, just before they come into view.
This will not only speed you page loads, it can also save bandwidth by loading less data for users who don’t scroll all the way down on your pages.
To do this automatically, install the jQuery Image Lazy Load plugin.
I saved this post to draft about 8 times.
WordPress, left to its own devices, would store every single one of these drafts, indefinitely.
Now, when this post is done and published, why would I need all of those drafts stored?
That’s why I use the Revision Control plugin to make sure I keep post revisions to a minimum, set it to 2 or 3 so you have something to fall back on in case you make a mistake, but not too high that you clutter your backend with unnecessary amounts of drafted posts.
By default, WordPress interacts with other blogs that are equipped with pingbacks and trackbacks.
Every time another blog mentions you, it notifies your site, which in turn updates data on the post. Turning this off will not destroy the backlinks to your site, just the setting that generates a lot of work for your site.
For more detail, read this explanation of WordPress Pingbacks, Trackbacks and Linkbacks.
This one is a little bit advanced, but can drastically cut down your load time if you are desperate to include page load speeds, so I included it.
I’d be doing this great post injustice if I didn’t link to it for this topic, as it taught me how to easily do this myself, in a few minutes.
So go there and check it out, it wrote it out in plainer terms than I ever could!
This is similar to the section above on using CDN’s, but I’ve become so fond of CloudFlare since I discussed it in my best web analytics post that I’ve decided to include it separately here.
To put it bluntly, CloudFlare, along with the W3 Total Cache plugin discussed above, are a really potent combination (they integrate with each other) that will greatly improve not only the speed, but the security of your site.
Both are free!
Thanks for reading 🙂 I hope this article helpful for you
ASPHostPortal.com provides affordable and high performance SQL 2016 hosting to customers around the world. They have ASP.NET Hosting, Plesk Hosting, Reseller Hosting, Cloud Hosting, Dedicated Hosting plans for small to large to fit peoples’ requirements. Our company is passionate about hosting and strive to deliver an excellent level of service to each customer. Today, Somedays ago ASPHostPortal launch SQL 2016 hosting with cheap price and great support.
Microsoft SQL Server 2016 turns your mission-critical applications into intelligent applications with in-memory performance and advance analytics built in. SQL Server 2016 comes with a suite of new features over its predecessor, including a new Stretch Database function that allows users to store some of their data in a database on-premises and send infrequently used data to Microsoft’s Azure cloud. An application connected to a database using that feature can still see all the data from different sources, though.
Many of the new features in SQL Server 2016 like Always Encrypted and Stretch Database are already available in Microsoft’s Azure SQL Database managed service, but the virtual machine will be useful for companies that prefer to manage their own database infrastructure or that plan to roll out SQL Server 2016 on premises and want to test it in the cloud.
ASPHostPortal.com has served people since 2008 and we know how to deliver Powerful, Fast and Reliable SQL 2016 Hosting with the Superior Customer Support. Our superior servers are housed in the US, UK, France, Germany, Netherlands, Italy, Canada, Brazil, India, Australia, Hongkong and Singapore with up to 100MB/s connection and Cisco Hardware Firewalls. Fully managed and monitored around the clock, Our servers run on Windows Operating system with lots of memory (RAM) and up multiple Quad-Core Xeon CPU’s, utilizing the power of the Cloud Services. Our SQL 2016 Hosting plans come with up to 99.99% uptime and 30-Day Full Money Back Guarantee. To learn more about Our SQL 2016 Hosting, please visit http://asphostportal.com/SQL-2016-Hosting
[su_note note_color=”#000000″ text_color=”#ffffff”]
ASPHostPortal.com is The Best, Cheap and Recommended ASP.NET & Linux Hosting. ASPHostPortal.com has ability to support the latest Microsoft, ASP.NET, and Linux technology, such as: such as: WebMatrix, Web Deploy, Visual Studio, Latest ASP.NET Version, Latest ASP.NET MVC Version, Silverlight and Visual Studio Light Switch, Latest MySql version, Latest PHPMyAdmin, Support PHP, etc. Their service includes shared hosting, reseller hosting, and Sharepoint hosting, with speciality in ASP.NET, SQL Server, and Linux solutions. Protection, trustworthiness, and performance are at the core of hosting operations to make certain every website and software hosted is so secured and performs at the best possible level.
[/su_note]
CheapWindowsHosting.com | Best and cheap Drupal 8.1.2 hosting. We’ll discuss the biggest core API change, then how moving to 8.1.2 affects various use cases.
You may recall that the migration support in core is experimental – that is, it is still open to backwards-compatibility-breaking changes. There is a big one in 8.1.2 – migrations themselves are now plugins rather than configuration entities. This reduces technical debt, in the form of migration-specific infrastructure that’s now being handled by standard core features. Specifically, the plugins themselves serve the function that migration templates did in 8.0.x – they provide default configuration for migrations which require additional configuration (in particular, a database connection) to become runnable. In addition, the migration system’s home-grown builder system (used to generate, say, bundle-specific migrations from one generic node template) is now replaced by standard plugin derivatives.
The lack of configuration entities, however, presents challenges for general-purpose migration tools. One is that there is now no direct core support for persisting configuration changes for the plugins – any configuration (such as a database connection) injected into a migration plugin is only applied at runtime, and without a standard method of persisting that configuration a general-purpose tool (such as the drush commands in migrate_tools) has no way of knowing what to inject or how. Likewise, we have the goal of developing tools for creating migrations from scratch through a UI, and the core migration approach of plugin configuration provided by YAML files within a module isn’t dynamic enough for this – again, we need a dynamic way to persist the configuration.
Another issue is discovery – a tool like drush migrate-status wants to show you all “relevant” migrations (migrations which have been fully configured and are runnable), but with core full of migration plugins which aren’t relevant in most cases (and there’s virtually no case where they would all be relevant) simply discovering all the plugins and instantiating them doesn’t work. The irrelevant plugins throw a variety of exceptions, some during the initial discovery (making them difficult to handle) – perhaps worse, some give no indication at discovery or instantiation time so cannot be filtered out without hardcoded knowledge.
At this point the cleanest answer I could come up with to the discovery problem was a registration process – an explicit way to mark a migration as eligible to be managed by the tools. And one means of “registering” a migration is to create a configuration entity for it, which (compared to a pure registration implementation like migration in Drupal 7 had) has the advantage of addressing the configuration persistence issues as well. So, that’s what I’ve done.
The migrate_plus module now defines a Migration configuration entity akin to that which was in core in 8.0.x – but cleaner. You’ll find that unlike 8.0.x Migration entities, which contained a huge amount of functionality, the migrate_plus 8.1.x Migration entity class consists of pretty much nothing but annotation and schema – a much cleaner use of the configuration entity system. The migration functionality is contained within the core Migration plugin class. So, how does the entity relate to the plugin? Let’s look first at how the core migration plugins are defined.
So, it sounds like we’ve got two different kinds of migration plugins now, right? No, not really – what we have is two distinct means of providing migration plugins with their configuration. For comparison’s sake:
If you’re looking to simply upgrade your Drupal 6 or Drupal 7 site to Drupal 8 as-is, the big news here is that the upgrade UI (formerly part of the migrate_upgrade contrib module) is now in core as the migrate_drupal_ui module. It works the same as it did previously – provide your database credentials and source of your public files and go. It should be noted that the previous support for rolling back or performing incremental migrations after an initial upgrade has been removed – the premise is that rather than doing a rollback, you should expect to reinstall Drupal 8 and rerun the upgrade from scratch. The contrib migrate_upgrade module still provides the migrate-upgrade drush command (as well as migrate-upgrade-rollback).
While the plan is to eventually provide UI tools to make it easy to customize Drupal-to-Drupal migration paths (omit a content type here, map an old field to a differently-named new one there, etc.), in the meantime people have to use drush migrate-upgrade –configure-only to tweak their upgrade paths. More details on this workflow will follow – for the moment, the main thing to be aware of is that (after a period of absence) –configure-only is back and can be used to generated configuration entities which you can then edit to your specific needs.
Because the new migration plugin manager reads the migration_templates directory for backward compatibility (and because the source/process/destination plugins have not changed), in most cases contrib modules implementing upgrade paths should not need to make any changes. The main issue would be in the rare case where you were using builder plugins, which are now gone and should be replaced by derivers instead. See the change record for more details.
If you are implementing other migration scenarios, you’ll need to make the following changes to your migration modules for 8.1.2:
third_party_settings: migrate_plus: migration_group: beer
with
migration_group: beer
Previously you could omit migration_dependencies in migrations with no dependencies, but the core plugin is now a stickler for seeing an empty array. So, in this case you’ll need to add
migration_dependencies: {}
There’s still a fair amount of work being done to fill in the gaps in the core migration support (particularly for upgrades from D6/D7). Hopefully we can remove the experimental label from the migration system for Drupal 8.1.2.
In the contrib space, migrate_upgrade 8.x-2.0.beta1 (or 8.x-2.x-dev) is the release to use with Drupal 8.1.2 I will be releasing beta versions of migrate_plus and migrate_tools shortly. Once those are out, the main foci of my community time will be: