Writer How To: my writer website part ii

Dear Internet,
On Sunday I talked about what authors should (and shouldn’t) have on their websites, yesterday I broke down the branding, design, and infrastructure of my own author website, and today I am going to discuss main navigation and why I set it up this way, child pages, what’s left to do on my author site, and base plugins you should use for your own WordPress site.
Here is the landing page of my author site again:
Let’s take a look at the main navigation, homebiofictionother writingblog, and contact. Each of these links are to the minimum pages an author should have as I mentioned on Sunday.
Home will bring you back to the main page.
ProTip: If you include an image header on your page, make it a clickable link back to your main page. This way if people get lost in your site, they have an easy way to get back to the beginning.
Bio will contain the short and extended about me along with a headshot of some kind. 
Fiction will contain all the fiction work (short stories, novels, novellas, etc) with links to purchase or to read.
Other writing will link to mainly non-fiction and academic works. 
Blog will take you directly to EPbaB.
Contact will take you to a contact form.
ProTip: I’ve heard both sides of the story on whether or not to keep a contact form. One argument is that it creates a barrier with your readers, can get confusing, and you’re not entirely sure if the form was sent or not. My personal experience, having managed websites other than my own with contact forms, is you’re more apt to get people writing in using the form rather than if you provide a simple email link. I will more than likely include an email link on the form itself to give people the option.
ProTip 2: Interestingly, the sites I looked at for Sunday’s piece had a lot of the writer’s putting their reps as the contacts but no way to directly contact the writers themselves. “For foreign rights, email joeschmoe@you.com. For media inquiries email yourmom@thejeez.com.” I thought that was interesting.
Let’s take a look at one of the child pages.
childpage copy
I’ve clicked on other writing. We know the link we’ve clicked on takes us to the right page by a few clues. The first clue is the word other writing in the navigation bar is now white instead of grey. Second clue is the breadcrumb shows us where we are, and thirdly, we have a header that tells us on what page we’re on.
As far as design goes, all the child pages will look identical to this one. We have our main navigation at the top so we can bounce around. Our header image from the landing page has been resized to fit comfortably and allow content without (much) scrolling. The right hand sidebar has the same content as the landing page sidebar. The main content box is easy to read and links are easy to find. Header text  is obvious and tells us what the page will contain. Lastly, we have a sharing bar that allows us to share the content across various social networks.
ProTip: I debated on having a share option on these pages since they will remain mostly static, but thought it might be useful if I write a trillion short stories and someone wants a printable version or share it with their BFFs across the social sphere. This is another plugin within Jetpack that allows you to cherry pick social networks you can share across. Plus I get annoyed when I find a page that does not have sharing enabled, so better turned on then turned off.
Now that we’ve got the main infrastructure in place and a design we like, let’s sum it up:

  • We have (potentially) cohesive design that works with my other sites
  • Each site is clearly identifiable of what it is and links to its brethren
  • The design and structure are responsive and mobilized
  • The layout and navigation clear and easy to use
  • Pages are well marked
  • Typography is pleasing easy on the eyes, link colors are bold

Over the course of a week I’ve put about five to six hours of work in with a couple more hours left to go. Since most of the work was design and infrastructure, the least bit is content which should take less time but in my case, I’m importing all the writing works over from EPbaB to the author site for consistency, so that’s taking a bit longer.
What’s left for me to do:

  • Fill out content of child pages
  • Flesh out widgets in right hand sidebar
  • Check for grammar and spelling errors as well as verb consistency
  • Tweak accessibility
  • Export over to live site

Now that we’ve got the site in place, content sorted, let’s talk about the base plugins we can use to make the site even better.

  • Jetpack for WordPress has over 30 plugins in one beautiful package. I use the following: contact form, custom CSS, enhanced distribution, extra sidebar widgets, JSON API, mobile theme, monitor, notifications, omnisearch, publicize, sharing, shortcode embeds, site verification, spelling and grammar, subscriptions, wp.me shortlinks, widget visibility, and wordpress.com stats. A lot of these plugins have variations available individually on WordPress’s site, but I like knowing that Jetpack is constantly updated, added to, and guaranteed to work with the latest versions of WordPress itself.
  • All In One SEO Pack Search Engine Optimization is how web crawlers find you, index you, and then report back when people are searching for you. While the metrics and math can get complex, you can significantly increase your traffic by following a few simple SEO rules. This plugin does the work for you. Here is why you should use it: a few months ago I was wondering what other writer’s sites looked like, so I did some basic keyword searching and found — nothing. Well, almost nothing. Today while thinking about the same search, I wondered if there would be a difference if I swapped out the term “writer” for “author” and the answer turned out be a surprising fuck yes. I also duplicated near same results in Bing.
    This tells me a lot. One, it tells me how Google (and Bing) are indexing content. Two, it tells me even if a writer type person doesn’t use the word “author” anywhere on their website, or metadata, to be indexed, Google and Bing still sort them out as “authors” and list them under that search term  but not under “writer.” The search engine derivatives of “writer” seemingly refer to magazines, goods, and services. So if you prefer the term writer to author, this could hurt you in terms of SEO. Now most people interchange author/writer, but there is apparently a difference with the gist referring to a writer as someone who technically writes whatever (just as a baker bakes) while an author is someone who comes up with the ideas and plans to execute the writing. Someone can apparently be both. Another argument is a writer is someone who is unpaid while an author is a paid professional.
    Whatever you believe or agree with, the bottom line is if you want to make sure you’re getting properly indexed, you need to use SEO to make sure all of your bases are covered so use author/writer in your SEO markup even if you use only one term in your content.
  • Breadcrumb NavXT The easiest and most complete way to set up breadcrumbs on your site.
  • Broken Link Checker Nothing more annoying than going to a site, clicking on a link and discovering it was dead. This plugin actively scans your links (internal and external) and reports back which links are broken and with what kind of errors. Super handy to use and makes your site look a million times more profesh since you can clean up errors and change links from across the site in a single page .
  • Google XML Sitemaps One way to make your site easily indexed by any search engine, on top of SEO, is by having a XML sitemap on the ready. This plugin generates a new XML sitemap based upon your specifications, which can get pretty in-depth. It automatically notifies Google and Bing of any updates.
  • Analytics How are people finding you? How many page views are you getting a day? How many visitors have you had? Jetpack comes bundled with its own analytics, but you may want to use another one or two more as not all analytics software are created equal. I use Google Analytics (which is part of Google Webmaster Tools) and StatCounter.

This has been a quick and dirty walk through on getting a simple author website up and running that is not only informative but eye catching as well. There is a lot more (isn’t there always?), but this should give you a good understanding of why things are done a certain way and access to tools that can accomplish your goals.

This Day in Lisa-Universe:  2010

Writer How To: my writer website part i

Dear Internet,
It seemed only fair after I doled out all that advice yesterday, I should show you the money. I’m going to throw down my author’s website, software and apps I use, as well as design thoughts and more.
As I mentioned yesterday, TheHusband suggested I keep my author site separate from Exit, Pursued by a Bear (where you’re located at now) and my librarian site. I agreed. However, since I am going to have three sites to maintain, they all need to be consistent and relate to each other in some fashion.
A couple of years ago, I designed business cards using the image of three year old me holding a phone as the main graphic, which was also the main header image at EPbaB for a long time. The cards were a huge success when I handed them out and people easily remembered who I was later on. Since it was time to make new cards, I expanded on that idea and decided to use the same concept across my sites.
(If you click on the images, it will open up a new tab with a larger image for greater detail.)
Exit, Pursued by a Bear – Online Journal (Theme: Mon Cahier child)
Cunning Tales From A Systems Librarian – Librarian Site (Theme: Elucidate)
Lisa Rabey – Writer (Theme: Arcade Basic)
The only site I’m not 100% happy with is my librarian site, which I will futz more with later. There are also couple of other things I can do to make all three sites more cohesive, but the idea is there and I like where this is going. The Lisa Rabey Empire is coming to fruition!
Now that I know how I’m branding the author site, I played with the freely available themes at WordPress until I found one that would work for my needs and required as little hacking as possible.
ProTip: I exported a  year’s worth of entries from EPbaB and imported them into the test site to see how the theme handled a wide variety of posts and formating.
I looked for a theme that allowed: Custom header, adding breadcrumbs easily, two column so I could have a sidebar, and top navigation bar that wouldn’t get lost when you scrolled. I like white backgrounds with no textures, and I wanted something that was eye popping. It also had to work mobilized via the Jetpack for WordPress plugin. I settled on Arcade Basic.
ProTip: As someone who likes things quick and to the point, Jetpack for WordPress is one of the best plugins you could install and make your life insanely easy. I know a lot of my more advanced WordPress/coding friends are not a fan of this plugin for a variety of reasons, but as someone who wants no fuss, no muss and ease to use? This thing is a godsend.
When you land at my author’s site, you see a young Lisa with her pops as the landing graphic. There is a top navigation bar for home, bio, fiction, other writing, blog, and contact. Here is all the basic information I mentioned yesterday clearly listed and easy to find.
In the middle of the landing page is a box that says See More. When you click on it, it jumps down to the second half of the landing page where there is additional content (there is also a scroll bar in the right hand side if you want to use that instead).
ProTip: I’m not crazy about the wording of “see more” so I may just change it to something else, which will be easy enough.
Excuse my rudimentary Photoshop.
The navigation bar stayed in place when we hopped down the page, which is why even though I know a lot of people hate these giant graphic landing pages, I loved this one because you don’t lose your navigation.
The main content box is a quick about me / this site. There is also a search box, social media links, and a news feed.
ProTip: Having learned my lesson trying to maintain blogs across variety of sites, I found a work around that allows me to keep this site looking like it’s constantly updated without stress by using the Appearance->Widgets->RSS widget within WordPress. Every category and tag in WordPress has its own RSS feed, so I can pull a specific feeds to show up in this particular widget box. There is no limit to the number of RSS widgets you can use. For the news widget, I mark all my writing stuff under the “writing” category  on EPbaB and the feed is pushed on the author site. I do the same thing on the my librarian site, under recent posts in the sidebar, which has its own category for the very same reason.
To recap: I write everything on EPbaB and the RSS feed for a specific category are fed to specific sites based on feed name. If people are interested in the whole shebang of the blog, they can click on blog in the top navigation.
I wanted two columns because I need the ability to add/remove things as necessary for whatever reason without losing the main content box or forcing people to scroll to the bottom. When I get a newsletter up and running, books to buy, or whatever, it will go in the right hand side bar. Additionally, Jetpack has a feature that allows you to show certain widgets on certain types of pages for more customization.
Tomorrow we’re going to look at the main navigation and why I set it up this way, child pages, what’s left to do on my author site, and base plugins you should use for your WordPress site.
P.S. As my author site is not live quite yet, but I do link to it, so if you find a broken link, that’s why.

This day in Lisa-Universe:

anatomy of a website: part ii

Lisa, circa 1973 or 1974.
Lisa phone hacking, circa 1973 or 1974.

Dear Internet,
Yesterday I started out putting together an entry on the process and design of the site, only it turned into nearly 3100 wordy behemoth. I’ve split the entries into half, the first half concentrating on the backend, landing page and design thought, with the second half below getting more into the nitty gritty, process, and promotions.
Individual Entry Pages
For the individual entry pages, all of the previous design for the landing page is true plus with the added following:

  • Breadcrumbs – Located above the title and are crucial! I will not design a site without them and it is also good SEO and information architecture practices. I use Breadcrumb NavXT.
  • “Estimated reading time” in the byline metadata. General consensus of the internets said they liked this feature because it gives them time to pause to continue reading now or come back later. Plus I can be wooordy and days like today, you need to know how much time to invest. The plugin I use is Post Reading Time, which is customizable.
  • Share the love – I use unobtrusive small icons, no text, of print, email, and top social sharing sites via the Jetpack plugin. I also turned on the “follow me via Google+” option available in the same plugin. I also only selected social sites I personally use, hence why there is no LinkedIn.
  • Below the footer metadata are named links to previous post and after post
  • Next is the comments section, which I use Disqus plugin to handle that feature. Additionally, in the landing page version, comments are located at the top by the byline entry so readers can comment on the landing page instead of clicking to the full entry itself to do so.
    • I currently do not turn off comments on any of the content, so if you wanted to comment on an entry from 10 years ago, you could.

Individual Page pages
Since these are rarely updated and are static, the styling is a bit less structured:

  • I’ve turned off commenting and direct people to my contact page
  • Each page is either a top level page as a landing page for a project or a child page
  • SEO is also applied to all pages as I now create them
  • Breadcrumbs are also used on pages
  • The sidebar remains the same

Process and Promotion

  • Currently I write the day before it’s due and I almost never know ahead of time what I’m going to write. It literally is, some days, begins with a sentence and I’ll end up with 900 words an hour later.
  • I can write a 750 word entry, complete with formatting and editing, in about an hour.
  • I schedule the entries to post mid-morning ET the following day. I will also set up a tweet mid-afternoon with the same information
    • The initial posting format is: [blog] TITLE OF ENTRY short link EXPLANATION
    • Further promotion on Twitter will contain a slightly reworded version of the original to prevent going to Twitter jail
  • Promotion of the entry is done in the following
    • Automatic cross posting to TwitterFacebook, and Tumblr
      • The Facebook page is the blog’s page. I also cross-post from the page to my personal Facebook
    • Posting to LiveJournal via LiveJournal Crossposter
    • Posting to Google+ manually
    • Repost to Twitter later in the afternoon
  • On the rare occasion, I’ll post a link to the entry more than twice in the same day
  • It is utterly important to me that I am available, findable, and read in a variety of mediums, hence the cross-promotion to major sites as well as some not so major ones in addition to the RSS and email feeds.
  • SEO is applied to all entries with descriptions and proper keywords to enhance findability

What’s currently powering my site:

  • Akismet – Spam blocker. Between this and Disqus, there has been almost no comment spam on this site.
  • All in One SEO – One of the definitive SEO plugins, easy to use and pretty customizable.
  • Breadcrumb NavXT – One of the better breadcrumb plugins, also easy to use and customize.
  • Broken Link Checker – The best client I found to scan the entire site, check links and report back errors. Especially useful as I add in the old content.
  • Disqus – I’ve been a long user of this commenting system for a number of reasons: It allows people to comment by logging in via any number of existing OAuth systems such as Facebook and Twitter without having to create an account at EPbaB. I also liked that you can consolidate all of your sites into one admin account.
  • Google Analytics for WordPress One of the three analytics software I use, highly robust and full of rich features
  • Google XML Sitemaps If you are not practicing SEO, you should have a site map of your site for search engines to index. I really like this one.
  • iframe Plugin to allow the use of iframe HTML because sometimes old tags don’t go away, they just continue to be used.
  • Jetpack This plugin is produced by the makers of WordPress and contains some of the top features they implement on the wordpress.com site and made them available for self-hosted users. Frankly, this is by far the best plugin I use and while I know some despise it for a variety of reasons, as someone who just wants shit to work, it’s brilliant. Here are the features I use (and be mindful this is not ALL the features available):
    • Notifications – notifies of activity from wordpress.com users and sites on your site
    • Stats – One of the three analytics plugins I use
    • Publicize – The social arm of the plugin, it auto publishes to selected sites when you publish your entry as well as is the configuration for the Share the Love social sharing
    • Subscriptions – Subscribe by email
    • Sharing – See Publicize
    • Spelling and Grammar – Yes to the first, meh to the second. The grammar function is often wrong
    • Omnisearch – Search Every. Single. Page on your site, deeply, from within the dashboard
    • Contact form – So you say you have a message from your people to my people? This is where you go
    • Widget visibility – Control what pages / posts your widgets are on
    • Wp.me short links – Yep
    • Google+ Profile – See Publicize
    • Tiled galleries – If I ever feel the need, it is here
    • Shortcode embeds – Always important
    • Custom CSS – Sometimes designers do NOT know best. Also a lot of theme designers sell their “premium” themes based on the fact you can customize the CSS. Why bother to pay for something you can do for free?
    • Mobile theme – I know a lot of people don’t like this version, but I don’t see a problem with how it renders or allows navigation on my site. Works great!
    • Extra sidebar widgets – Always a necessity
    • WordPress.com Connect – Allows you to login to your sites using your WordPress.com login – which is more secure than just a username/password!
    • Enhanced distribution – There is no clear description to what this does exactly, but what the hell. It’s turned on.
    • Jason API – Also needed
  • List category posts – Another favorite! Allows you to post links to entries on any page/widget from specific categories or tags – automatically! Example of it being used, multiple times, on the To:Be Project page. Each section is its own tag getting updated automatically when I post with that tag appended.
  • LiveJournal Crossposter – Some sites do not die, they just become LiveJournal.
  • Organize Series – A neat plugin that allows you to easily set up posts of the same subject to be easily read together without searching through the archives.
  • Post Reading Time – Displays the amount of time to read the entry, at 200 words a minute average.
  • Redirection – I currently have two or three domains, in addition to exitpursuedbyabear.net, that point to the this domain. In order to clean up old links from journals gone by, Redirection will take a link from biblyotheke.net/nameofentry and point it to the correct entry here without the use knowing!
  • Simple Social Plugins – Sidebar widget using pure CSS to display stylized social media links
  • Smart Archives Reloaded – Plugin behind my archives page, was the easiest way to generate the page in a simple to read format without getting overly complicated.
  • TablePress – Plugin to generate complicated tables, but I’m finding it easier to create them via pure HTML and CSS so I might ditch this at some point.
  • Word Stats – Secretly I’m a stats nerd and things like this get me wet. I disagree with some of its assessment on reading levels but I do like some of the other features like breaking down words per entry, or per month, or entire lifetime.

Other design tweaks, such as color schemes and CSS options tend to be in the muted areas, with a shocking color for contrast. I like my fonts to be readable, and I can spend hours on the right font combination, and easy to print. I haven’t yet found the perfect font yet, but I’m always looking.
This holiday season, since I have nearly a month off, I’m going to be setting up a home server version of the site and start building, I hope, a new and improved site layout and design to correct the little things I cannot get sorted in using child themes. Ideally, I’d like to build off an existing theme, but I’m thinking at this rate I’ll probably end up starting from the ground up and building my own.
If you have any plugin or theme suggestions, let me know! I’m always up for getting my website dirty!

This day in Lisa-Universe: 2009

anatomy of a website: part i

Lisa, circa 1973 or 1974.
Lisa phone hacking, circa 1973 or 1974.

Dear Internet,
Whenever I make a change to the site, whether design or adding or removing of something, the first person who usually asks me “Why?” is TheHusband. We were recently discussing the addition of my “Estimated reading time:” plugin I’ve now appended to the individual posts pages (he hates it, others seem to love it) and as I often seem to do some explaining for him, and at time for others, I figured this would make an excellent post on my design process. So here we are!
If you are interested in the back end, I run WordPress, using Nginx as my web server and MariaDB as the SQL server. The theme is a child theme of Mon Cahier. We currently host at Digital Ocean (managed by TheHusband) and in addition to WordPress and server best practices, the entire site is encrypted by SSL. We use StartSSL for all of our domains. If you want more details on how we got here, this is a post I wrote in April when we left Dreamhost for Digital Ocean.  I have had several people ask if TheHusband is open to setting them up in a similar fashion and he is for a reasonable fee. If you are interested, please get in touch.
Overall Experience
The overall experience of the site is based on the following factors

  • Content/writing is main focus
  • Minimalist in design, not overwhelmed by images/video/doodads
  • Easy to navigate
  • Basic info architecture and SEO best practices in place
  • Mobile friendly
  • People should be able to read me via coming to the page, via RSS, or subscribe to an email list
  • Features I would expect an online journal to have (archives, about page, easy way to contact) should be in also be in place

I’ve flipped between the child themes of two themes: Mon Cahier and Mog for the last several months and right now I am using Mon Cahier. I haven’t found a single column theme I love, so I’m sticking with two column, right sidebar for the moment. I’m a big believer in making it easy for my readers (and for me!) to find information on the site and I want people to meander about, so getting rid of some sort of sidebar navigation kills me.
Landing Page
The landing page experience is important to me and I’ve gone back and forth on having a header or not. I adore the hell out of picture of me age 1-2 attempting to use a phone, so it’s been the mainstay on business cards and domain headers for a few years. Mon Cahier includes built in social media links at the upper right hand corner of the header space, but the newest update doesn’t seem to play well with my child theme so I’m missing a few of the sites. This is also why I have a social media plugin in the right hand sidebar.
Below the header is my main navigation bar, which is also important to me as I wanted an easy way for people to navigate other content on the site. The big thing here is that I wanted it to be compact – I don’t want rows and rows of navigation, so having child navigation was a must. Here is how the menu is broken down

  • hello – My about page. Gives you a summary of who I am, a fairly recognizable picture of me, and other little tidbits.
  • projects – These are the project landing pages of a few things I keep on the site and acts as the default location for something that doesn’t fit quite anywhere else.
  • writing – break down of all, primarily fiction, writing including poetry, prose, works in progress, historical work, and at the bottom is listing of all blog posts I’ve written on the topic of writing and is updated on the fly.
  • archives The heart of the site –  nearly every entry ever written by me, spanning across several previous incarnations over nearly two decades, all here at the site. Dating back to the late ’90s, it’s a Lisa wonderland of delight and amusement. When I talk about The Lisa Chronicles project, I’m talking about getting the archives back up which has been a slow process.
  • contact – Simply put, how to get in touch with me. While you’re more than welcome to reach out via social media, I found readers were more apt to fill out a form then send an email or tweet which I think is because of the anonymity of the form.

Below the main navigation bar is the two column set up – one for the content, and the other is the sidebar. Because I’m now writing daily, and not to overwhelm readers, I keep the most current entry on the front page. Two widgets in the sidebar help with previous content navigation: one showing the last five entries and the other showing the top pages on the site, updated from the last 24-48 hours.
The content column is built around these principles:

  • The title is taken from something out of context, for a long time they were from definitions of various things in the Icelandic sagas, sometimes obscure word definitions from the OED, song lyrics, and every once in a while, the title actually reflects what I’m talking about!1
  • Below the title is the date of publication and Mon Cahier main theme is overriding my removal of the byline addition, which isn’t needed here since I’m the only person writing.
  • Every entry in the current stylistic format:
    [image sourced from Creative Commons]
    Dear Internet,
    This day in Lisa-Universe: Year, Year, Year

    The images and the “This day in Lisa-Universe” are rather new editions within the last few months. I liked the idea of adding in an image from my collection or creative commons collection of something unusual or unexpected to go with the content. I also wanted people to be able to find content from the same day in previous years because I thought that would be a neat feature since I have so much.
    The “Dear Internet” was not used in previous incarnations of my online journal, but I began to use it at the beginning of this one because I found a lot of conversational letters that I never published written to famous & fictional people, written as if we were the best of friends. I liked the idea of the juxtaposition of something old (a letter to a person) mixed with the new (the person is the Internet).

  • Footer metadata is found in the landing page entry such as categories and tags. Comment link and totals are located at the byline metadata at the top of the entry.
  • Below the footer metadata is a link to the previous entry. Since I have it set to show one entry at a time, if you wanted to read the previous entries in order, you would go entry by entry. I would recommend going to the archives and clicking on a month or year to get all of them on a single page instead.
  • Beginning in August 2013 I started using SEO, I use All in One SEO, like a reasonable adult and every entry and page from that point forward now has SEO best practices appended to it. Because the sheer amount of published entries (nearly 600!), as I come across older entries I need to edit for some reason, I’m applying SEO to them as well. I have no plans to go through and do all entries at this time.
  • Every entry has a proper category and at least one tag. Because I’ve moved around so much in my youth, I now append a city tag to all entries of the city I’m currently living in to easily find. So if you ever wondered why entries say “Grand Rapids” or “San Francisco” or “NoVa,” that is why.

For the sidebar, I wanted to make it clean and uncluttered. I currently do not plan on nor intend on having ads, but I may do a tip jar or a donation page later down the road when more of my fiction is up. I also stopped linking back to other people not because I don’t love them, but many were abandoning their sites or stopped writing or something else entirely. I wanted the sidebar to also be accessible on all pages and not just the landing page or just the individual entries.

  • Search – Non-negotiable. If you don’t have a search function on your site, I’m not going to stay and visit.
  • Social media links – A plugin called Simple Social Plugins, which uses pure CSS to do the design. I wanted something easily to configure and fairly robust. Simple Social does that pretty well and while it’s missing a few sites I’d like people to find me at, such as GoodReads, it does a good job of hitting the basics. It also includes email, which I’ve linked to my contact form, and a RSS option.
  • Blog subscription – Provided by the Jetpack plugin, allows people to subscribe to email version of the site and they get emailed the post every time I update.
  • Recent posts – Last five posts, in chronological order, that were published. This is configurable to as little or as many as you’d like.
  • Popular Posts – Current top five posts, based on stats from the last 24 – 48 hours. I like this as it shows how interests in various things change on the site.
  • Creative Commons license – I am Attribution-NonCommercial-NoDerivs 3.0 Unported, which means the content here is free for you to use, along with attribution back to me, but is not available to be remixed and cannot be used for commercial purposes without my permission.

That’s it for today! Tomorrow I am going to cover individual entries, pages, plugins, process and promotion.

This day in Lisa-Universe: 2010, 1998

1. General SEO practice recommends you use keywords of your topic within the title and within the first few sentences of your piece for search bots. As you can see, I don’t do that but I do put in practice SEO description and keywords using a plugin, so all is not lost.

The Site’s Tale (A foray into the tech abyss)

Dear Internet,
And so, here we are.
What started out last summer as a support ticket to my web host provider for site slowness has become a farce of epic proportions. Here is the timeline:

  • In the summer of 2012, open up ticket for site slowness
    • Web host provider claim other sites that live on the server my domains are located on, plus the random DDoS attacks that were occurring during the same time on the server, are reason for my sites slowness. Web host provider suggest I get a VPS to clear up the problem. (Note they did not offer to move me to another server cluster, which would have more than likely fixed the problem.)
  • Domains are moved to the VPS. VPS configured with Apache, MySQL, PHP (Web host provider’s default setup.)
    • Less then a month after the move, my sites become almost inaccessible. We discover Apache is randomly spiking the memory and CPU. The randomness doesn’t give any clues nor is there anything in the logs.
    • To clear the spikes, we have to restart the VPS. Sites become accessible for a few hours and then the spikes start all over again.
  • Inbetweenest the spiking, my main domain is infected with an injection hack. Three separate times. After each hack, I use WordPress best practices for site security as well as web provider’s list of security recommendations. Yet, I was hacked two more times after the first.
    • When I opened up a ticket with the provider about the hacking and I had followed their best practices AND WordPress’ for security, they told me there was “nothing they could do.”
  • Web host provider cannot diagnosis the problem or provide a fix/solution with the Apache issues. All they do tell me is to move over from Apache to Nginx, another web server software provided by the provider.
    • The change over to Nginx is seamless and the spiking immediately stops. As does the injection hack attempts.
  • End of December 2012, all of my domains start throwing up 502/504 errors. I open up ticket with the provider and the errors almost immediately stop. I’m told to clear my browser cache and DNS cache on my computer in the future.
    • 502/504 errors come and go most of January 2013 and into February. Sometimes they get so bad (like hours without access) that I have to restart the VPS to get it going again.
    • I open up a ticket in mid-late February as my sites has been inaccessible that no matter what I do (restart VPS, clear caches), unload plugins, nothing works. While I care that my sites work, it’s becoming more of an imperative in having a working portfolio in April to hand in to my boss.
      • No one responds to my ticket for 8 days.
  • When I get a response, the person responding used http://www.downforeveryoneorjustme.com/ to verify site connectivity and wanted to close the ticket. Site was apparently live when they did it because when I got the response from them, the sites were dead again.
  • When I respond back the sites were down again, and had been down, the support person’s response was we needed to have supervisord installed and running to kill any PHP processes that were just hanging. Supervisord was installed but not configured and the only way to configure that was adding a user to the VPS as root and configuring it ourselves, which we did per web host provider’s instructions.
  • TheHusband installs supervisord and gets it configured, and the 502/504 errors do not end. We respond to the ticket and we are told the  only way web host provider will look into this if we disable supervisord, remove the root user and then they will reconfigure and manage supervisord.
  • We do as they request and in the interim, I am told the sql server is in the wrong cluster. This is surely the problem and why we are getting all the 504/502 errors.
    • My SQL server is moved and nothing changes.
    • Web host provider configures supervisord and nothing changes
  • Support then recommends I turn on PHP XCache Support in our domain control panel and install W3 Total Cache in WordPress to help
    • W3 Total Cache had a vulnerability discovered in it in December 2012 that was immediately fixed and updated. My domain had the updated version but was hijacked by script kiddies for the same vulnerability (so the plugin has another vulnerability hole in it) within hours of installation. I was notified by Google Webmaster, within hours of installing the plugin, my site was no longer secure. After turning the plugin off, and cleaning up, I opened a ticket with provider for their security to verify my site was clean. The support person(s) verified the site was clean, ventured a guess the whole problem with the 502/504 errors was the W3 Total Cache plugin, so they suggested in addition to uninstalling the plugin, I also clear my cache and everything will be right as rain.  I pointed out this was an ongoing issue that was known for months and had nothing to do with W3 Total Cache, which I had just installed for the first time a few days ago. Transfer me back to regular support.
  • Original ticket for the 502/504 errors (not including previous slowness history) was opened on February 12. As of March 30, there has been no resolution or solution.
    • During that period, nearly 70 emails were exchanged by me and support — most of it having to remind them they already told me X solution and it didn’t work or providing them with data to back up my problem. Every time  a tech suggested I “just clear my browser cache” as there was “nothing in the logs,”  they got an email from me with data of users from around the globe who were getting the same 502/504 error. Every time they suggested I go to Apache, I point to the ticket from them telling us to move from Apache to Nginx because they couldn’t fix the Apache spiking errors when I was on Apache.

During all of this, TheHusband noticed a couple of things:

  • The provider never offered to move me to a new server or cluster, the default response from them was for me to move to a VPS and once on the VPS, up my memory  (aka, to get more money from me)
  • The VPS is crippled. You have zero control to update any software (Apache, Nginx, PHP, whatever) nor  can you do any configuration that goes outside of what the provider allows (which you don’t find out until you try to do thing)
  • Even having root access on the VPS, which should give you full control, doesn’t. That too is crippled and some functionality is stripped.
  • CPU and memory usage should be minimal on site like mine, but when the 502/504 errors were not going on, they were spiking. Running top on the VPS showed nearly 50% CPU utilization with web services turned off, so nothing should be running and yet here is 50% CPU utilization. Since that is all controlled by the web provider, we could not clean it up or turn off unnecessary services that were eating away at my CPU/memory usage.

Fed up with my caterwauling, TheHusband set up a near identical site at a new provider’s VPS, migrate the content, update the DNS, and get EPbaB running fairly quickly.  TheHusband was also able to update and optimize PHP, Nginx, and WordPress as that was not allowed at Dreamhost and swapped us from MySql to MariaDB, the open source solution, for the database. After we got everything up and configured,  he ran structured packet queries against both sites. The result? Host provider had 93% packet loss while new provider had 0% packet loss.
TheHusband also calculated the current provider could not handle more than 1 connection a second, where as the new provider can handle 5 times the load – on the exact same set up.
We’re moving the remaining three domains over in the upcoming weeks, then I’m canceling service.
The last email I got from the provider, from March 30th, gave me a long spiel of apologies and trying to make this right. It was similar to an email I had received from someone else at support that told me, “502/504 errors are normal” a few days earlier. Both suggested I move to Apache, which would solve all my problems.
Apparently neither of them read the ticket history, though they both claimed to have done so.
There are so many levels of frustration going on, it’s hard to figure out what to fight and what to let go. I have been with this web host provider since April 2003. A decade of service and loyalty, so much so that my referral kick backs meant my monthly bill was pennies. Shit just worked. Up until say, 2010, I never had to open a damned ticket with them.  Then it got progressively worse.
I would have held on for loyalty and the years of great service by this provider, but the constant defending or reiterating ourselves on what we did (95% of the time specific directives by the provider), the miscommunication of the support team, technical negligence, the often patronizing tone of the emails (“It’s no a problem with us, it’s a problem with you.”), coupled with you had no idea what line of support you were with or even who you were talking to was the final straw. My sites don’t generate a lot of hits, and I am okay with that, but they should work when I need them to work.
And so, here we are. New provider. Snappier site. Everything working. I have an awesome husband who not only got the site up and running, but was able to fix all the gaping security issues he couldn’t fix on the older provider because it was locked down.
Now, the world is starting to look better again.

Exit, Pursued by a Bear is back!

Hey there!
I’m pleased as punch to announce EPbaB is back. TheHusband and I migrated the content and did the DNS cutover on March 30 to the new provider. The DNS migrated within a few hours and the site for the last two days has been super snappy. While everything is more or less in place, a few notes:
Continue reading “Exit, Pursued by a Bear is back!”

Watch out for the falling divs

[Update: 19:21] Seems like I caught and found most of the errant pixels driving me batty, but everything is not perfect. If you or someone you know is a web developer, comfortable with WordPress & CSS, contact me ASAP. I’ve hacked the fuck out the CSS for this theme but my fixing the themes mistakes keeps breaking it! I know it’ll take 2-3 hours to fix the CSS (at max). The framework could also be tweaked as well to clean it up.
Currently tweaking the blog’s theme, which is causing it to morph in and out of various themes for the last hour or so, and will continue on and off for the rest of the day. If you find something isn’t where it was a moment ago, that is why!