SEO Tips Post Penguin


[/quotes_right]SEOMoz posted an article this week that contained seven great tips for surviving and thriving in the post-Penguin update that Google recently went live with. The article outlines the following tips in depth:

  1. Understand your link profile
  2. Learn what makes a good link
  3. Map out your crawl path / know your crawl path
  4. Know about every page type and noindex the low value ones
  5. Almost never change your URLs
  6. Setup SEO monitoring
  7. Embrace inbound marketing

In addition to presenting clear, quality pointers for webmasters and web marketers, they support their points with great visuals like charts/graphs, video tutorials, and real-world examples.

Ultimately, Penguin is all about search relevance. The better your site relates to your target market the better you will fair as SEO grows and evolves in the near future.

Printing HTML with Page Breaks

A common need for a web developer is to be able to design a web page that is intended to be printed by an end-user. Printing through the web browser’s “print” button or the JavaScript window.print feature is not too difficult, particular with the CSS properties: “page-break-before” and “page-break-after“.

div {
  page-break-before: always;


div {
  page-break-after: always;

Here are some references:


Here are the property options:

Value Description
auto Default. Insert a page break after the element if necessary
always Insert a page break after the element
avoid Avoid inserting a page break after the element
left Insert page breaks after the element until it reaches a blank left page
right Insert page breaks after the element until it reaches a blank right page
inherit Specifies that the value of the page-break-after property should be inherited from the parent element

(table content from

NOTE: Keep in mind that if you have the page-break-after: always; set on a page element, even if nothing follows it on that particular page, there will always be a second page printed each time you print. If you want to stop that second page from always printing, use the page-break-before: always; property instead. Use that property any place you want the new page to START.

Running PHP Script Inside of .HTM and .HTML Files

If your site is running on a LAMP (Linux, Apache, MySQL, PHP) platform it is possible to make the server execute PHP scripts inside of a .HTM or .HTML page.  Pages with the HTML file extensions (.htm or .html) typically, when requested from the server are just sent straight to the browser by the server. With those extensions the web server assumes that there is nothing more to do than that. With Apache’s .htaccess file, however, you can alter this.

Why would you want to do that? It is common for webmasters to come across situations where a site consists entirely of static HTML files and the job does not allow for changing those extensions. Typically this is for search engine reasons.

The quick work-around for this is to add a line or to into the .htaccess file in the site’s root directory that will tell the server to look through each .html or .htm files for PHP scripting prior to sending them to the requesting browser/user. The exact lines of .htaccess code will depending upon the settings of the server that you’re running on but here are the most common.

AddHandler php-script .htm .html


AddType application/x-httpd-php .php .htm .html

Each simply tells the server to parse HTML pages as if they were PHP pages and generally, one of those two lines will accomplish the goal.

.HTACCESS File Resource

Here is a nice resource for common questions regarding Apache’s .htaccess file. The file can be used for supplemental PHP and general website config settings on sites that are running on Apache web server.


Topics include:

  • Htpasswd Generator
  • Htaccess Authentication
  • Prevent hotlinking of images
  • Block IPs with .htaccess
  • Block hitbots with .htaccess
  • Error Document
  • Redirection by Language

Managing an Ambiguous Brand

[quotes_right]One famous example of search ambiguity is Apple – are searchers looking for the corporation that sells computers, iPhones, iPods, and iPads, or are they searching for the fruit?[/quotes_right]

This article on Search Engine Watch covers the details of managing an ambiguous brand, but it also contains some nice points that apply to any brand. What happens when a searcher is quickly glancing down through the search results pages? How do you attract clicks that are relevant to your site’s content?

Nine tips for managing an ambiguous brand … Read full article.

How To Make Money Online

Here is a great little list that I came across that is made up of 21 items that pertain to general rules of making money online. They are a great starting point for anyone considering an online business.

  1. The first step is to stop Googling things like, “how to make money online.” Not because you shouldn’t want to make money online, but because the stuff you’re going to find by doing that is going to help youlose money online. Sort of like asking a casino owner how to make money in Vegas…
  2. Don’t pay anyone for simple and proven instructions on how to achieve this goal. In particular, don’t pay anyone to teach you how to write or sell manuals or ebooks about how to make money online.
  3. Get rich slow.
  4. Focus on the scarce resource …

Read the rest of the article here:

CSV Export Using PHP’s Output Buffer

Creating the CSV file without using adding/deleting a file on the server’s file system. This involves the use of the PHP output buffer. In the case of a CSV file, they are being created by the PHP script on the fly, adding the data that you want to export on a row-by-row basis. For this we need to:

1) create a file handle
2) fputcsv each row into the file
3) send the entire thing to the browser to be downloaded

Here is the code:

header("Content-type: text/csv");
header("Cache-Control: no-store, no-cache");
header('Content-Disposition: attachment; filename="filename.csv"');

$outstream = fopen("php://output",'w');

foreach( $myArray as $row ) {
	fputcsv($outstream, $row, ',', '"');


$myArray is an array of records just the same as you would find in a database (the same thing that will appear in the new, downloaded CSV file). Notice that there is no file being created on the server.

Helpful tip:

Just relying on the extension doesn’t work, even in Windows. The magic is in the third header setting, “Content-Disposition,” which informs the browser to download as a separate file
~ from


Cross-browser Testing Old Versions of IE on Mac

I run a Mac and for all of my web development work and for years had used any old PC that I could get my hands on for my cross browser / cross platform testing for my HTML, CSS, and Javascript work.

I had always been under the impression that, even though I was running IE9 on Windows 7 through my VM Ware Fusion software and could just do my IE9 testing right on my Mac, that I still had to keep that old PC around for my older versions of the browser.

One day not too long ago I stumbled across a solution that I didn’t even know was available to me.  Moreover, I already had it in place and didn’t even know it. Internet Explorer 9 has this functionality built right into it.

On any copy of IE9, click on the “Tools” icon in the upper-right corner of the browser and look for the selection that says: “F12 Developer Tools”.

When you click on that you will either get a split window in your browser that shows both your website view along with the resources available to you in the developer tools app; or, yours will show up in an entirely new window all to itself.

When the Developer Tools window appears, look through the main menu for the “Browser Mode” drop down menu.

There you have it. All the late-model IE testing that your little heart can handle right in one place.

WordPress query_posts() References

Some good reference pages for WordPress’ query_posts() functionality.

WordPress function reference ->

Quick overview of what it does ->

Always to be used with wp_reset_query(). ->

query_posts() is the easiest way to alter the default query that WordPress uses to display posts. Use query_posts() to display different posts than those that would normally show up at a specific URL.

It is not only used to display different posts than what is displayed by standard functionality, it can be used to display WordPress posts in different order. Example: display pages or a post category that contains posts that do not follow a typical blog layout (ex: a listing books or authors in alphabetical order).

Google Plus: Benefits for SEO

I came across the following three articles this week regarding the emerging SEO benefits of establishing an active business presence in Google Plus.

They do a good job of explaining the significance of Google Plus and its corresponding relationship to Google Search Plus. Here are some of their significant points.

What is Google Search Plus?

Google Search Plus Your World** is the next evolutionary step in determining what is relevant to personalized search queries in that individuals search results are greatly influenced by their circles of friends.

** Google Search Plus: personalized results from your contacts – which may be images, shared posts, or pages that have been given a +1 by your contacts; or even pages on Google+ that you may not be connected to.

The output is search results that display/promote People and (business) Pages in Google+.

Why is Google Plus important for my website?

The most significant reason to get your business on Google+ is simple: The quality and corresponding engagement around your search engine visibility stands to either noticeably improve or gradually decline.

At the heart of this lies the new “Search Plus Your World” algorithm (also referred to as “Search+”), which relies on data collected from logged in Google+ users. The output is search results that display/promote People and (business) Pages in Google+.

Like Facebook, you’ll see updates from those you follow (Circle) in Google+. But unlike Facebook, the content in your Google+ posts may turn into highly ranked search results on Google (again, inside or outside the Google+ environment) – providing keyword and topic-relevant search engine visibility that improves based on your “AuthorRank” and content-specific engagement levels.