Related Search (Categories) with Python

Related Search (or Categories) can be a powerful feature for SEO and UX (discovery). For SEO, Related Search can cross-link between two similar pages independent of their hierarchical relationship. Features like breadcrumbs interlink within a lineage, but Related Search can link horizontally outside of the lineage. Related Search can also connect pages without a defined …

Read moreRelated Search (Categories) with Python

Personalized PageRank with Edge Weights

Note: This is the third article in my internal link analysis with Python series. This post will use data from the last post, “working with large link graphs,” and use techniques outlined in the first, which introduced link graph analysis with NetworkX. PageRank can be a helpful auditing tool, but by default, it has two limitations. All …

Read morePersonalized PageRank with Edge Weights

Working With Large Internal Link Graphs in Python

Note: This is the second post in my series on analyzing internal link graphs with Python. If you haven’t read the first post, I recommend reviewing it before continuing. I’m picking up where I left off. While the goal of this post is ultimately graph analysis, the techniques in this post work for data wrangling …

Read moreWorking With Large Internal Link Graphs in Python

Common Pitfalls with Dynamic Rendering for JavaScript SEO

Earlier this year, Google announced official support for dynamic rendering as a solution for JavaScript-driven websites: serving search bots a server-side rendered (SSR) page, while providing a client-side experience for users. (In truth, many sites have been doing this for years via in-house solutions and services like, but it was great to see Google address that …

Read moreCommon Pitfalls with Dynamic Rendering for JavaScript SEO

Core Principles of SEO for JavaScript

The shift to JavaScript crawling is one of the more significant changes in technical SEO in the last few years, but the conversation around it historically has been limited. When it is explored in-depth, it’s typically platform-specific or jargon-heavy. Many SEOs have a lot of confusion when managing requests from developers about JavaScript. However, the days …

Read moreCore Principles of SEO for JavaScript

How to Use Internal Search for SEO

Internal search data provides useful insights on how your customers search. Basically, your customers are giving you free keyword research.

1. Information Architecture

Look at how your customers are searching and compare that to the information architecture. Does your category system match how customers search?

2. Indexable Search Pages

Don’t limit your landing pages to your defined category pages. Create indexable search pages. You’ve probably heard Google doesn’t like to index search pages, but they do.

Really, the difference between a category page and a search page is design and content. You can fix this. This means design, a heading, maybe get rid of some of those facets. That’s all you really have to do.

We’re just making it look more curated than automated. This also means adding a title and meta description that make sense. And if a search page returns only a few results, make sure to go ahead and noindex it. This will help you avoid Panda and duplicate content problems.

3. Related Search on Search & Category Pages

It can also power related search, think “people who searched for this also search for that.” There are a lot of ways to do this, so just pick one that works. Now you have an internal search driven linking system that will expose these indexable search pages.

4. Related Search on Product Pages

Don’t limit this to your category and search pages. Think “people who found this product also searched for this.” Practically, it’s a search-driven tagging system.

5. International Keyword Research

Do this for international sites. Internal search is basically keyword research in its targeted language. This is invaluable for sites that don’t have resources to translate content for all their international domains.

6. Trending Searches

Make sure you’re using search deltas. Top search terms are great, but trending is better. This modifies your internal linking structure based on seasonality and events. By doing this, you can drive internal link value to pages while their demand is the highest.

7. Search Pages in XML Sitemaps

Include your dynamic search pages in your XML sitemap. Concatenate your top search terms into your URL pattern for your new indexable landing pages. I highly recommend filtering this list by adult terms, search volume, and grammar.

Now just submit them to Google. Depending on your domain authority, you can get a significant number of pages indexed this way.

So if you’re currently not using your internal search data, find a way to get your hands on it.