Optimizing WordPress for Search Engines, Part 1

I get asked all the time about SEO – how to improve it, how things impact it, etc. I am not an SEO expert by any means, but I wanted to put some of my development-focused thoughts out there to hopefully help out those of you who want to improve your site’s chances of being found.

What is SEO?

SEO is Search Engine Optimization, which is the (some might say dubious) science of making changes to your website to increase the likelihood people will find your site when entering relevant key words into  a search engine.

How important is SEO?

It’s definitely a good idea to make some strategic changes to your site to ensure it shows to full advantage in search results. There’s no point in having a website if people can’t find it at all.

However, I think it’s a bad idea to spend a whole ton of energy on SEO or to try to “beat” the search engines by flooding your site with key words or endlessly tweaking meta data that nobody except possibly a Google bot will ever see. Why?

For one, Google is filled with people who are smarter than average and who are constantly evolving their algorithms. It’s kind of an exercise in futility to try and stay ahead of them without getting flagged as SPAM.

SEO should be a subset of your overall marketing & publicity strategy for your business.

In my opinion, SEO should be a subset of your overall marketing & publicity strategy for your business. When you’re thinking about spending your time and/or money on SEO, consider whether there’s a different marketing technique (paid advertising, pitching to blogs, etc.) that might have a better return on your investment. Like anything else, the key is to make an educated choice that is aligned with your overall plans for your business.

What will this series include? If you’re not an expert, where do you get your info?

As I said, I am not any kind of expert on SEO. What I am pretty good at is research, design, and building great websites, so that’s the perspective I’m bringing to this series of posts. We will be going right to the source and heavily referencing Google’s excellent SEO Starter Guide, so I recommend you take a minute to download that guide and give it at least a good skim before continuing here.

Throughout this series of posts, I’ll be taking you through Google’s tips and showing you how to implement them in WordPress. Some of the things we’ll tackle will require plug-ins, and I’ve used this article from Six Revisions as a reference for which plug-ins to use. We’ll discuss three of the plug-ins mentioned in that article, but there are more in the article if you’re interested, and that doesn’t even scratch the surface of what’s out there.

Google Tip 1: Improve your page titles & descriptions

Some WordPress themes automatically do a bit to optimize your page titles for you, so that they are at least updated for every page. Any basic search on SEO plug-ins for WordPress will lead you to the WordPress SEO by Yoast plug-in. Like similar plug-ins, this gives you additional controls with which you can specify page titles and descriptions for each page.

WordPress SEO plug-in screenshot

As you can see from the screenshot, this plug-in previews your current settings, and then updates that preview real-time as you make changes. I would particularly recommend focusing on descriptions, as those are going to help people who find your site in a search decide whether to click on it.

Google Tip 2: Improve URL structure

By default, WordPress gives you ugly dynamic URLs that end in question marks and numbers. On the up side, it’s really easy to change that, just by going into Settings > Permalinks.

WordPress permalink settings

Keep in mind that once you’re off the default, pages always use the page slug (which is a URL-friendly version of the page name) in the URL. The dates only are shown for blog posts. I most often use the “Month and name” structure for client sites, as most of my clients aren’t posting so frequently that they need the day in the URL to differentiate posts that way. You can see my own structure above – I do that because I don’t mean my blog to be date-focused the way daily blogs are, more an archive of articles in a few key categories.

As Google’s guide points out, you should make sure that if someone chops off part of your URL they land somewhere useful. In WordPress, this happens for you – cutting off the post name in the URL will usually get you to an archive page. You’ve just got to make sure that archive page looks acceptable in case people end up there.


I’ll leave it there for today, but be sure to check back soon for a look into the next few tips in Google’s guide to SEO! I’d also love to hear your feedback, questions, and thoughts in the comments!

A More Flexible WordPress Sidebar Arrangement

In the last week, I’ve recoded 3 sidebars for clients. One of those was just a customization, but the other two were in themes that actually didn’t even really have dynamic sidebars. These aren’t small blogs, either – one is actually quite popular but the owner had been dealing with this hard-coded sidebar that she couldn’t update and didn’t work how she needed it to.

Friends, it doesn’t need to be that hard!

For all three sites, I used the same set of four sidebars in this super-flexible layout:

sidebar layout

There are three major steps to making this happen on your site. Before you start, if you are NOT using a fully custom theme, you should create a child theme and make these edits there so that you don’t lose them when you next update your theme.

Step 1: Register the Sidebars

First, you’ll need to add some code to functions.php (in your theme’s folder on your server) to create the new sidebars. Functions.php can be kind of picky about where you put new code – I would go to the very end of the file and put it there. If there last line is a bracket, put it after that. If the last line is ?> then put it before that.


if ( function_exists('register_sidebar') ) {
 register_sidebar(array(
 'name' => 'Top of Sidebar',
 'id' => 'sidebar',
 'description' => 'The top, full-width sidebar.',
 'before_widget' => '<div id="%1$s" class="widget %2$s">',
 'after_widget' => '</div>',
 'before_title' => '<h2 class="widgettitle">',
 'after_title' => '</h2>',
 ));
}
if ( function_exists('register_sidebar') ) {
 register_sidebar(array(
 'name' => 'Inner Sidebar',
 'id' => 'sidebar2',
 'description' => 'The inner column of the two-column area.',
 'before_widget' => '<div id="%1$s" class="widget %2$s">',
 'after_widget' => '</div>',
 'before_title' => '<h2 class="widgettitle">',
 'after_title' => '</h2>',
 ));
}
if ( function_exists('register_sidebar') ) {
 register_sidebar(array(
 'name' => 'Outer Sidebar',
 'id' => 'sidebar3',
 'description' => 'The outer column of the two-column area',
 'before_widget' => '<div id="%1$s" class="widget %2$s">',
 'after_widget' => '</div>',
 'before_title' => '<h2 class="widgettitle">',
 'after_title' => '</h2>',
 ));
}

if ( function_exists('register_sidebar') ) {
 register_sidebar(array(
 'name' => 'Bottom of Sidebar',
 'id' => 'sidebar4',
 'description' => 'The bottom, full-width sidebar.',
 'before_widget' => '<div id="%1$s" class="widget %2$s">',
 'after_widget' => '</div>',
 'before_title' => '<h2 class="widgettitle">',
 'after_title' => '</h2>',
 ));
}

Now when you visit Appearance >> Widgets, you’ll see four shiny new sidebars ready for widgets!

Step 2: Edit Sidebar.php

Your new sidebars exist, but you still need to put them somewhere in your theme layout so that they show up.

Open up sidebar.php in your theme folder and (assuming you aren’t going to keep any additional sidebars other than these four), paste the following into the page.


<?php
/**
 * @package WordPress
 */
?>
<div id="sidebar" role="complementary">
 <?php dynamic_sidebar( 'sidebar' ); ?>
 <div class="double-sidebar alpha">

 <?php dynamic_sidebar( 'sidebar2' ); ?>
 </div><div class="double-sidebar">
 <?php dynamic_sidebar( 'sidebar3' ); ?>
 </div>
 <?php dynamic_sidebar( 'sidebar4' ); ?>
</div>

You can delete anything else, although you may want to transfer any content hard-coded into your theme to widgets first.

Step 3: Style It

The last step is to do some quick styling to make the sidebars show up correctly in your page layout. This happens in your theme’s stylesheet, usually called style.css


/* --- SIDEBAR --- */
#sidebar {
 float:left
 width:XXXpx;  /*How wide is your sidebar?*/
}
.double-sidebar {
 width: XXXpx; /*Half the width of #sidebar, minus padding*/
 float: left;
}
.double-sidebar.alpha {
 padding-right: 10px; /*space between columns*/
}
.widget {
}
.widgettitle {
}

If you’ve already got CSS related to your sidebar and/or widgets, you should put this there and you should make sure there aren’t any conflicts that will override your settings. You’ll notice that there are some missing widths in there – you should fill those in according to how your theme is laid out. The selectors with no declarations are just there to show you what else you might want to style.


That’s it – go forth, add widgets, and enjoy your new super-flexible sidebar layout!

Theme Freebie: ZeeOhEe

I recently launched a “personal” blog called ZeeOhEe, with personal in quotation marks because it’s not all that personal in content. It’s more like all the non-business things I’m into, including fashion, little DIY projects, home projects, kid stuff, food. At least it will be those things, once it gets off the ground a little more.

zee oh ee screenshot

 

I made some small changes to the default Twenty Eleven theme for the theme on the site and I’ve just zipped it up for download in case you want to use my modified version yourself. As you can see, I’m using it without sidebars and with a simple header image up top.

The other main changes are that I got rid of a lot of extra styling in the menu area, right-aligned the menu, and widened everything/ removed padding to make full use of the single column. As it’s a hack of Twenty Eleven, it is responsive.

A few notes about this version, most of which are true because I made this in about an hour and didn’t want to spend more time refining the code for my own use, and because I was going for a super minimal blogging experience:

  1. The menu shows up in reverse order. So in the appearances admin area, you’ll have to list things the opposite order from how you’d like them to display. Think of it as a little mental exercise every time you change your menu.
  2. Tags don’t show up, unless you use a sidebar and show them there in a widget.
  3. Images are key in this theme – you’ll want to use super large images to get the full effect, with the largest size being 792px wide.
  4. There are still theme options available for link color and header, but to change up the footer you’ll have to hit up footer.php via FTP or in Appearance > Editor. I’d appreciate it if you kept my credit and link in there, but you don’t have to.

If you notice anything else odd, or have any questions, feel free to leave a note in the comments!

<<< CLICK HERE TO DOWNLOAD >>>

Inserting Alternating Content Blocks After Posts in WordPress

A recent project of mine involved inserting alternating ads after every blog post for a client. This particular client was already using AdRotate to manage her sidebar ads, so to keep things streamlined we kept the new ads within that structure as well.

rotating ads in development

(very bright) test site implementation

This was definitely one of those coding tasks that at first seemed like it might be really challenging, but turned out to be pretty straightforward. Here’s how I accomplished it:

I first needed to differentiate alternate posts in the WordPress loop. This tutorial from Perishable Press (a fantastic source of WordPress development inspiration) pointed me in the right direction, which involved a very small addition to the beginning of the loop.

Before:


<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : the_post(); ?>

After:


<?php /* Start the Loop */ ?>
<?php while ( have_posts() ) : $i++; the_post(); ?>

Yep, that’s it! The

$i++

basically allows WordPress to assign numbers to each post the same as you would if counting them, which then allows us to differentiate between even and odd posts for our alternating ads.

The next step is to find the place in the loop where you want the ad. This should be within the loop, but is otherwise flexible. I used the following code to insert the two AdRotate blocks:


<?php if(($i % 2) == 0) : ;
 else : echo adrotate_block(1); ?>
<?php endif; ?>

<?php if(($i % 2) !== 0) : ;
 else : echo adrotate_block(2); ?>
<?php endif; ?>

This is essentially checking each post to see if it’s odd or even, and then displaying the appropriate ad block. You would obviously need to make sure that you have the right ID for your ad blocks in place, assuming they aren’t 1 and 2 as in this example.

Because of the embedded AdRotate functionality, you can control most of the additional settings you might want through the plugin settings, such as adding classes or surrounding HTML (if you want to add CSS styling, for example). Of course, instead of AdRotate blocks, you could put any code you want in there.

Surprisingly simple, right?

Development “Minis” Coming Soon

I get a lot of requests for quick development help – you know, those little bits and pieces that drive people crazy but they aren’t able to fix themselves.

It’s actually really hard for me to schedule short tasks into my calendar around my larger projects, so I often have to say no or make people wait for weeks until the next opening in my project calendar. Not ideal!

Then, I read about Rena Tom’s office hours and my wheels started spinning like mad. Suddenly the solution was so obvious, it was almost painful (except instead it was just exciting).

I’m still working out the details and logistics, but my own version of this idea – called “Development Minis” will premier March 5. Yes, that soon! If you want dibs on the limited number of available spaces (exact number and arrangement still T.B.D.), you should probably sign up for my new newsletter. Subscribers will get the info first and will be able to snap up spots a whole 24 hours ahead of anyone else.

Questions? Leave them below in the comments and I’ll add the answers to the info page for the minis once it’s up!

Installing Web Fonts, Start to Finish!

Last week, I wrote about how you should be thinking about web fonts in the design stage of your site to ensure you make design choices you can actually execute on the web. I also linked to a few of my favorite web font sources.

Wonderful Isa, of Noisette Marketing (highly recommended), responded via Twitter:

Well, Isa, here’s how!

Step 1. Download your font files

If you’re using a provider like MyFonts or FontSpring, you’ll be set up with a zip file full of all kinds of fun stuff, much of which you don’t need. First order of business is to read the license (always – you actually should have done this before buying, but do it again anyway). You want to know how many domains you can use the font on, and whether your license limits the pageviews before you have to upgrade your license.

Once you’re clear on the details, open up the zip file and find the actual font files.

web font files

There are usually four of them, as highlighted above. Those are what you need to load onto your server via FTP.

Step 2. Load them to your server via FTP

Web development is all about making choices based on the details of the project and the context, so you have a few choies about where to put them on your server:

  1. You can put them in a folder at the “root” of your site, which means the same level as your index.html or index.php file.
  2. You can put them in a folder inside your theme folder (in the case of WordPress themes, for example).
  3. You can put them in either of those two places, but not in a folder.

Really, there are various combinations and permutations, but you get the idea. Usually I do the second in the list. [NOTE: Some licenses will require that you up the security of the folder in which the fonts live. This gets tricky and I'd recommend paying a developer to do it for you.]

I use Espresso for FTP, so I just create the folder on the server, then drag and drop the files into it.

Step 3. Include the Font Files via CSS

Now you’ve got font files on your server, but to actually have them show up on your site you’ve got to first include them via CSS. To do this, you’ll first want to open up the CSS file provided in that folder you downloaded where you grabbed your font files – it’s often just called “stylesheet.css.” You’ll also need the stylesheet for your site open – if you’re on WordPress, that will be the stylesheet for your theme.

The code from the font folder will looking something like this:

/*
 * Web Fonts from thesitewhereyougotit.com
 *
 * Font copyright information, which you should
 * never delete and should always be included
 * in your CSS where ever you call the fonts files.
 * Copyrights matter.
 *
 */

@font-face {
 font-family: 'FontName';
 src: url('FontName.eot');
 src: url('FontName.eot?#iefix') format('embedded-opentype'),
 url('FontName-webfont.woff') format('woff'),
 url('FontName-webfont.ttf') format('truetype'),
 url('FontName-webfont.svg#FontName') format('svg');
 font-weight: normal;
 font-style: normal;
}

Obviously, I’ve removed the pertinent details here, but the gist is that most times there will be a copyright message that you need to keep with the CSS they’ve provided. You’ll also see that this CSS snippet includes the URLs to the font files you uploaded to your server. Copy the full snippet and paste it into your theme or site CSS file. I usually put these font include snippets at the bottom of my CSS file, because it keeps them out of my way for future edits.

You may need to make some changes to the URLs in the snippet, depending where you put your files. For example, if you stuck them in a folder called “fonts”, you’ll need to add that folder to the URLs:

@font-face {
 font-family: 'FontName';
 src: url('fonts/FontName.eot');
 src: url('fonts/FontName.eot?#iefix') format('embedded-opentype'),
 url('fonts/FontName-webfont.woff') format('woff'),
 url('fonts/FontName-webfont.ttf') format('truetype'),
 url('fonts/FontName-webfont.svg#FontName') format('svg');
 font-weight: normal;
 font-style: normal;
}

You may also need to change the URL to ensure it correctly locates the fonts relative to your CSS file. If you don’t know what I’m talking about, you can circumvent that need by putting the full URL in there, e.g.:

src: url('http://yoursitename.com/fonts/FontName.eot');

Step 4. Open Developer’s Tools or Firebug

Once your fonts are properly included, you’ve got to assign them to various types of content, again using CSS. The easiest way to do this is to use a tool like Firebug or Chrome’s Developer Tools to view the source of your site.

The complexity will depend on how your site is coded & how clean/ well-written the existing CSS is. If you’ve got a million different selectors that aren’t reused for similar content, you’ll have more code to write (this is one of the reasons it’s often easier for me to start from scratch with clients rather than editing existing themes).

browser window with developer tools

The screenshot above is of Google Chrome’s developer tools. You can see from my brilliant annotations (the arrows) that when you hover over a part of the page, the tool shows you the CSS selector right over the page and down at the bottom, where it also shows you the declarations already assigned to that selector in your CSS.

If you’re right this second thinking “Selectors? Declarations? Whaaaa?!?!” then you may want to back up and learn yourself some CSS basics. This site is great if you are good at understanding things in a more text-book like format. If you’re looking for a full course experience and are willing to pay for it, check out Lynda.com.

If you’re generally cool with CSS, read on!

Step 5. Add Your font-family Declarations

Once you know your CSS selector, you can go ahead and edit your CSS. The best way to do this is to figure out where in your CSS the font selection is currently coming from. If it’s already on that selector, you should change it there (for example, in the screenshot above I’m looking at the .entry-title class, so I should start by trying to edit that). If that isn’t going to work out because of how your CSS is set up, you can add a new line for that selector.

In the example of .entry-title, my edited CSS would look like this:

.entry-title {
color: #222;
text-decoration: none;
font-family: 'FontName', sans-serif;
}

All I did was take the “font-family” line from the snippet I included earlier (the first line) and paste it inside the brackets for that selector. The color and text-decoration were already in place, and I want those to stay the same so I’m not touching them at all. I did add the generic “sans-serif” after my font name, as a fallback.

Step 6: Troubleshoot, If Necessary

Sometimes things don’t happen the way you want them to right away. True in life, true in CSS. Especially true if you’re working from someone else’s code (in a theme, for example). You may need to use some trial and error to get things to show right, which often includes getting more specific with your CSS selectors, checking your site for errors, etc. Common problems with this particular process include:

  • Your URL to your font files is incorrect (this will show as an error in Developer Tools)
  • You didn’t add your CSS to the right stylesheet (maybe you put it in a theme that’s inactive)
  • You’ve got the wrong selector
  • Your new CSS is being overridden by other CSS (See the crossed out font-family line in my screenshot of the developer tools? That’s telling me that line is being overridden by other code, which means I need to find and fix that conflict for that line to work.)

There you go, Isa (and everybody else who has asked about this). The quick-and-dirty on adding web fonts to your site! As always, shoot me your questions via the comments and pretty-please share this post via Twitter, etc., if you found it helpful!

Do Your Developer a Solid & Know Your Web Fonts

I’ve been doing a lot of work with others designers lately, primarily doing front-end development and WordPress/ e-commerce theming for their designs. I’m loving it because it leaves me feeling like I can use my creative space for my own projects & focus my professional space on something I’m more uniquely able to do (which is development, with an eye for good design and with strong communication).

It’s been amazing so far – I’ve gotten to partner up with some really amazing designers whose work I admire a lot and work on sites I’d never have come up with myself.

But… there’s one little thing about working with designers who aren’t developers that comes up frequently and often leads to disappointment.

web font license info from House Industries

That’s it. Licensing.

You see, not only should you be concerned about whether you’ve got the appropriate license for commercial usage (I hope you’re already concerned about this and checking license information no matter where you find a font, even if the site you get it from says it’s free), but you’ve also got to make sure that you’re picking fonts for any editable/ dynamic text areas that are available as web fonts.

Oh my gosh, all that jargon!

Wondering what the heck I’m talking about? Think of it this way – when you edit your site, you probably want to be able to type in the text the way you enter blog posts in most programs and have it update your page in your lovely custom typeface, right? You don’t want to have to set that type in Photoshop and then upload an image of the text – that’s ineffecient, bad for SEO, and also likely to annoy users of your site.

In order to use fonts on the internet like that, though, you’ve got to have a special web font license or permission that also allows for commercial use (assuming it’s a commercial site). Otherwise, you can’t use that font. Full stop.

Where do I go?

There are three (and a half) primary sources I go to when I need web fonts for a project and I don’t want to use one of the old standards like Times or Helvetica (which are safe because just about everybody has them pre-loaded on their own computers).

 

FontSquirrel

FontSquirrel.com is all fonts that are free for commercial use. Again, you should always check the license yourself as sometimes things change or are misplaced, but in general I think this site does a pretty good job keeping on top of licenses. It’s also more curated than some other free font sites.

 

FontSpringFontSpring.com is the non-free sibling to FontSquirrel. I believe everything on their site is available as a web font, which is great when you know you’re working on a project involving the internet. Their implementation of web fonts is also very developer-friendly. You will need access to your server via FTP, though.

 

MyFontsAnd of course, there’s the old standard MyFonts.com, which makes it very clear (using that icon at bottom right) which fonts are available for the web and is also very developer-friendly in implementation. You’ll need server access for these fonts as well.

 

That half I mentioned? It’s Google Web Fonts, which is especially great for site where you don’t have server access (like hosted platforms such as Shopify). However, their selection is not as well curated so there are some unfortunate options you’ll have to sort through to get to the good stuff. (Hint: Some of the best options are displayed here.)

 


The end game: if you’re working on a design for web, you’ve got to either use a font everybody has on their computer (which could end up being pretty boring), or you need to be aware of selecting fonts that are available to be licensed as web fonts. Do your research on the front end and you won’t set me up to tell you that you’ll have to change your design when your font isn’t available.

Etsy or Not? An Interesting Example Case

Last year, I search for ages for an attractive wall calendar with the whole year on the page and enough space to note something small on a date (a birthday or appointment, perhaps). I couldn’t find anything that met all my criteria.

So I made one.

In Illustrator, I (manually) created a grid to fit an 18 x 48″ poster, then (manually) added and aligned all the dates, then (not as manually, but still) colored each month, then found a few date errors, then realigned…

Did you know, it takes approximately forever to make a calendar?

And then it was finally done, so I put up the cash to get 40 of them printed. They were fabulous! I think I put them up for sale in late October, then they made it onto Decor8, and sold out by early January. I shipped them all over the world and it was glorious!

Last fall, I got a few Etsy convos asking if I was going to be making a 2012 version. At first I said, ”no way,” (after all, it takes forever and I’d already closed down my Etsy shop to focus on web work). Then I kind of wanted one myself and one day I just made it and ordered it all in a burst of… I’m not sure what it was. Insanity, maybe.

This is it:

finally, a picture!

Big, right?

But I didn’t take that photograph until a good little ways into January. In fact, I did nothing to advertise these calendars except tweet a couple of times. I sold a couple right away to those repeat buyers using a PayPal button on this site, but after that it was radio silence.

I couldn’t decide if I cared and I didn’t really have time for pictures or anything else, and then suddenly I had all these calendars and I was feeling like maybe it was just a sign that I really wasn’t made for retail and I should just eat that printing cost and be done with it.

On Tuesday, January 24th, I temporarily reopened my Etsy shop to sell off some of my old paper goods supplies. I took some quick pictures and threw a listing up for the calendar as well, just in case I could move a few. I tweeted a couple times and then went back to doing absolutely nothing to market them.

It’s been two weeks. I’ve had 842 views, 61 favorites, 32 orders (the majority calendars), and over $420 in revenue.

I’m not telling you this to brag – retail is still not my thing and I’m already hemming and hawing over whether I’ll do it again for 2013 – but instead because I think it’s a really interesting case study of how being on Etsy can be a really really GOOD thing for small handmade businesses.

What I’m taking away from this experience:

  1. Probably, a better marketing plan would be a good idea.
  2. Organic traffic does happen on Etsy, in fact there is a lot of buying power floating around there.
  3. Most importantly, it is all about the product. I’m pretty sure my calendar is selling well because there are very few options out there with the same feature set and focus on design.

You might be thinking this is really obvious (I mean, it kind of is, in that so-obvious-it’s-forgettable way). I’m not going to pretend to have all the answers and next steps for you. I am hesitant to even extrapolate too much to other types of products and shops. But I did want to share, in case you can take something helpful from this little story.

To that end, what are you taking from this story? Let’s discuss in the comments!

Small Business Record Keeping Spreadsheet {for Mac}

Update #2

As of 12:10pm on January 7, I’ve updated the download file so that it contains both the 2011 and 2012 versions of the spreadsheet.

Update

Rena Tom in all her awesomeness noticed a few little glitches/ things I should clarify. The spreadsheet currently available for download calculates correctly for 2011 expenses. To have your profit and loss summarize from the quarterly page, you need to be sure each line item on the quarterly page includes date, amount, and a category in the last column. I know the table headers say 2012 – that’s an error, those should still say 2011 – the version you can download now has been updated to fix that.

I’ll post a shiny updated 2012 version as soon as I have a chance!


A hot resolution for small business owners is always to “get the books in order,” if not for January 1st, then when tax time rolls around. Around this time last year, I was trying to compile tax info and beating myself up for not keeping up with my records in real time. After all, spending a whole day entering financial info is few people’s idea of fun (certainly not mine).

I happen to be pretty proficient with spreadsheet software (not a talent I like to brag about since it makes me sound even nerdier than “web development” already does), so I dove through some online accounting programs that I’m too cheap to pay for/ had “features” that didn’t work for me and put together my own hybrid project management & bookkeeping mega-spreadsheet.

You can download it in Apple Numbers format for free, but I cannot get it to convert to Excel in a way that keeps it functional so my Windows friends, you are out of luck until I have time to create an Excel version (you can speed that up if you comment saying you want it and let me know if you’d be willing to pay a very small price, around $5).

Very Important Note: I’m not making any promises about calculations or tax info contained in this spreadsheet. By downloading it, you’re agreeing that I hold no responsibility for any errors in your accounting, fees that you incur, or tax errors or issues that occur as a result of using this spreadsheet. Use it 100% at your own risk.

updated 1/7 at 12:10pm EST

Because I live to be helpful (that’s only a little bit sarcastic, and mostly it’s true), I also created a 15 minute video of me talking (really fast as usual, sorry) through how I personally use this spreadsheet.

Please Note: You are welcome to use this for your business, but you may not sell the spreadsheet itself. I’d love for you to spread the word and share this on your site, but please give credit and link back here rather than providing a direct download link elsewhere.

Four Things to Consider When Hiring a Designer

Hiring a designer and/or web developer is usually a pretty big investment (especially if you believe that you get what you pay for), so I know it can be a bit daunting to figure out who to work with. I shared the top 4 things I’d consider when hiring someone over on MeaganVisser.com today. (As an added “bonus”, you get a peek at my uber-messy post-holiday and mid-reno office/ studio.)